From 0fe4de2b62faa078cba16285ca19af7df043464b Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Wed, 19 Jan 2011 08:41:04 +0100 Subject: [PATCH] all tests are green again --- lib/ace/document.js | 3 +- lib/ace/editor.js | 4 +- lib/ace/search.js | 40 ++--- lib/ace/test/all.js | 1 + lib/ace/test/change_document_test.js | 10 +- lib/ace/test/edit_session_test.js | 6 +- lib/ace/test/mode/css_test.js | 8 +- lib/ace/test/mode/html_test.js | 8 +- lib/ace/test/mode/javascript_test.js | 46 +++--- lib/ace/test/mode/text_test.js | 8 +- lib/ace/test/mode/xml_test.js | 8 +- lib/ace/test/navigation_test.js | 18 +-- lib/ace/test/search_test.js | 112 +++++++------- lib/ace/test/selection_test.js | 66 ++++---- lib/ace/test/text_edit_test.js | 222 +++++++++++++-------------- 15 files changed, 281 insertions(+), 279 deletions(-) diff --git a/lib/ace/document.js b/lib/ace/document.js index db6e4d54..492c8050 100644 --- a/lib/ace/document.js +++ b/lib/ace/document.js @@ -257,7 +257,7 @@ var Document = function(text) { range.end = this.$clipPosition(range.end); if (range.isEmpty()) - return; + return range.start; var firstRow = range.start.row; var lastRow = range.end.row; @@ -274,6 +274,7 @@ var Document = function(text) { else { this.removeInLine(firstRow, range.start.column, range.end.column); } + return range.start; }; this.removeInLine = function(row, startColumn, endColumn) { diff --git a/lib/ace/editor.js b/lib/ace/editor.js index e6576dbf..927711ce 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -42,7 +42,7 @@ var event = require("pilot/event"); var lang = require("pilot/lang"); var TextInput = require("ace/keyboard/textinput").TextInput; var KeyBinding = require("ace/keyboard/keybinding").KeyBinding; -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var Search = require("ace/search").Search; var BackgroundTokenizer = require("ace/background_tokenizer").BackgroundTokenizer; var Range = require("ace/range").Range; @@ -78,7 +78,7 @@ var Editor =function(renderer, doc) { wrap: true }); - this.setDocument(doc || new Document("")); + this.setDocument(doc || new EditSession("")); this.focus(); }; diff --git a/lib/ace/search.js b/lib/ace/search.js index d800df76..aed0a8c5 100644 --- a/lib/ace/search.js +++ b/lib/ace/search.js @@ -67,14 +67,14 @@ Search.SELECTION = 2; return lang.copyObject(this.$options); }; - this.find = function(doc) { + this.find = function(session) { if (!this.$options.needle) return null; if (this.$options.backwards) { - var iterator = this.$backwardMatchIterator(doc); + var iterator = this.$backwardMatchIterator(session); } else { - iterator = this.$forwardMatchIterator(doc); + iterator = this.$forwardMatchIterator(session); } var firstRange = null; @@ -86,14 +86,14 @@ Search.SELECTION = 2; return firstRange; }; - this.findAll = function(doc) { + this.findAll = function(session) { if (!this.$options.needle) return []; if (this.$options.backwards) { - var iterator = this.$backwardMatchIterator(doc); + var iterator = this.$backwardMatchIterator(session); } else { - iterator = this.$forwardMatchIterator(doc); + iterator = this.$forwardMatchIterator(session); } var ranges = []; @@ -118,13 +118,13 @@ Search.SELECTION = 2; } }; - this.$forwardMatchIterator = function(doc) { + this.$forwardMatchIterator = function(session) { var re = this.$assembleRegExp(); var self = this; return { forEach: function(callback) { - self.$forwardLineIterator(doc).forEach(function(line, startIndex, row) { + self.$forwardLineIterator(session).forEach(function(line, startIndex, row) { if (startIndex) { line = line.substring(startIndex); } @@ -152,13 +152,13 @@ Search.SELECTION = 2; }; }; - this.$backwardMatchIterator = function(doc) { + this.$backwardMatchIterator = function(session) { var re = this.$assembleRegExp(); var self = this; return { forEach: function(callback) { - self.$backwardLineIterator(doc).forEach(function(line, startIndex, row) { + self.$backwardLineIterator(session).forEach(function(line, startIndex, row) { if (startIndex) { line = line.substring(startIndex); } @@ -208,20 +208,20 @@ Search.SELECTION = 2; return re; }; - this.$forwardLineIterator = function(doc) { + this.$forwardLineIterator = function(session) { var searchSelection = this.$options.scope == Search.SELECTION; - var range = doc.getSelection().getRange(); - var start = doc.getSelection().getCursor(); + var range = session.getSelection().getRange(); + var start = session.getSelection().getCursor(); var firstRow = searchSelection ? range.start.row : 0; var firstColumn = searchSelection ? range.start.column : 0; - var lastRow = searchSelection ? range.end.row : doc.getLength() - 1; + var lastRow = searchSelection ? range.end.row : session.getLength() - 1; var wrap = this.$options.wrap; function getLine(row) { - var line = doc.getLine(row); + var line = session.getLine(row); if (searchSelection && row == range.end.row) { line = line.substring(0, range.end.column); } @@ -264,15 +264,15 @@ Search.SELECTION = 2; }; }; - this.$backwardLineIterator = function(doc) { + this.$backwardLineIterator = function(session) { var searchSelection = this.$options.scope == Search.SELECTION; - var range = doc.getSelection().getRange(); + var range = session.getSelection().getRange(); var start = searchSelection ? range.end : range.start; var firstRow = searchSelection ? range.start.row : 0; var firstColumn = searchSelection ? range.start.column : 0; - var lastRow = searchSelection ? range.end.row : doc.getLength() - 1; + var lastRow = searchSelection ? range.end.row : session.getLength() - 1; var wrap = this.$options.wrap; @@ -280,7 +280,7 @@ Search.SELECTION = 2; forEach : function(callback) { var row = start.row; - var line = doc.getLine(row).substring(0, start.column); + var line = session.getLine(row).substring(0, start.column); var startIndex = 0; var stop = false; @@ -303,7 +303,7 @@ Search.SELECTION = 2; if (row == start.row) stop = true; - line = doc.getLine(row); + line = session.getLine(row); if (searchSelection) { if (row == firstRow) startIndex = firstColumn; diff --git a/lib/ace/test/all.js b/lib/ace/test/all.js index 449e6c17..5e4dc4e0 100644 --- a/lib/ace/test/all.js +++ b/lib/ace/test/all.js @@ -42,6 +42,7 @@ var async = require("async"); async.concat( require("./change_document_test"), require("./document_test"), + require("./edit_session_test"), require("./event_emitter_test"), require("./navigation_test"), require("./range_test"), diff --git a/lib/ace/test/change_document_test.js b/lib/ace/test/change_document_test.js index 5291eff9..77375781 100644 --- a/lib/ace/test/change_document_test.js +++ b/lib/ace/test/change_document_test.js @@ -39,7 +39,7 @@ define(function(require, exports, module) { require("./mockdom"); -var Document = require("../document").Document, +var EditSession = require("../edit_session").EditSession, Editor = require("../editor").Editor, Text = require("../mode/text").Mode, JavaScriptMode = require("../mode/javascript").Mode, @@ -47,10 +47,12 @@ var Document = require("../document").Document, assert = require("./assertions"); var Test = { - setUp : function() { - this.doc1 = new Document(["abc", "def"].join("\n")); - this.doc2 = new Document(["ghi", "jkl"].join("\n")); + + setUp : function(next) { + this.doc1 = new EditSession(["abc", "def"]); + this.doc2 = new EditSession(["ghi", "jkl"]); this.editor = new Editor(new MockRenderer()); + next(); }, "test: change document" : function() { diff --git a/lib/ace/test/edit_session_test.js b/lib/ace/test/edit_session_test.js index d4a13367..4298df3a 100644 --- a/lib/ace/test/edit_session_test.js +++ b/lib/ace/test/edit_session_test.js @@ -37,10 +37,10 @@ define(function(require, exports, module) { -var EditSession = require("../edit_session").EditSession, - UndoManager = require("../undomanager").UndoManager, +var EditSession = require("ace/edit_session").EditSession, + UndoManager = require("ace/undomanager").UndoManager, MockRenderer = require("./mockrenderer"), - Range = require("../range").Range, + Range = require("ace/range").Range, assert = require("./assertions"), async = require("async"); diff --git a/lib/ace/test/mode/css_test.js b/lib/ace/test/mode/css_test.js index 77573871..3b2932c0 100644 --- a/lib/ace/test/mode/css_test.js +++ b/lib/ace/test/mode/css_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var CssMode = require("ace/mode/css").Mode; var assert = require("../assertions"); @@ -47,10 +47,10 @@ var Test = { }, "test: toggle comment lines should not do anything" : function() { - var doc = new Document([" abc", "cde", "fg"].join("\n")); + var session = new EditSession([" abc", "cde", "fg"].join("\n")); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, diff --git a/lib/ace/test/mode/html_test.js b/lib/ace/test/mode/html_test.js index a9c7e4fd..d9cf64e4 100644 --- a/lib/ace/test/mode/html_test.js +++ b/lib/ace/test/mode/html_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var Range = require("ace/range").Range; var HtmlMode = require("ace/mode/html").Mode; var assert = require("../assertions"); @@ -48,11 +48,11 @@ var Test = { }, "test: toggle comment lines should not do anything" : function() { - var doc = new Document([" abc", "cde", "fg"]); + var session = new EditSession([" abc", "cde", "fg"]); var range = new Range(0, 3, 1, 1); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, "test: next line indent should be the same as the current line indent" : function() { diff --git a/lib/ace/test/mode/javascript_test.js b/lib/ace/test/mode/javascript_test.js index 0acf55b1..9fcb9c09 100644 --- a/lib/ace/test/mode/javascript_test.js +++ b/lib/ace/test/mode/javascript_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var Tokenizer = require("ace/tokenizer").Tokenizer; var JavaScriptMode = require("ace/mode/javascript").Mode; var assert = require("../assertions"); @@ -57,39 +57,39 @@ var Test = { }, "test: toggle comment lines should prepend '//' to each line" : function() { - var doc = new Document([" abc", "cde", "fg"]); + var session = new EditSession([" abc", "cde", "fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal(["// abc", "//cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal(["// abc", "//cde", "fg"].join("\n"), session.toString()); }, "test: toggle comment on commented lines should remove leading '//' chars" : function() { - var doc = new Document(["// abc", "//cde", "fg"]); + var session = new EditSession(["// abc", "//cde", "fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, "test: toggle comment lines twice should return the original text" : function() { - var doc = new Document([" abc", "cde", "fg"]); + var session = new EditSession([" abc", "cde", "fg"]); - this.mode.toggleCommentLines("start", doc, 0, 2); - this.mode.toggleCommentLines("start", doc, 0, 2); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + this.mode.toggleCommentLines("start", session, 0, 2); + this.mode.toggleCommentLines("start", session, 0, 2); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, "test: toggle comment on multiple lines with one commented line prepend '//' to each line" : function() { - var doc = new Document(["// abc", "//cde", "fg"]); + var session = new EditSession(["// abc", "//cde", "fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 2); - assert.equal(["//// abc", "////cde", "//fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 2); + assert.equal(["//// abc", "////cde", "//fg"].join("\n"), session.toString()); }, "test: toggle comment on a comment line with leading white space": function() { - var doc = new Document(["//cde", " //fg"]); + var session = new EditSession(["//cde", " //fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal(["cde", " fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal(["cde", " fg"].join("\n"), session.toString()); }, "test: auto indent after opening brace" : function() { @@ -132,15 +132,15 @@ var Test = { }, "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); - assert.equal(" }", doc.getLine(2)); + var session = new EditSession([" function foo() {", " bla", " }"]); + this.mode.autoOutdent("start", session, 2); + assert.equal(" }", session.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); - assert.equal(" }", doc.getLine(2)); + var session = new EditSession([" function foo()", " bla", " }"]); + this.mode.autoOutdent("start", session, 2); + assert.equal(" }", session.getLine(2)); } }; diff --git a/lib/ace/test/mode/text_test.js b/lib/ace/test/mode/text_test.js index 06c93f7b..a39f7d5b 100644 --- a/lib/ace/test/mode/text_test.js +++ b/lib/ace/test/mode/text_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var TextMode = require("ace/mode/text").Mode; var assert = require("../assertions"); @@ -47,10 +47,10 @@ var Test = { }, "test: toggle comment lines should not do anything" : function() { - var doc = new Document([" abc", "cde", "fg"]); + var session = new EditSession([" abc", "cde", "fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, diff --git a/lib/ace/test/mode/xml_test.js b/lib/ace/test/mode/xml_test.js index 01f86760..e2375afb 100644 --- a/lib/ace/test/mode/xml_test.js +++ b/lib/ace/test/mode/xml_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("ace/document").Document; +var EditSession = require("ace/edit_session").EditSession; var Tokenizer = require("ace/tokenizer").Tokenizer; var XmlMode = require("ace/mode/xml").Mode; var assert = require("../assertions"); @@ -57,10 +57,10 @@ var Test = { }, "test: toggle comment lines should not do anything" : function() { - var doc = new Document([" abc", "cde", "fg"]); + var session = new EditSession([" abc", "cde", "fg"]); - var comment = this.mode.toggleCommentLines("start", doc, 0, 1); - assert.equal([" abc", "cde", "fg"].join("\n"), doc.toString()); + var comment = this.mode.toggleCommentLines("start", session, 0, 1); + assert.equal([" abc", "cde", "fg"].join("\n"), session.toString()); }, "test: next line indent should be the same as the current line indent" : function() { diff --git a/lib/ace/test/navigation_test.js b/lib/ace/test/navigation_test.js index 30a1c144..44938b6f 100644 --- a/lib/ace/test/navigation_test.js +++ b/lib/ace/test/navigation_test.js @@ -39,20 +39,20 @@ define(function(require, exports, module) { require("./mockdom"); -var Document = require("../Document").Document, +var EditSession = require("ace/edit_session").EditSession, Editor = require("../Editor").Editor, MockRenderer = require("./mockrenderer"), assert = require("./assertions"); var Test = { - createTextDocument : function(rows, cols) { + createEditSession : function(rows, cols) { var line = new Array(cols + 1).join("a"); var text = new Array(rows).join(line + "\n") + line; - return new Document(text); + return new EditSession(text); }, "test: navigate to end of file should scroll the last line into view" : function() { - var doc = this.createTextDocument(200, 10); + var doc = this.createEditSession(200, 10); var editor = new Editor(new MockRenderer(), doc); editor.navigateFileEnd(); @@ -63,7 +63,7 @@ var Test = { }, "test: navigate to start of file should scroll the first row into view" : function() { - var doc = this.createTextDocument(200, 10); + var doc = this.createEditSession(200, 10); var editor = new Editor(new MockRenderer(), doc); editor.moveCursorTo(editor.getLastVisibleRow() + 20); @@ -73,7 +73,7 @@ var Test = { }, "test: goto hidden line should scroll the line into the middle of the viewport" : function() { - var editor = new Editor(new MockRenderer(), this.createTextDocument(200, 5)); + var editor = new Editor(new MockRenderer(), this.createEditSession(200, 5)); editor.navigateTo(0, 0); editor.gotoLine(101); @@ -107,7 +107,7 @@ var Test = { }, "test: goto visible line should only move the cursor and not scroll": function() { - var editor = new Editor(new MockRenderer(), this.createTextDocument(200, 5)); + var editor = new Editor(new MockRenderer(), this.createEditSession(200, 5)); editor.navigateTo(0, 0); editor.gotoLine(12); @@ -121,7 +121,7 @@ var Test = { }, "test: navigate from the end of a long line down to a short line and back should maintain the curser column": function() { - var editor = new Editor(new MockRenderer(), new Document(["123456", "1"])); + var editor = new Editor(new MockRenderer(), new EditSession(["123456", "1"])); editor.navigateTo(0, 6); assert.position(editor.getCursorPosition(), 0, 6); @@ -134,7 +134,7 @@ var Test = { }, "test: reset desired column on navigate left or right": function() { - var editor = new Editor(new MockRenderer(), new Document(["123456", "12"])); + var editor = new Editor(new MockRenderer(), new EditSession(["123456", "12"])); editor.navigateTo(0, 6); assert.position(editor.getCursorPosition(), 0, 6); diff --git a/lib/ace/test/search_test.js b/lib/ace/test/search_test.js index 00f35b2b..b33a0d0f 100644 --- a/lib/ace/test/search_test.js +++ b/lib/ace/test/search_test.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var Document = require("../document").Document, +var EditSession = require("ace/edit_session").EditSession, Search = require("../search").Search, assert = require("./assertions"); @@ -51,128 +51,128 @@ var Test = { }, "test: find simple text in document" : function() { - var doc = new Document(["juhu kinners 123", "456"]); + var session = new EditSession(["juhu kinners 123", "456"]); var search = new Search().set({ needle: "kinners" }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 0, 5); assert.position(range.end, 0, 12); }, "test: find simple text in next line" : function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); var search = new Search().set({ needle: "kinners" }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 5); assert.position(range.end, 1, 12); }, "test: find text starting at cursor position" : function() { - var doc = new Document(["juhu kinners", "juhu kinners 123"]); - doc.getSelection().moveCursorTo(0, 6); + var session = new EditSession(["juhu kinners", "juhu kinners 123"]); + session.getSelection().moveCursorTo(0, 6); var search = new Search().set({ needle: "kinners" }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 5); assert.position(range.end, 1, 12); }, "test: wrap search is off by default" : function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); - doc.getSelection().moveCursorTo(2, 1); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); + session.getSelection().moveCursorTo(2, 1); var search = new Search().set({ needle: "kinners" }); - assert.equal(search.find(doc), null); + assert.equal(search.find(session), null); }, "test: wrap search should wrap at file end" : function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); - doc.getSelection().moveCursorTo(2, 1); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); + session.getSelection().moveCursorTo(2, 1); var search = new Search().set({ needle: "kinners", wrap: true }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 5); assert.position(range.end, 1, 12); }, "test: wrap search with no match should return 'null'": function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); - doc.getSelection().moveCursorTo(2, 1); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); + session.getSelection().moveCursorTo(2, 1); var search = new Search().set({ needle: "xyz", wrap: true }); - assert.equal(search.find(doc), null); + assert.equal(search.find(session), null); }, "test: case sensitive is by default off": function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); var search = new Search().set({ needle: "JUHU" }); - assert.range(search.find(doc), 1, 0, 1, 4); + assert.range(search.find(session), 1, 0, 1, 4); }, "test: case sensitive search": function() { - var doc = new Document(["abc", "juhu kinners 123", "456"]); + var session = new EditSession(["abc", "juhu kinners 123", "456"]); var search = new Search().set({ needle: "KINNERS", caseSensitive: true }); - var range = search.find(doc); + var range = search.find(session); assert.equal(range, null); }, "test: whole word search should not match inside of words": function() { - var doc = new Document(["juhukinners", "juhu kinners 123", "456"]); + var session = new EditSession(["juhukinners", "juhu kinners 123", "456"]); var search = new Search().set({ needle: "kinners", wholeWord: true }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 5); assert.position(range.end, 1, 12); }, "test: find backwards": function() { - var doc = new Document(["juhu juhu juhu juhu"]); - doc.getSelection().moveCursorTo(0, 10); + var session = new EditSession(["juhu juhu juhu juhu"]); + session.getSelection().moveCursorTo(0, 10); var search = new Search().set({ needle: "juhu", backwards: true }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 0, 5); assert.position(range.end, 0, 9); }, "test: find in selection": function() { - var doc = new Document(["juhu", "juhu", "juhu", "juhu"]); - doc.getSelection().setSelectionAnchor(1, 0); - doc.getSelection().selectTo(3, 5); + var session = new EditSession(["juhu", "juhu", "juhu", "juhu"]); + session.getSelection().setSelectionAnchor(1, 0); + session.getSelection().selectTo(3, 5); var search = new Search().set({ needle: "juhu", @@ -180,20 +180,20 @@ var Test = { scope: Search.SELECTION }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 0); assert.position(range.end, 1, 4); - doc.getSelection().setSelectionAnchor(0, 2); - doc.getSelection().selectTo(3, 2); + session.getSelection().setSelectionAnchor(0, 2); + session.getSelection().selectTo(3, 2); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 1, 0); assert.position(range.end, 1, 4); }, "test: find backwards in selection": function() { - var doc = new Document(["juhu", "juhu", "juhu", "juhu"]); + var session = new EditSession(["juhu", "juhu", "juhu", "juhu"]); var search = new Search().set({ needle: "juhu", @@ -202,36 +202,36 @@ var Test = { scope: Search.SELECTION }); - doc.getSelection().setSelectionAnchor(0, 2); - doc.getSelection().selectTo(3, 2); + session.getSelection().setSelectionAnchor(0, 2); + session.getSelection().selectTo(3, 2); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 2, 0); assert.position(range.end, 2, 4); - doc.getSelection().setSelectionAnchor(0, 2); - doc.getSelection().selectTo(1, 2); + session.getSelection().setSelectionAnchor(0, 2); + session.getSelection().selectTo(1, 2); - assert.equal(search.find(doc), null); + assert.equal(search.find(session), null); }, "test: edge case - match directly before the cursor" : function() { - var doc = new Document(["123", "123", "juhu"]); + var session = new EditSession(["123", "123", "juhu"]); var search = new Search().set({ needle: "juhu", wrap: true }); - doc.getSelection().moveCursorTo(2, 5); + session.getSelection().moveCursorTo(2, 5); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 2, 0); assert.position(range.end, 2, 4); }, "test: edge case - match backwards directly after the cursor" : function() { - var doc = new Document(["123", "123", "juhu"]); + var session = new EditSession(["123", "123", "juhu"]); var search = new Search().set({ needle: "juhu", @@ -239,28 +239,28 @@ var Test = { backwards: true }); - doc.getSelection().moveCursorTo(2, 0); + session.getSelection().moveCursorTo(2, 0); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 2, 0); assert.position(range.end, 2, 4); }, "test: find using a regular expression" : function() { - var doc = new Document(["abc123 123 cd", "abc"]); + var session = new EditSession(["abc123 123 cd", "abc"]); var search = new Search().set({ needle: "\\d+", regExp: true }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 0, 3); assert.position(range.end, 0, 6); }, "test: find using a regular expression and whole word" : function() { - var doc = new Document(["abc123 123 cd", "abc"]); + var session = new EditSession(["abc123 123 cd", "abc"]); var search = new Search().set({ needle: "\\d+\\b", @@ -268,26 +268,26 @@ var Test = { wholeWord: true }); - var range = search.find(doc); + var range = search.find(session); assert.position(range.start, 0, 7); assert.position(range.end, 0, 10); }, "test: use regular expressions with capture groups": function() { - var doc = new Document([" ab: 12px", "