cleanup unit tests
This commit is contained in:
parent
8c1508ab9b
commit
cbd29bc541
7 changed files with 53 additions and 51 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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('");
|
||||||
|
|
|
||||||
|
|
@ -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");
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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 () {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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": [{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue