mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Add more selection manager/model tests
This commit is contained in:
@@ -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, '');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user