| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- import 'package:test/test.dart';
- import 'package:xterm/xterm.dart';
- void main() {
- group('BufferLine.getText()', () {
- test('should return the text', () {
- final terminal = Terminal();
- terminal.write('Hello World');
- expect(terminal.buffer.lines[0].getText(), 'Hello World');
- });
- test('getText() should support wide characters', () {
- final text = '😀😁😂🤣😃';
- final terminal = Terminal();
- terminal.write(text);
- expect(terminal.buffer.lines[0].getText(), equals(text));
- });
- test('can specify a range', () {
- final terminal = Terminal();
- terminal.write('Hello World');
- expect(terminal.buffer.lines[0].getText(0, 5), 'Hello');
- });
- test('can handle invalid ranges', () {
- final terminal = Terminal();
- terminal.write('Hello World');
- expect(terminal.buffer.lines[0].getText(0, 100), 'Hello World');
- });
- test('can handle negative ranges', () {
- final terminal = Terminal();
- terminal.write('Hello World');
- expect(terminal.buffer.lines[0].getText(-100, 100), 'Hello World');
- });
- test('can handle reversed ranges', () {
- final terminal = Terminal();
- terminal.write('Hello World');
- expect(terminal.buffer.lines[0].getText(5, 0), '');
- });
- });
- group('BufferLine.getTrimmedLength()', () {
- test('can get trimmed length', () {
- final line = BufferLine(10);
- final text = 'ABCDEF';
- for (var i = 0; i < text.length; i++) {
- line.setCodePoint(i, text.codeUnitAt(i));
- }
- expect(line.getTrimmedLength(), equals(text.length));
- });
- test('can get trimmed length with wide characters', () {
- final terminal = Terminal();
- final text = '😀😁😂🤣😃';
- terminal.write(text);
- expect(terminal.buffer.lines[0].getTrimmedLength(), equals(text.length));
- });
- test('can handle length larger than the line', () {
- final line = BufferLine(10);
- final text = 'ABCDEF';
- for (var i = 0; i < text.length; i++) {
- line.setCodePoint(i, text.codeUnitAt(i));
- }
- expect(line.getTrimmedLength(1000), equals(text.length));
- });
- test('can handle negative start', () {
- final line = BufferLine(10);
- final text = 'ABCDEF';
- for (var i = 0; i < text.length; i++) {
- line.setCodePoint(i, text.codeUnitAt(i));
- }
- expect(line.getTrimmedLength(-1000), equals(0));
- });
- });
- group('BufferLine.resize', () {
- test('can resize', () {
- final line = BufferLine(10);
- final text = 'ABCDEF';
- for (var i = 0; i < text.length; i++) {
- line.setCodePoint(i, text.codeUnitAt(i));
- }
- line.resize(20);
- expect(line.length, equals(20));
- });
- });
- group('Buffer.createAnchor', () {
- test('works', () {
- final terminal = Terminal();
- final line = terminal.buffer.lines[3];
- final anchor = line.createAnchor(5);
- terminal.insertLines(5);
- expect(anchor.x, 5);
- expect(anchor.y, 8);
- terminal.buffer.clear();
- expect(line.attached, false);
- expect(anchor.attached, false);
- });
- });
- }
|