Add more selection manager/model tests

This commit is contained in:
Daniel Imms
2017-06-07 14:37:09 -07:00
parent b81c165bea
commit a047359f81
3 changed files with 21 additions and 1 deletions
+11
View File
@@ -166,4 +166,15 @@ describe('SelectionManager', () => {
assert.equal(selectionManager.selectionText, '1\n2\n3\n4\n5');
});
});
describe('selectionText', () => {
it('should return the empty string when start or end selections are not set', () => {
assert.equal(selectionManager.selectionText, '');
selectionManager.model.selectionStart = [0, 0];
assert.equal(selectionManager.selectionText, '');
selectionManager.model.selectionStart = null;
selectionManager.model.selectionEnd = [0, 0];
assert.equal(selectionManager.selectionText, '');
});
});
});
+4
View File
@@ -106,6 +106,10 @@ describe('SelectionManager', () => {
model.selectionEnd = [1, 2];
assert.equal(model.finalSelectionEnd, null);
});
it('should return null if there is no selection end or selection start length', () => {
model.selectionStart = [1, 2];
assert.equal(model.finalSelectionEnd, null);
});
it('should return selection start + length if there is no selection end', () => {
model.selectionStart = [2, 2];
model.selectionStartLength = 2;
+6 -1
View File
@@ -30,6 +30,7 @@ export class SelectionModel {
constructor(
private _terminal: ITerminal
) {
this.clearSelection();
}
/**
@@ -39,6 +40,7 @@ export class SelectionModel {
this.selectionStart = null;
this.selectionEnd = null;
this.isSelectAllActive = false;
this.selectionStartLength = 0;
}
/**
@@ -49,7 +51,7 @@ export class SelectionModel {
return [0, 0];
}
if (!this.selectionEnd) {
if (!this.selectionEnd || !this.selectionStart) {
return this.selectionStart;
}
@@ -71,6 +73,9 @@ export class SelectionModel {
// Use the selection start if the end doesn't exist or they're reversed
if (!this.selectionEnd || this._areSelectionValuesReversed()) {
if (this.selectionStartLength === 0) {
return null;
}
return [this.selectionStart[0] + this.selectionStartLength, this.selectionStart[1]];
}