From 017d6dc96e9db8153fc796f4d85406fde0168e49 Mon Sep 17 00:00:00 2001 From: dgeorge Date: Mon, 31 Oct 2011 16:08:21 -0700 Subject: [PATCH] Added more unit tests. Changed the unit test code to be formatted with leading spaces instead of tabs. --- lib/ace/edit_session_test.js | 55 +++++-- lib/ace/token_iterator_test.js | 286 ++++++++++++++++++--------------- 2 files changed, 197 insertions(+), 144 deletions(-) diff --git a/lib/ace/edit_session_test.js b/lib/ace/edit_session_test.js index aa7d796c..32b571c4 100644 --- a/lib/ace/edit_session_test.js +++ b/lib/ace/edit_session_test.js @@ -80,17 +80,7 @@ module.exports = { assert.equal(session.findMatchingBracket({row: 1, column: 5}), null); }, - "test: find matching opening bracket in JavaScript mode" : function() { - var session = new EditSession(["(()(", "", "())))"], new JavaScriptMode()); - - assert.position(session.findMatchingBracket({row: 0, column: 3}), 0, 1); - assert.position(session.findMatchingBracket({row: 2, column: 2}), 2, 0); - assert.position(session.findMatchingBracket({row: 2, column: 3}), 0, 3); - assert.position(session.findMatchingBracket({row: 2, column: 4}), 0, 0); - assert.equal(session.findMatchingBracket({row: 2, column: 5}), null); - }, - - "test: find matching closing bracket" : function() { + "test: find matching closing bracket in Text mode" : function() { var session = new EditSession(["(()(", "())))"]); assert.position(session.findMatchingBracket({row: 1, column: 1}), 1, 1); @@ -101,6 +91,49 @@ module.exports = { assert.equal(session.findMatchingBracket({row: 0, column: 0}), null); }, + "test: find matching opening bracket in JavaScript mode" : function() { + var lines = [ + "function foo() {", + " var str = \"{ foo()\";", + " if (debug) {", + " // write str (a string) to the console", + " console.log(str);", + " }", + " str += \" bar() }\";", + "}" + ]; + var session = new EditSession(lines.join("\n"), new JavaScriptMode()); + + assert.position(session.findMatchingBracket({row: 0, column: 14}), 0, 12); + assert.position(session.findMatchingBracket({row: 7, column: 1}), 0, 15); + assert.position(session.findMatchingBracket({row: 6, column: 20}), 1, 15); + assert.position(session.findMatchingBracket({row: 1, column: 22}), 1, 20); + assert.position(session.findMatchingBracket({row: 3, column: 31}), 3, 21); + assert.position(session.findMatchingBracket({row: 4, column: 24}), 4, 19); + assert.equal(session.findMatchingBracket({row: 0, column: 1}), null); + }, + + "test: find matching closing bracket in JavaScript mode" : function() { + var lines = [ + "function foo() {", + " var str = \"{ foo()\";", + " if (debug) {", + " // write str (a string) to the console", + " console.log(str);", + " }", + " str += \" bar() }\";", + "}" + ]; + var session = new EditSession(lines.join("\n"), new JavaScriptMode()); + + assert.position(session.findMatchingBracket({row: 0, column: 13}), 0, 13); + assert.position(session.findMatchingBracket({row: 0, column: 16}), 7, 0); + assert.position(session.findMatchingBracket({row: 1, column: 16}), 6, 19); + assert.position(session.findMatchingBracket({row: 1, column: 21}), 1, 21); + assert.position(session.findMatchingBracket({row: 3, column: 22}), 3, 30); + assert.position(session.findMatchingBracket({row: 4, column: 20}), 4, 23); + }, + "test: match different bracket types" : function() { var session = new EditSession(["({[", ")]}"]); diff --git a/lib/ace/token_iterator_test.js b/lib/ace/token_iterator_test.js index aa29917b..9950ef3c 100644 --- a/lib/ace/token_iterator_test.js +++ b/lib/ace/token_iterator_test.js @@ -19,7 +19,7 @@ * the Initial Developer. All Rights Reserved. * * Contributor(s): - * Fabian Jakobs + * Fabian Jakobs * * 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 @@ -36,7 +36,7 @@ * ***** END LICENSE BLOCK ***** */ if (typeof process !== "undefined") { - require("../../support/paths"); + require("../../support/paths"); } define(function(require, exports, module) { @@ -47,152 +47,172 @@ var TokenIterator = require("ace/token_iterator").TokenIterator; var assert = require("ace/test/assertions"); module.exports = { - "test: token iterator initialization in JavaScript document" : function() { - var lines = [ - "function foo(items) {", - " for (var i=0; i= 0; i--) - assert.equal(iterator.stepBackward(), tokens[i]); - assert.equal(iterator.stepBackward(), null); - assert.equal(iterator.getCurrentToken(), null); - }, + var rows = session.getTokens(0, lines.length-1); + 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]); + assert.equal(iterator.stepBackward(), null); + assert.equal(iterator.getCurrentToken(), null); + }, - "test: token iterator reports correct row and column" : function() { - var lines = [ - "function foo(items) {", - " for (var i=0; i