convert missing unit tests

This commit is contained in:
Fabian Jakobs 2010-12-15 20:01:09 +01:00
commit 36595bd9d6
10 changed files with 191 additions and 153 deletions

View file

@ -47,5 +47,14 @@ async.concat(
require("./range_test"),
require("./search_test"),
require("./selection_test"),
require("./text_edit_test")
require("./text_edit_test"),
require("./mode/css_test"),
require("./mode/css_tokenizer_test"),
require("./mode/html_test"),
require("./mode/html_tokenizer_test"),
require("./mode/javascript_test"),
require("./mode/javascript_tokenizer_test"),
require("./mode/text_test"),
require("./mode/xml_test"),
require("./mode/xml_tokenizer_test")
).exec();

View file

@ -35,13 +35,13 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Document = require("ace/document").Document;
var Css = require("ace/mode/css").Mode;
var CssTest = new TestCase("mode.CssTest", {
var CssMode = require("ace/mode/css").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.mode = new CssMode();
},
@ -50,24 +50,27 @@ var CssTest = new TestCase("mode.CssTest", {
var doc = new Document([" abc", "cde", "fg"].join("\n"));
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"test: lines should keep indentation" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " abc", " "));
assertEquals("\t", this.mode.getNextLineIndent("start", "\tabc", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " abc", " "));
assert.equal("\t", this.mode.getNextLineIndent("start", "\tabc", " "));
},
"test: new line after { should increase indent" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " abc{", " "));
assertEquals("\t ", this.mode.getNextLineIndent("start", "\tabc { ", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " abc{", " "));
assert.equal("\t ", this.mode.getNextLineIndent("start", "\tabc { ", " "));
},
"test: no indent increase after { in a comment" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " /*{", " "));
assertEquals(" ", this.mode.getNextLineIndent("start", " /*{ ", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " /*{", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " /*{ ", " "));
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,12 +35,12 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Css = require("ace/mode/css").Mode;
var CssTest = new TestCase("mode.CssTest", {
var CssMode = require("ace/mode/css").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.tokenizer = new CssMode().getTokenizer();
},
@ -49,32 +49,35 @@ var CssTest = new TestCase("mode.CssTest", {
var line = "-12px";
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(1, tokens.length);
assertEquals("number", tokens[0].type);
assert.equal(1, tokens.length);
assert.equal("constant.numeric", tokens[0].type);
},
"test: tokenize hex3 color" : function() {
var tokens = this.tokenizer.getLineTokens("#abc", "start").tokens;
assertEquals(1, tokens.length);
assertEquals("number", tokens[0].type);
assert.equal(1, tokens.length);
assert.equal("constant.numeric", tokens[0].type);
},
"test: tokenize hex6 color" : function() {
var tokens = this.tokenizer.getLineTokens("#abc012", "start").tokens;
assertEquals(1, tokens.length);
assertEquals("number", tokens[0].type);
assert.equal(1, tokens.length);
assert.equal("constant.numeric", tokens[0].type);
},
"test: tokenize parens" : function() {
var tokens = this.tokenizer.getLineTokens("{()}", "start").tokens;
assertEquals(3, tokens.length);
assertEquals("lparen", tokens[0].type);
assertEquals("text", tokens[1].type);
assertEquals("rparen", tokens[2].type);
assert.equal(3, tokens.length);
assert.equal("lparen", tokens[0].type);
assert.equal("text", tokens[1].type);
assert.equal("rparen", tokens[2].type);
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,15 +35,15 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Document = require("ace/document").Document;
var Range = require("ace/range").Range;
var Html = require("ace/mode/html").Mode;
var HtmlMode = require("ace/mode/html").Mode;
var assert = require("../assertions");
var HtmlTest = new TestCase("mode.HtmlTest", {
setUp : function() {
var Test = {
setUp : function() {
this.mode = new HtmlMode();
},
@ -52,14 +52,17 @@ var HtmlTest = new TestCase("mode.HtmlTest", {
var range = new Range(0, 3, 1, 1);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"test: next line indent should be the same as the current line indent" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " abc"));
assertEquals("", this.mode.getNextLineIndent("start", "abc"));
assertEquals("\t", this.mode.getNextLineIndent("start", "\tabc"));
assert.equal(" ", this.mode.getNextLineIndent("start", " abc"));
assert.equal("", this.mode.getNextLineIndent("start", "abc"));
assert.equal("\t", this.mode.getNextLineIndent("start", "\tabc"));
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,12 +35,12 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Html = require("ace/mode/html").Mode;
var HtmlTest = new TestCase("mode.HtmlTest", {
var HtmlMode = require("ace/mode/html").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.tokenizer = new HtmlMode().getTokenizer();
},
@ -50,19 +50,22 @@ var HtmlTest = new TestCase("mode.HtmlTest", {
var line = "<script a='a'>var</script>'123'";
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
//assertEquals(10, tokens.length);
assertEquals("text", tokens[0].type);
assertEquals("keyword", tokens[1].type);
assertEquals("text", tokens[2].type);
assertEquals("keyword", tokens[3].type);
assertEquals("text", tokens[4].type);
assertEquals("string", tokens[5].type);
assertEquals("text", tokens[6].type);
assertEquals("keyword", tokens[7].type);
assertEquals("text", tokens[8].type);
assertEquals("keyword", tokens[9].type);
assertEquals("text", tokens[10].type);
//assert.equal(10, tokens.length);
assert.equal("text", tokens[0].type);
assert.equal("keyword", tokens[1].type);
assert.equal("text", tokens[2].type);
assert.equal("keyword", tokens[3].type);
assert.equal("text", tokens[4].type);
assert.equal("string", tokens[5].type);
assert.equal("text", tokens[6].type);
assert.equal("keyword", tokens[7].type);
assert.equal("text", tokens[8].type);
assert.equal("keyword", tokens[9].type);
assert.equal("text", tokens[10].type);
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,39 +35,39 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Document = require("ace/document").Document;
var Tokenizer = require("ace/tokenizer").Tokenizer;
var JavaScript = require("ace/mode/javascript").Mode;
var JavaScriptMode = require("ace/mode/javascript").Mode;
var assert = require("../assertions");
var JavaScriptTest = new TestCase("mode.JavaScriptTest", {
setUp : function() {
var Test = {
setUp : function() {
this.mode = new JavaScriptMode();
},
"test: getTokenizer() (smoke test)" : function() {
var tokenizer = this.mode.getTokenizer();
assertTrue(tokenizer instanceof Tokenizer);
assert.ok(tokenizer instanceof Tokenizer);
var tokens = tokenizer.getLineTokens("'juhu'", "start").tokens;
assertEquals("string", tokens[0].type);
assert.equal("string", tokens[0].type);
},
"test: toggle comment lines should prepend '//' to each line" : function() {
var doc = new Document([" abc", "cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals(["// abc", "//cde", "fg"].join("\n"), doc.toString());
assert.equal(["// abc", "//cde", "fg"].join("\n"), doc.toString());
},
"test: toggle comment on commented lines should remove leading '//' chars" : function() {
var doc = new Document(["// abc", "//cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"test: toggle comment lines twice should return the original text" : function() {
@ -75,74 +75,76 @@ var JavaScriptTest = new TestCase("mode.JavaScriptTest", {
this.mode.toggleCommentLines("start", doc, 0, 2);
this.mode.toggleCommentLines("start", doc, 0, 2);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"test: toggle comment on multiple lines with one commented line prepend '//' to each line" : function() {
var doc = new Document(["// abc", "//cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 2);
assertEquals(["//// abc", "////cde", "//fg"].join("\n"), doc.toString());
assert.equal(["//// abc", "////cde", "//fg"].join("\n"), doc.toString());
},
"test: toggle comment on a comment line with leading white space": function() {
var doc = new Document(["//cde", " //fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals(["cde", " fg"].join("\n"), doc.toString());
assert.equal(["cde", " fg"].join("\n"), doc.toString());
},
"test: auto indent after opening brace" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", "if () {", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", "if () {", " "));
},
"test: no auto indent after opening brace in multi line comment" : function() {
assertEquals("", this.mode.getNextLineIndent("start", "/*if () {", " "));
assertEquals(" ", this.mode.getNextLineIndent("comment", " abcd", " "));
assert.equal("", this.mode.getNextLineIndent("start", "/*if () {", " "));
assert.equal(" ", this.mode.getNextLineIndent("comment", " abcd", " "));
},
"test: no auto indent after opening brace in single line comment" : function() {
assertEquals("", this.mode.getNextLineIndent("start", "//if () {", " "));
assertEquals(" ", this.mode.getNextLineIndent("start", " //if () {", " "));
assert.equal("", this.mode.getNextLineIndent("start", "//if () {", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " //if () {", " "));
},
"test: no auto indent should add to existing indent" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " if () {", " "));
assertEquals(" ", this.mode.getNextLineIndent("start", " cde", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " if () {", " "));
assert.equal(" ", this.mode.getNextLineIndent("start", " cde", " "));
},
"test: special indent in doc comments" : function() {
assertEquals(" * ", this.mode.getNextLineIndent("doc-start", "/**", " "));
assertEquals(" * ", this.mode.getNextLineIndent("doc-start", " /**", " "));
assertEquals(" * ", this.mode.getNextLineIndent("doc-start", " *", " "));
assertEquals(" * ", this.mode.getNextLineIndent("doc-start", " *", " "));
assertEquals(" ", this.mode.getNextLineIndent("doc-start", " abc", " "));
assert.equal(" * ", this.mode.getNextLineIndent("doc-start", "/**", " "));
assert.equal(" * ", this.mode.getNextLineIndent("doc-start", " /**", " "));
assert.equal(" * ", this.mode.getNextLineIndent("doc-start", " *", " "));
assert.equal(" * ", this.mode.getNextLineIndent("doc-start", " *", " "));
assert.equal(" ", this.mode.getNextLineIndent("doc-start", " abc", " "));
},
"test: no indent after doc comments" : function() {
assertEquals("", this.mode.getNextLineIndent("doc-start", " */", " "));
assert.equal("", this.mode.getNextLineIndent("doc-start", " */", " "));
},
"test: trigger outdent if line is space and new text starts with closing brace" : function() {
assertTrue(this.mode.checkOutdent("start", " ", " }"));
assertFalse(this.mode.checkOutdent("start", " a ", " }"));
assertFalse(this.mode.checkOutdent("start", "", "}"));
assertFalse(this.mode.checkOutdent("start", " ", "a }"));
assertFalse(this.mode.checkOutdent("start", " }", "}"));
assert.ok(this.mode.checkOutdent("start", " ", " }"));
assert.equal(this.mode.checkOutdent("start", " a ", " }"));
assert.equal(this.mode.checkOutdent("start", "", "}"));
assert.equal(this.mode.checkOutdent("start", " ", "a }"));
assert.equal(this.mode.checkOutdent("start", " }", "}"));
},
"test: auto outdent should indent the line with the same indent as the line with the matching opening brace" : function() {
var doc = new Document([" function foo() {", " bla", " }"]);
this.mode.autoOutdent("start", doc, 2);
assertEquals(" }", doc.getLine(2));
assert.equal(" }", doc.getLine(2));
},
"test: no auto outdent if no matching brace is found" : function() {
var doc = new Document([" function foo()", " bla", " }"]);
this.mode.autoOutdent("start", doc, 2);
assertEquals(" }", doc.getLine(2));
assert.equal(" }", doc.getLine(2));
}
};
});
module.exports = require("async/test").testcase(Test);
});
if (module === require.main)
module.exports.exec()

View file

@ -35,12 +35,12 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
var JavaScript = require("ace/mode/javascript").Mode;
var JavaScriptTokenizerTest = new TestCase("mode.JavaScriptTokenizerTest", {
require("../../../../support/paths");
var JavaScriptMode = require("ace/mode/javascript").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.tokenizer = new JavaScriptMode().getTokenizer();
},
@ -50,10 +50,12 @@ var JavaScriptTokenizerTest = new TestCase("mode.JavaScriptTokenizerTest", {
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(3, tokens.length);
assertEquals("identifier", tokens[0].type);
assertEquals("text", tokens[1].type);
assertEquals("keyword", tokens[2].type);
assert.equal(5, tokens.length);
assert.equal("identifier", tokens[0].type);
assert.equal("text", tokens[1].type);
assert.equal("keyword.operator", tokens[2].type);
assert.equal("text", tokens[3].type);
assert.equal("keyword", tokens[4].type);
},
"test: tokenize doc comment" : function() {
@ -61,12 +63,12 @@ var JavaScriptTokenizerTest = new TestCase("mode.JavaScriptTokenizerTest", {
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(5, tokens.length);
assertEquals("identifier", tokens[0].type);
assertEquals("text", tokens[1].type);
assertEquals("doc-comment", tokens[2].type);
assertEquals("text", tokens[3].type);
assertEquals("identifier", tokens[4].type);
assert.equal(5, tokens.length);
assert.equal("identifier", tokens[0].type);
assert.equal("text", tokens[1].type);
assert.equal("comment.doc", tokens[2].type);
assert.equal("text", tokens[3].type);
assert.equal("identifier", tokens[4].type);
},
"test: tokenize doc comment with tag" : function() {
@ -74,10 +76,10 @@ var JavaScriptTokenizerTest = new TestCase("mode.JavaScriptTokenizerTest", {
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(3, tokens.length);
assertEquals("doc-comment", tokens[0].type);
assertEquals("doc-comment-tag", tokens[1].type);
assertEquals("doc-comment", tokens[2].type);
assert.equal(3, tokens.length);
assert.equal("comment.doc", tokens[0].type);
assert.equal("comment.doc.tag", tokens[1].type);
assert.equal("comment.doc", tokens[2].type);
},
"test: tokenize parens" : function() {
@ -85,11 +87,14 @@ var JavaScriptTokenizerTest = new TestCase("mode.JavaScriptTokenizerTest", {
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(3, tokens.length);
assertEquals("lparen", tokens[0].type);
assertEquals("text", tokens[1].type);
assertEquals("rparen", tokens[2].type);
assert.equal(3, tokens.length);
assert.equal("lparen", tokens[0].type);
assert.equal("text", tokens[1].type);
assert.equal("rparen", tokens[2].type);
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,13 +35,13 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Document = require("ace/document").Document;
var Text = require("ace/mode/text").Mode;
var TextTest = new TestCase("mode.TextTest", {
var TextMode = require("ace/mode/text").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.mode = new TextMode();
},
@ -50,13 +50,16 @@ var TextTest = new TestCase("mode.TextTest", {
var doc = new Document([" abc", "cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"text: lines should not be indented" : function() {
assertEquals("", this.mode.getNextLineIndent("start", " abc", " "));
assert.equal("", this.mode.getNextLineIndent("start", " abc", " "));
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,14 +35,14 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Document = require("ace/document").Document;
var Tokenizer = require("ace/tokenizer").Tokenizer;
var Xml = require("ace/mode/xml").Mode;
var XmlTest = new TestCase("mode.XmlTest", {
var XmlMode = require("ace/mode/xml").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.mode = new XmlMode();
},
@ -50,24 +50,27 @@ var XmlTest = new TestCase("mode.XmlTest", {
"test: getTokenizer() (smoke test)" : function() {
var tokenizer = this.mode.getTokenizer();
assertTrue(tokenizer instanceof Tokenizer);
assert.ok(tokenizer instanceof Tokenizer);
var tokens = tokenizer.getLineTokens("<juhu>", "start").tokens;
assertEquals("keyword", tokens[1].type);
assert.equal("keyword", tokens[1].type);
},
"test: toggle comment lines should not do anything" : function() {
var doc = new Document([" abc", "cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", doc, 0, 1);
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString());
},
"test: next line indent should be the same as the current line indent" : function() {
assertEquals(" ", this.mode.getNextLineIndent("start", " abc"));
assertEquals("", this.mode.getNextLineIndent("start", "abc"));
assertEquals("\t", this.mode.getNextLineIndent("start", "\tabc"));
assert.equal(" ", this.mode.getNextLineIndent("start", " abc"));
assert.equal("", this.mode.getNextLineIndent("start", "abc"));
assert.equal("\t", this.mode.getNextLineIndent("start", "\tabc"));
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()

View file

@ -35,12 +35,13 @@
*
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
require("../../../../support/paths");
var Xml = require("ace/mode/xml").Mode;
var XmlTest = new TestCase("mode.XmlTest", {
var XmlMode = require("ace/mode/xml").Mode;
var assert = require("../assertions");
var Test = {
setUp : function() {
this.tokenizer = new XmlMode().getTokenizer();
},
@ -50,13 +51,16 @@ var XmlTest = new TestCase("mode.XmlTest", {
var line = "<Juhu>//Juhu Kinners</Kinners>";
var tokens = this.tokenizer.getLineTokens(line, "start").tokens;
assertEquals(5, tokens.length);
assertEquals("text", tokens[0].type);
assertEquals("keyword", tokens[1].type);
assertEquals("text", tokens[2].type);
assertEquals("keyword", tokens[3].type);
assertEquals("text", tokens[4].type);
assert.equal(5, tokens.length);
assert.equal("text", tokens[0].type);
assert.equal("keyword", tokens[1].type);
assert.equal("text", tokens[2].type);
assert.equal("keyword", tokens[3].type);
assert.equal("text", tokens[4].type);
}
});
};
});
module.exports = require("async/test").testcase(Test);
if (module === require.main)
module.exports.exec()