chrome-devtools-frontend
Version:
Chrome DevTools UI
49 lines (41 loc) • 2.03 kB
text/typescript
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as TextUtils from './text_utils.js';
describe('TextCursor', () => {
it('can be instantiated successfully', () => {
const cursor = new TextUtils.TextCursor.TextCursor([0, 5, 10, 15]);
assert.strictEqual(cursor.lineNumber(), 0, 'lineNumber should be initialised to 0');
assert.strictEqual(cursor.columnNumber(), 0, 'columnNumber should be initialised to 0');
});
it('can be advanced by a certain offset', () => {
const cursor = new TextUtils.TextCursor.TextCursor([5, 10, 15]);
cursor.advance(8);
assert.strictEqual(cursor.lineNumber(), 1, 'lineNumber should be correct');
assert.strictEqual(cursor.columnNumber(), 2, 'columnNumber should be correct');
});
it('should handle an advance to 0', () => {
const cursor = new TextUtils.TextCursor.TextCursor([5, 10, 15]);
cursor.advance(0);
assert.strictEqual(cursor.lineNumber(), 0, 'lineNumber should be correct');
assert.strictEqual(cursor.columnNumber(), 0, 'columnNumber should be correct');
});
it('should return the current offset', () => {
const cursor = new TextUtils.TextCursor.TextCursor([5, 10, 15]);
cursor.advance(8);
cursor.advance(8);
assert.strictEqual(cursor.offset(), 8);
});
it('should jump to a certain offset', () => {
const cursor = new TextUtils.TextCursor.TextCursor([5, 10, 15]);
cursor.resetTo(8);
assert.strictEqual(cursor.lineNumber(), 1, 'lineNumber should be correct');
assert.strictEqual(cursor.columnNumber(), 2, 'columnNumber should be correct');
});
it('should be able to jump to an offset of 0', () => {
const cursor = new TextUtils.TextCursor.TextCursor([5, 10, 15]);
cursor.resetTo(0);
assert.strictEqual(cursor.lineNumber(), 0, 'lineNumber should be correct');
assert.strictEqual(cursor.columnNumber(), 0, 'columnNumber should be correct');
});
});