fix bug with ghost selections

This commit is contained in:
nightwing 2012-04-14 18:20:27 +04:00
commit b77c3b348e
5 changed files with 58 additions and 23 deletions

View file

@ -57,7 +57,7 @@ var exec = function(name, times, args) {
} while(times --> 1)
};
var testRanges = function(str) {
assert.equal(editor.selection.getAllRanges()+"", str);
assert.equal(editor.selection.getAllRanges() + "", str + "");
}
module.exports = {
@ -78,8 +78,8 @@ module.exports = {
assert.ok(editor.inMultiSelectMode);
assert.equal(editor.selection.getAllRanges().length, 4);
var newLine = editor.session.getDocument().getNewLineCharacter();
var copyText = "wwww".split("").join(newLine);
var newLine = editor.session.getDocument().getNewLineCharacter();
var copyText = "wwww".split("").join(newLine);
assert.equal(editor.getCopyText(), copyText);
exec("insertstring", 1, "a");
exec("backspace", 2);
@ -120,14 +120,11 @@ module.exports = {
" wtt.w",
" wtt.w"
]);
var editor = new Editor(new MockRenderer(), doc);
editor = new Editor(new MockRenderer(), doc);
MultiSelect(editor);
editor.selectMoreLines(1)
assert.equal(
editor.selection.getAllRanges()+"",
"Range: [0/0] -> [0/0],Range: [1/0] -> [1/0]"
);
testRanges("Range: [0/0] -> [0/0],Range: [1/0] -> [1/0]");
assert.ok(editor.inMultiSelectMode);
var doc2 = new EditSession(["w1"]);
@ -136,6 +133,34 @@ module.exports = {
editor.setSession(doc);
assert.ok(editor.inMultiSelectMode);
},
"test: multiselect addRange": function() {
var doc = new EditSession([
"w1.w2",
" wtt.w",
" wtt.w"
]);
editor = new Editor(new MockRenderer(), doc);
MultiSelect(editor);
var selection = editor.selection;
var range1 = new Range(0, 2, 0, 4);
editor.selection.fromOrientedRange(range1);
var range2 = new Range(0, 3, 0, 4);
selection.addRange(range2);
assert.ok(!editor.inMultiSelectMode);
assert.ok(range2.isEqual(editor.selection.getRange()));
var range3 = new Range(0, 1, 0, 1);
selection.addRange(range3);
assert.ok(editor.inMultiSelectMode);
testRanges([range3, range2]);
var range4 = new Range(0, 0, 4, 0);
selection.addRange(range4);
assert.ok(!editor.inMultiSelectMode);
}
};