big-moving.ru/api/soft/ajaxorg/lib/ace/ext/beautify_test.js

421 lines
10 KiB
JavaScript
Executable File

if (typeof process !== "undefined") {
require("amd-loader");
}
define(function(require, exports, module) {
"use strict";
var assert = require("assert");
var EditSession = require("../edit_session").EditSession;
var beautify = require("./beautify");
var PHPMode = require("../mode/php").Mode;
// Execution ORDER: test.setUpSuite, setUp, testFn, tearDown, test.tearDownSuite
module.exports = {
timeout: 10000,
"test beautify first line empty": function(next) {
var s = new EditSession([
"",
"hello world"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "hello world");
next();
},
"test beautify block tag indentation": function(next) {
var s = new EditSession([
"<div>",
"<h1>hello</h1>",
"world</div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div>\n"
+ "\t<h1>hello</h1>\n"
+ "\tworld\n"
+ "</div>");
next();
},
"test beautify block tag line breaks and indentation": function(next) {
var s = new EditSession([
"<html><body><div></div></body></html>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<html>\n"
+ "<body>\n"
+ "\t<div></div>\n"
+ "</body>\n"
+ "</html>");
next();
},
"test beautify empty block tag": function(next) {
var s = new EditSession([
"\t<div></div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div></div>");
next();
},
"test beautify inline tag indentation": function(next) {
var s = new EditSession([
"<div>",
"<span>hello world</span>",
"</div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div>\n"
+ "\t<span>hello world</span>\n"
+ "</div>");
next();
},
"test beautify multiline inline tag indentation": function(next) {
var s = new EditSession([
"<div>",
"<span>",
"hello world",
"</span>",
"</div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div>\n"
+ "\t<span>\n"
+ "\t\thello world\n"
+ "\t</span>\n"
+ "</div>");
next();
},
"test beautify singleton tag indentation": function(next) {
var s = new EditSession([
"<div>",
"hello<br>",
"world",
"</div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div>\n"
+ "\thello<br>\n"
+ "\tworld\n"
+ "</div>");
next();
},
"test beautify unknown singleton indentation": function(next) {
var s = new EditSession([
"<div>",
"hello<single />",
"world",
"</div>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<div>\n"
+ "\thello<single />\n"
+ "\tworld\n"
+ "</div>");
next();
},
"test beautify curly indentation": function(next) {
var s = new EditSession([
"<?php",
"if ($foo===array()) {",
"$i++;",
"}",
"if (($foo ||",
"$bar)) {",
"true;",
"}"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if ($foo === array()) {\n"
+ "\t$i++;\n"
+ "}\n"
+ "if (($foo ||\n"
+ "\t$bar)) {\n"
+ "\ttrue;\n"
+ "}");
next();
},
"test beautify adding bracket whitespace": function(next) {
var s = new EditSession([
"<?php",
"if(true){",
"\t$i++;",
"}"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if (true) {\n"
+ "\t$i++;\n"
+ "}");
next();
},
"test beautify removing bracket whitespace": function(next) {
var s = new EditSession([
"<?php",
"if ( true ) {",
"\t$i++;",
"}"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if (true) {\n"
+ "\t$i++;\n"
+ "}");
next();
},
"test beautify adding keyword whitespace": function(next) {
var s = new EditSession([
"<?php",
"if ($foo===true) {",
"\t$i++;",
"}"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if ($foo === true) {\n"
+ "\t$i++;\n"
+ "}");
next();
},
"test beautify if without paren": function(next) {
var s = new EditSession([
"<?php",
"if ($foo)",
"$i++;",
"if ($foo) $j++",
"print $i"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if ($foo)\n"
+ "\t$i++;\n"
+ "if ($foo) $j++\n"
+ "print $i");
next();
},
"test beautify switch indentation": function(next) {
var s = new EditSession([
"<?php",
"switch ($i) {",
"case 1;",
"print $foo;",
"break;",
"case 2;",
"print $bar;",
"}"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "switch ($i) {\n"
+ "\tcase 1;\n"
+ "\t\tprint $foo;\n"
+ "\t\tbreak;\n"
+ "\tcase 2;\n"
+ "\t\tprint $bar;\n"
+ "}");
next();
},
"test beautify multiline string": function(next) {
var s = new EditSession([
"<?php",
"\tprint 'hello",
"\t\tworld'"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "print 'hello\n"
+ "\t\tworld'");
next();
},
"test beautify remove spaces before semicolons": function(next) {
var s = new EditSession([
"<?php echo \"hello world\";?>",
"<?php",
"$foo = \"hello \" ;$bar = \"world\";",
"print $foo.$bar;"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php echo \"hello world\"; ?>\n"
+ "<?php\n"
+ "$foo = \"hello \"; $bar = \"world\";\n"
+ "print $foo.$bar;");
next();
},
"test beautify tag whitepace": function(next) {
var s = new EditSession([
"<form id=\"\" action = \"\" method=\"get\" >",
"\t<br />",
"</form >"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<form id=\"\" action=\"\" method=\"get\">\n"
+ "\t<br />\n"
+ "</form>");
next();
},
"test beautify css": function(next) {
var s = new EditSession([
"<style>h1{font-size: 20px;}p{font-size:14px; padding:10px;}</style>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<style>\n"
+ "\th1 {\n"
+ "\t\tfont-size: 20px;\n"
+ "\t}\n"
+ "\n"
+ "\tp {\n"
+ "\t\tfont-size: 14px;\n"
+ "\t\tpadding: 10px;\n"
+ "\t}\n"
+ "</style>");
next();
},
"test beautify comments": function(next) {
var s = new EditSession([
"<?php\n",
"if(true) //break me\n",
"{}\n",
"?>\n",
"<!--\n",
"\thello\n",
"\t\tworld\n",
"-->"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<?php\n"
+ "if (true) //break me\n"
+ "{}\n"
+ "?>\n"
+ "<!--\n"
+ "\thello\n"
+ "\t\tworld\n"
+ "-->");
next();
},
"test beautify js array of objects": function(next) {
var s = new EditSession([
"<script>\n",
"var foo = [",
"\t{ \n",
"\t\tbar: \"hello\", \n",
"\t\tbar2: {}\n",
"\t},{\n",
"\t\t\"bar\": true\n",
"\t}\n",
"];\n",
"</script>"
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<script>\n"
+ "\tvar foo = [{\n"
+ "\t\tbar: \"hello\",\n"
+ "\t\tbar2: {}\n"
+ "\t}, {\n"
+ "\t\t\"bar\": true\n"
+ "\t}];\n"
+ "</script>");
next();
},
"test beautify js object": function(next) {
var s = new EditSession([
'<script>{"a": "1", "b": "2"}</script>'
], new PHPMode());
s.setUseSoftTabs(false);
beautify.beautify(s);
assert.equal(s.getValue(), "<script>\n"
+ "\t{\n"
+ "\t\t\"a\": \"1\",\n"
+ "\t\t\"b\": \"2\"\n"
+ "\t}\n"
+ "</script>");
next();
}
};
});
if (typeof module !== "undefined" && module === require.main) {
require("asyncjs").test.testcase(module.exports).exec();
}