cleanup unit tests

This commit is contained in:
Fabian Jakobs 2012-04-06 17:55:23 +02:00
commit cbd29bc541
7 changed files with 53 additions and 51 deletions

View file

@ -178,7 +178,8 @@ var Document = function(text) {
position = this.$clipPosition(position); position = this.$clipPosition(position);
if (this.getLength() >= 1) // only detect new lines if the document has no line break yet
if (this.getLength() <= 1)
this.$detectNewLine(text); this.$detectNewLine(text);
var lines = this.$split(text); var lines = this.$split(text);

View file

@ -59,12 +59,12 @@ module.exports = {
} }
}; };
}, },
"test check for syntax error": function() { "test check for syntax error": function() {
var worker = new JavaScriptWorker(this.sender); var worker = new JavaScriptWorker(this.sender);
worker.setValue("Juhu Kinners"); worker.setValue("Juhu Kinners");
worker.deferredUpdate.call(); worker.deferredUpdate.call();
var error = this.sender.events[0][1]; var error = this.sender.events[0][1];
assert.equal(error.text, "missing ; before statement"); assert.equal(error.text, "missing ; before statement");
assert.equal(error.type, "error"); assert.equal(error.type, "error");
@ -76,15 +76,14 @@ module.exports = {
var worker = new JavaScriptWorker(this.sender); var worker = new JavaScriptWorker(this.sender);
worker.setValue('"a\n\\nn"'); worker.setValue('"a\n\\nn"');
worker.deferredUpdate.call(); worker.deferredUpdate.call();
console.log(this.sender.events)
var error = this.sender.events[0][1]; var error = this.sender.events[0][1];
assert.equal(error.text, "Unterminated string literal"); assert.equal(error.text, "Unterminated string literal");
assert.equal(error.type, "error"); assert.equal(error.type, "error");
assert.equal(error.row, 0); assert.equal(error.row, 0);
assert.equal(error.column, null); assert.equal(error.column, null);
}, },
"test check for narcissus bug": function() { "test check for narcissus bug": function() {
var worker = new JavaScriptWorker(this.sender); var worker = new JavaScriptWorker(this.sender);
worker.setValue("if('"); worker.setValue("if('");

View file

@ -20,7 +20,6 @@
* *
* Contributor(s): * Contributor(s):
* Fabian Jakobs <fabian AT ajax DOT org> * Fabian Jakobs <fabian AT ajax DOT org>
* Mihai Sucan <mihai DOT sucan AT gmail DOT com>
* *
* Alternatively, the contents of this file may be used under the terms of * Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or * either the GNU General Public License Version 2 or later (the "GPL"), or
@ -37,6 +36,7 @@
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) { define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop"); var oop = require("../lib/oop");
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
@ -100,11 +100,11 @@ var LiquidHighlightRules = function() {
next : "comment" next : "comment"
}, { }, {
token : "meta.tag", token : "meta.tag",
regex : "<(?=\s*script\\b)", regex : "<(?=\\s*script\\b)",
next : "script" next : "script"
}, { }, {
token : "meta.tag", token : "meta.tag",
regex : "<(?=\s*style\\b)", regex : "<(?=\\s*style\\b)",
next : "style" next : "style"
}, { }, {
token : "meta.tag", // opening tag token : "meta.tag", // opening tag
@ -184,14 +184,14 @@ var LiquidHighlightRules = function() {
regex : "\/|\\*|\\-|\\+|=|!=|\\?\\:" regex : "\/|\\*|\\-|\\+|=|!=|\\?\\:"
}, { }, {
token : "paren.lparen", token : "paren.lparen",
regex : "[[({]" regex : /[\[\({]/
}, { }, {
token : "paren.rparen", token : "paren.rparen",
regex : "[\\])}]" regex : /[\])}]/
}, { }, {
token : "text", token : "text",
regex : "\\s+" regex : "\\s+"
}, ] }]
}; };
xmlUtil.tag(this.$rules, "tag", "start"); xmlUtil.tag(this.$rules, "tag", "start");

View file

@ -55,22 +55,22 @@ module.exports = {
"test: tokenize tags" : function() { "test: tokenize tags" : function() {
var line = "for one in many"; var line = "for one in many";
var tokens = this.tokenizer.getLineTokens(line, "start").tokens; var tokens = this.tokenizer.getLineTokens(line, "liquid_start").tokens;
assert.equal(5, tokens.length); assert.equal(7, tokens.length);
assert.equal("keyword", tokens[0].type); assert.equal("keyword", tokens[0].type);
assert.equal("text", tokens[1].type); assert.equal("text", tokens[1].type);
assert.equal("text", tokens[2].type); assert.equal("identifier", tokens[2].type);
assert.equal("text", tokens[3].type); assert.equal("text", tokens[3].type);
assert.equal("keyword.operator", tokens[3].type); assert.equal("keyword", tokens[4].type);
assert.equal("text", tokens[4].type);
assert.equal("text", tokens[5].type); assert.equal("text", tokens[5].type);
assert.equal("identifier", tokens[6].type);
}, },
"test: tokenize parens" : function() { "test: tokenize parens" : function() {
var line = "[{( )}]"; var line = "[{( )}]";
var tokens = this.tokenizer.getLineTokens(line, "start").tokens; var tokens = this.tokenizer.getLineTokens(line, "liquid_start").tokens;
assert.equal(7, tokens.length); assert.equal(7, tokens.length);
assert.equal("paren.lparen", tokens[0].type); assert.equal("paren.lparen", tokens[0].type);

View file

@ -48,7 +48,7 @@ var MockRenderer = exports.MockRenderer = function(visibleRowCount) {
}; };
this.isMockRenderer = true; this.isMockRenderer = true;
this.$gutter = {}; this.$gutter = {};
}; };
@ -103,7 +103,7 @@ MockRenderer.prototype.updateCursor = function() {
MockRenderer.prototype.scrollToX = function(scrollTop) {}; MockRenderer.prototype.scrollToX = function(scrollTop) {};
MockRenderer.prototype.scrollToY = function(scrollLeft) {}; MockRenderer.prototype.scrollToY = function(scrollLeft) {};
MockRenderer.prototype.scrollToLine = function(line, center) { MockRenderer.prototype.scrollToLine = function(line, center) {
var lineHeight = { lineHeight: 16 }; var lineHeight = { lineHeight: 16 };
var row = 0; var row = 0;
@ -117,6 +117,9 @@ MockRenderer.prototype.scrollToLine = function(line, center) {
this.scrollToRow(row); this.scrollToRow(row);
}; };
MockRenderer.prototype.scrollSelectionIntoView = function() {
};
MockRenderer.prototype.scrollCursorIntoView = function() { MockRenderer.prototype.scrollCursorIntoView = function() {
var cursor = this.session.getSelection().getCursor(); var cursor = this.session.getSelection().getCursor();
if (cursor.row < this.layerConfig.firstVisibleRow) { if (cursor.row < this.layerConfig.firstVisibleRow) {
@ -179,7 +182,7 @@ MockRenderer.prototype.textToScreenCoordinates = function() {
}; };
MockRenderer.prototype.adjustWrapLimit = function () { MockRenderer.prototype.adjustWrapLimit = function () {
}; };
}); });

View file

@ -56,17 +56,17 @@ module.exports = {
" } // Real Tab.", " } // Real Tab.",
"}" "}"
]; ];
var session = new EditSession(lines.join("\n"), new JavaScriptMode()); var session = new EditSession(lines.join("\n"), new JavaScriptMode());
var iterator = new TokenIterator(session, 0, 0); var iterator = new TokenIterator(session, 0, 0);
assert.equal(iterator.getCurrentToken().value, "function"); assert.equal(iterator.getCurrentToken().value, "function");
assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenRow(), 0);
assert.equal(iterator.getCurrentTokenColumn(), 0); assert.equal(iterator.getCurrentTokenColumn(), 0);
iterator.stepForward(); iterator.stepForward();
assert.equal(iterator.getCurrentToken().value, " "); assert.equal(iterator.getCurrentToken().value, " ");
assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenRow(), 0);
assert.equal(iterator.getCurrentTokenColumn(), 8); assert.equal(iterator.getCurrentTokenColumn(), 8);
var iterator = new TokenIterator(session, 0, 4); var iterator = new TokenIterator(session, 0, 4);
assert.equal(iterator.getCurrentToken().value, "function"); assert.equal(iterator.getCurrentToken().value, "function");
@ -76,7 +76,7 @@ module.exports = {
iterator.stepForward(); iterator.stepForward();
assert.equal(iterator.getCurrentToken().value, " "); assert.equal(iterator.getCurrentToken().value, " ");
assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenRow(), 0);
assert.equal(iterator.getCurrentTokenColumn(), 8); assert.equal(iterator.getCurrentTokenColumn(), 8);
var iterator = new TokenIterator(session, 2, 18); var iterator = new TokenIterator(session, 2, 18);
assert.equal(iterator.getCurrentToken().value, "items"); assert.equal(iterator.getCurrentToken().value, "items");
@ -86,8 +86,8 @@ module.exports = {
iterator.stepForward(); iterator.stepForward();
assert.equal(iterator.getCurrentToken().value, "["); assert.equal(iterator.getCurrentToken().value, "[");
assert.equal(iterator.getCurrentTokenRow(), 2); assert.equal(iterator.getCurrentTokenRow(), 2);
assert.equal(iterator.getCurrentTokenColumn(), 19); assert.equal(iterator.getCurrentTokenColumn(), 19);
var iterator = new TokenIterator(session, 4, 0); var iterator = new TokenIterator(session, 4, 0);
assert.equal(iterator.getCurrentToken().value, "}"); assert.equal(iterator.getCurrentToken().value, "}");
assert.equal(iterator.getCurrentTokenRow(), 4); assert.equal(iterator.getCurrentTokenRow(), 4);
@ -96,21 +96,21 @@ module.exports = {
iterator.stepBackward(); iterator.stepBackward();
assert.equal(iterator.getCurrentToken().value, "// Real Tab."); assert.equal(iterator.getCurrentToken().value, "// Real Tab.");
assert.equal(iterator.getCurrentTokenRow(), 3); assert.equal(iterator.getCurrentTokenRow(), 3);
assert.equal(iterator.getCurrentTokenColumn(), 6); assert.equal(iterator.getCurrentTokenColumn(), 6);
var iterator = new TokenIterator(session, 5, 0); var iterator = new TokenIterator(session, 5, 0);
assert.equal(iterator.getCurrentToken(), null); assert.equal(iterator.getCurrentToken(), null);
}, },
"test: token iterator initialization in text document" : function() { "test: token iterator initialization in text document" : function() {
var lines = [ var lines = [
"Lorem ipsum dolor sit amet, consectetur adipisicing elit,", "Lorem ipsum dolor sit amet, consectetur adipisicing elit,",
"sed do eiusmod tempor incididunt ut labore et dolore magna", "sed do eiusmod tempor incididunt ut labore et dolore magna",
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation", "aliqua. Ut enim ad minim veniam, quis nostrud exercitation",
"ullamco laboris nisi ut aliquip ex ea commodo consequat." "ullamco laboris nisi ut aliquip ex ea commodo consequat."
]; ];
var session = new EditSession(lines.join("\n")); var session = new EditSession(lines.join("\n"));
var iterator = new TokenIterator(session, 0, 0); var iterator = new TokenIterator(session, 0, 0);
assert.equal(iterator.getCurrentToken().value, lines[0]); assert.equal(iterator.getCurrentToken().value, lines[0]);
assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenRow(), 0);
@ -125,16 +125,16 @@ module.exports = {
assert.equal(iterator.getCurrentToken().value, lines[2]); assert.equal(iterator.getCurrentToken().value, lines[2]);
assert.equal(iterator.getCurrentTokenRow(), 2); assert.equal(iterator.getCurrentTokenRow(), 2);
assert.equal(iterator.getCurrentTokenColumn(), 0); assert.equal(iterator.getCurrentTokenColumn(), 0);
var iterator = new TokenIterator(session, 3, lines[3].length-1); var iterator = new TokenIterator(session, 3, lines[3].length-1);
assert.equal(iterator.getCurrentToken().value, lines[3]); assert.equal(iterator.getCurrentToken().value, lines[3]);
assert.equal(iterator.getCurrentTokenRow(), 3); assert.equal(iterator.getCurrentTokenRow(), 3);
assert.equal(iterator.getCurrentTokenColumn(), 0); assert.equal(iterator.getCurrentTokenColumn(), 0);
var iterator = new TokenIterator(session, 4, 0); var iterator = new TokenIterator(session, 4, 0);
assert.equal(iterator.getCurrentToken(), null); assert.equal(iterator.getCurrentToken(), null);
}, },
"test: token iterator step forward in JavaScript document" : function() { "test: token iterator step forward in JavaScript document" : function() {
var lines = [ var lines = [
"function foo(items) {", "function foo(items) {",
@ -143,10 +143,10 @@ module.exports = {
" } // Real Tab.", " } // Real Tab.",
"}" "}"
]; ];
var session = new EditSession(lines.join("\n"), new JavaScriptMode()); var session = new EditSession(lines.join("\n"), new JavaScriptMode());
var rows = session.getTokens(0, lines.length-1); var rows = session.getTokens(0, lines.length-1);
var tokens = []; var tokens = [];
for (var i = 0; i < rows.length; i++) for (var i = 0; i < rows.length; i++)
tokens = tokens.concat(rows[i].tokens); tokens = tokens.concat(rows[i].tokens);
@ -156,7 +156,7 @@ module.exports = {
assert.equal(iterator.stepForward(), null); assert.equal(iterator.stepForward(), null);
assert.equal(iterator.getCurrentToken(), null); assert.equal(iterator.getCurrentToken(), null);
}, },
"test: token iterator step backward in JavaScript document" : function() { "test: token iterator step backward in JavaScript document" : function() {
var lines = [ var lines = [
"function foo(items) {", "function foo(items) {",
@ -165,13 +165,13 @@ module.exports = {
" } // Real Tab.", " } // Real Tab.",
"}" "}"
]; ];
var session = new EditSession(lines.join("\n"), new JavaScriptMode()); var session = new EditSession(lines.join("\n"), new JavaScriptMode());
var rows = session.getTokens(0, lines.length-1); var rows = session.getTokens(0, lines.length-1);
var tokens = []; var tokens = [];
for (var i = 0; i < rows.length; i++) for (var i = 0; i < rows.length; i++)
tokens = tokens.concat(rows[i].tokens); tokens = tokens.concat(rows[i].tokens);
var iterator = new TokenIterator(session, 4, 0); var iterator = new TokenIterator(session, 4, 0);
for (var i = tokens.length-2; i >= 0; i--) for (var i = tokens.length-2; i >= 0; i--)
assert.equal(iterator.stepBackward(), tokens[i]); assert.equal(iterator.stepBackward(), tokens[i]);
@ -187,13 +187,13 @@ module.exports = {
" } // Real Tab.", " } // Real Tab.",
"}" "}"
]; ];
var session = new EditSession(lines.join("\n"), new JavaScriptMode()); var session = new EditSession(lines.join("\n"), new JavaScriptMode());
var iterator = new TokenIterator(session, 0, 0); var iterator = new TokenIterator(session, 0, 0);
iterator.stepForward(); iterator.stepForward();
iterator.stepForward(); iterator.stepForward();
assert.equal(iterator.getCurrentToken().value, "foo"); assert.equal(iterator.getCurrentToken().value, "foo");
assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenRow(), 0);
assert.equal(iterator.getCurrentTokenColumn(), 9); assert.equal(iterator.getCurrentTokenColumn(), 9);
@ -205,8 +205,7 @@ module.exports = {
iterator.stepForward(); iterator.stepForward();
iterator.stepForward(); iterator.stepForward();
iterator.stepForward(); iterator.stepForward();
iterator.stepForward();
assert.equal(iterator.getCurrentToken().value, "for"); assert.equal(iterator.getCurrentToken().value, "for");
assert.equal(iterator.getCurrentTokenRow(), 1); assert.equal(iterator.getCurrentTokenRow(), 1);
assert.equal(iterator.getCurrentTokenColumn(), 4); assert.equal(iterator.getCurrentTokenColumn(), 4);

View file

@ -16,9 +16,9 @@
"devDependencies": { "devDependencies": {
"asyncjs": "0.0.x", "asyncjs": "0.0.x",
"jsdom": "0.2.x", "jsdom": "0.2.x",
"amd-loader": ">=0.0.3", "amd-loader": "~0.0.4",
"libxml": "0.0.x", "libxml": "0.0.x",
"dryice": ">=0.4.1" "dryice": "~0.4.1"
}, },
"licenses": [{ "licenses": [{