From cbd29bc541998e7c2bee817d048aead94760f557 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Fri, 6 Apr 2012 17:55:23 +0200 Subject: [PATCH] cleanup unit tests --- lib/ace/document.js | 3 +- lib/ace/mode/javascript_worker_test.js | 9 ++-- lib/ace/mode/liquid_highlight_rules.js | 12 ++--- lib/ace/mode/liquid_highlight_rules_test.js | 12 ++--- lib/ace/test/mockrenderer.js | 9 ++-- lib/ace/token_iterator_test.js | 55 ++++++++++----------- package.json | 4 +- 7 files changed, 53 insertions(+), 51 deletions(-) diff --git a/lib/ace/document.js b/lib/ace/document.js index 67c8a525..237072ad 100644 --- a/lib/ace/document.js +++ b/lib/ace/document.js @@ -178,7 +178,8 @@ var Document = function(text) { 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); var lines = this.$split(text); diff --git a/lib/ace/mode/javascript_worker_test.js b/lib/ace/mode/javascript_worker_test.js index 33625e95..841d1de4 100644 --- a/lib/ace/mode/javascript_worker_test.js +++ b/lib/ace/mode/javascript_worker_test.js @@ -59,12 +59,12 @@ module.exports = { } }; }, - + "test check for syntax error": function() { var worker = new JavaScriptWorker(this.sender); worker.setValue("Juhu Kinners"); worker.deferredUpdate.call(); - + var error = this.sender.events[0][1]; assert.equal(error.text, "missing ; before statement"); assert.equal(error.type, "error"); @@ -76,15 +76,14 @@ module.exports = { var worker = new JavaScriptWorker(this.sender); worker.setValue('"a\n\\nn"'); worker.deferredUpdate.call(); - - console.log(this.sender.events) + var error = this.sender.events[0][1]; assert.equal(error.text, "Unterminated string literal"); assert.equal(error.type, "error"); assert.equal(error.row, 0); assert.equal(error.column, null); }, - + "test check for narcissus bug": function() { var worker = new JavaScriptWorker(this.sender); worker.setValue("if('"); diff --git a/lib/ace/mode/liquid_highlight_rules.js b/lib/ace/mode/liquid_highlight_rules.js index 5a0c7c8a..cb8fcb35 100644 --- a/lib/ace/mode/liquid_highlight_rules.js +++ b/lib/ace/mode/liquid_highlight_rules.js @@ -20,7 +20,6 @@ * * Contributor(s): * Fabian Jakobs - * Mihai Sucan * * 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 @@ -37,6 +36,7 @@ * ***** END LICENSE BLOCK ***** */ define(function(require, exports, module) { +"use strict"; var oop = require("../lib/oop"); var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; @@ -100,11 +100,11 @@ var LiquidHighlightRules = function() { next : "comment" }, { token : "meta.tag", - regex : "<(?=\s*script\\b)", + regex : "<(?=\\s*script\\b)", next : "script" }, { token : "meta.tag", - regex : "<(?=\s*style\\b)", + regex : "<(?=\\s*style\\b)", next : "style" }, { token : "meta.tag", // opening tag @@ -184,14 +184,14 @@ var LiquidHighlightRules = function() { regex : "\/|\\*|\\-|\\+|=|!=|\\?\\:" }, { token : "paren.lparen", - regex : "[[({]" + regex : /[\[\({]/ }, { token : "paren.rparen", - regex : "[\\])}]" + regex : /[\])}]/ }, { token : "text", regex : "\\s+" - }, ] + }] }; xmlUtil.tag(this.$rules, "tag", "start"); diff --git a/lib/ace/mode/liquid_highlight_rules_test.js b/lib/ace/mode/liquid_highlight_rules_test.js index 91d0bc44..45626046 100644 --- a/lib/ace/mode/liquid_highlight_rules_test.js +++ b/lib/ace/mode/liquid_highlight_rules_test.js @@ -55,22 +55,22 @@ module.exports = { "test: tokenize tags" : function() { 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("text", tokens[1].type); - assert.equal("text", tokens[2].type); + assert.equal("identifier", tokens[2].type); assert.equal("text", tokens[3].type); - assert.equal("keyword.operator", tokens[3].type); - assert.equal("text", tokens[4].type); + assert.equal("keyword", tokens[4].type); assert.equal("text", tokens[5].type); + assert.equal("identifier", tokens[6].type); }, "test: tokenize parens" : function() { 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("paren.lparen", tokens[0].type); diff --git a/lib/ace/test/mockrenderer.js b/lib/ace/test/mockrenderer.js index 5efac2a9..2645f5e9 100644 --- a/lib/ace/test/mockrenderer.js +++ b/lib/ace/test/mockrenderer.js @@ -48,7 +48,7 @@ var MockRenderer = exports.MockRenderer = function(visibleRowCount) { }; this.isMockRenderer = true; - + this.$gutter = {}; }; @@ -103,7 +103,7 @@ MockRenderer.prototype.updateCursor = function() { MockRenderer.prototype.scrollToX = function(scrollTop) {}; MockRenderer.prototype.scrollToY = function(scrollLeft) {}; - + MockRenderer.prototype.scrollToLine = function(line, center) { var lineHeight = { lineHeight: 16 }; var row = 0; @@ -117,6 +117,9 @@ MockRenderer.prototype.scrollToLine = function(line, center) { this.scrollToRow(row); }; +MockRenderer.prototype.scrollSelectionIntoView = function() { +}; + MockRenderer.prototype.scrollCursorIntoView = function() { var cursor = this.session.getSelection().getCursor(); if (cursor.row < this.layerConfig.firstVisibleRow) { @@ -179,7 +182,7 @@ MockRenderer.prototype.textToScreenCoordinates = function() { }; MockRenderer.prototype.adjustWrapLimit = function () { - + }; }); diff --git a/lib/ace/token_iterator_test.js b/lib/ace/token_iterator_test.js index 2b968395..97ba9778 100644 --- a/lib/ace/token_iterator_test.js +++ b/lib/ace/token_iterator_test.js @@ -56,17 +56,17 @@ module.exports = { " } // 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); assert.equal(iterator.getCurrentToken().value, "function"); assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenColumn(), 0); - + iterator.stepForward(); assert.equal(iterator.getCurrentToken().value, " "); assert.equal(iterator.getCurrentTokenRow(), 0); - assert.equal(iterator.getCurrentTokenColumn(), 8); + assert.equal(iterator.getCurrentTokenColumn(), 8); var iterator = new TokenIterator(session, 0, 4); assert.equal(iterator.getCurrentToken().value, "function"); @@ -76,7 +76,7 @@ module.exports = { iterator.stepForward(); assert.equal(iterator.getCurrentToken().value, " "); assert.equal(iterator.getCurrentTokenRow(), 0); - assert.equal(iterator.getCurrentTokenColumn(), 8); + assert.equal(iterator.getCurrentTokenColumn(), 8); var iterator = new TokenIterator(session, 2, 18); assert.equal(iterator.getCurrentToken().value, "items"); @@ -86,8 +86,8 @@ module.exports = { iterator.stepForward(); assert.equal(iterator.getCurrentToken().value, "["); assert.equal(iterator.getCurrentTokenRow(), 2); - assert.equal(iterator.getCurrentTokenColumn(), 19); - + assert.equal(iterator.getCurrentTokenColumn(), 19); + var iterator = new TokenIterator(session, 4, 0); assert.equal(iterator.getCurrentToken().value, "}"); assert.equal(iterator.getCurrentTokenRow(), 4); @@ -96,21 +96,21 @@ module.exports = { iterator.stepBackward(); assert.equal(iterator.getCurrentToken().value, "// Real Tab."); assert.equal(iterator.getCurrentTokenRow(), 3); - assert.equal(iterator.getCurrentTokenColumn(), 6); - + assert.equal(iterator.getCurrentTokenColumn(), 6); + var iterator = new TokenIterator(session, 5, 0); assert.equal(iterator.getCurrentToken(), null); }, - + "test: token iterator initialization in text document" : function() { 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", - "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." ]; var session = new EditSession(lines.join("\n")); - + var iterator = new TokenIterator(session, 0, 0); assert.equal(iterator.getCurrentToken().value, lines[0]); assert.equal(iterator.getCurrentTokenRow(), 0); @@ -125,16 +125,16 @@ module.exports = { assert.equal(iterator.getCurrentToken().value, lines[2]); assert.equal(iterator.getCurrentTokenRow(), 2); assert.equal(iterator.getCurrentTokenColumn(), 0); - + var iterator = new TokenIterator(session, 3, lines[3].length-1); assert.equal(iterator.getCurrentToken().value, lines[3]); assert.equal(iterator.getCurrentTokenRow(), 3); assert.equal(iterator.getCurrentTokenColumn(), 0); - + var iterator = new TokenIterator(session, 4, 0); assert.equal(iterator.getCurrentToken(), null); - }, - + }, + "test: token iterator step forward in JavaScript document" : function() { var lines = [ "function foo(items) {", @@ -143,10 +143,10 @@ module.exports = { " } // 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 tokens = []; + var tokens = []; for (var i = 0; i < rows.length; i++) tokens = tokens.concat(rows[i].tokens); @@ -156,7 +156,7 @@ module.exports = { assert.equal(iterator.stepForward(), null); assert.equal(iterator.getCurrentToken(), null); }, - + "test: token iterator step backward in JavaScript document" : function() { var lines = [ "function foo(items) {", @@ -165,13 +165,13 @@ module.exports = { " } // 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 tokens = []; + var tokens = []; for (var i = 0; i < rows.length; i++) tokens = tokens.concat(rows[i].tokens); - + var iterator = new TokenIterator(session, 4, 0); for (var i = tokens.length-2; i >= 0; i--) assert.equal(iterator.stepBackward(), tokens[i]); @@ -187,13 +187,13 @@ module.exports = { " } // 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); - + iterator.stepForward(); iterator.stepForward(); - + assert.equal(iterator.getCurrentToken().value, "foo"); assert.equal(iterator.getCurrentTokenRow(), 0); assert.equal(iterator.getCurrentTokenColumn(), 9); @@ -205,8 +205,7 @@ module.exports = { iterator.stepForward(); iterator.stepForward(); iterator.stepForward(); - iterator.stepForward(); - + assert.equal(iterator.getCurrentToken().value, "for"); assert.equal(iterator.getCurrentTokenRow(), 1); assert.equal(iterator.getCurrentTokenColumn(), 4); diff --git a/package.json b/package.json index 6029ad59..bdaf7968 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,9 @@ "devDependencies": { "asyncjs": "0.0.x", "jsdom": "0.2.x", - "amd-loader": ">=0.0.3", + "amd-loader": "~0.0.4", "libxml": "0.0.x", - "dryice": ">=0.4.1" + "dryice": "~0.4.1" }, "licenses": [{