import 'package:test/test.dart'; import 'package:xterm/src/terminal.dart'; void main() { test('reflow() can reflow a single line', () { final terminal = Terminal(); terminal.write('1234567890abcdefg'); terminal.resize(10, 10); expect(terminal.buffer.lines[0].toString(), '1234567890'); expect(terminal.buffer.lines[1].toString(), 'abcdefg'); expect(terminal.buffer.lines[0].isWrapped, isFalse); expect(terminal.buffer.lines[1].isWrapped, isTrue); terminal.resize(13, 10); expect(terminal.buffer.lines[0].toString(), '1234567890abc'); expect(terminal.buffer.lines[1].toString(), 'defg'); expect(terminal.buffer.lines[0].isWrapped, isFalse); expect(terminal.buffer.lines[1].isWrapped, isTrue); terminal.resize(20, 10); expect(terminal.buffer.lines[0].toString(), '1234567890abcdefg'); expect(terminal.buffer.lines[0].isWrapped, isFalse); }); test('reflow() can reflow a single line to multiple lines', () { final terminal = Terminal(); terminal.write('1234567890abcdefg'); terminal.resize(5, 10); expect(terminal.buffer.lines[0].toString(), '12345'); expect(terminal.buffer.lines[1].toString(), '67890'); expect(terminal.buffer.lines[2].toString(), 'abcde'); expect(terminal.buffer.lines[3].toString(), 'fg'); expect(terminal.buffer.lines[0].isWrapped, isFalse); expect(terminal.buffer.lines[1].isWrapped, isTrue); expect(terminal.buffer.lines[2].isWrapped, isTrue); expect(terminal.buffer.lines[3].isWrapped, isTrue); terminal.resize(6, 10); expect(terminal.buffer.lines[0].toString(), '123456'); expect(terminal.buffer.lines[1].toString(), '7890ab'); expect(terminal.buffer.lines[2].toString(), 'cdefg'); expect(terminal.buffer.lines[0].isWrapped, isFalse); expect(terminal.buffer.lines[1].isWrapped, isTrue); expect(terminal.buffer.lines[2].isWrapped, isTrue); }); test('reflow() can reflow wide characters', () { final terminal = Terminal(); terminal.write('床前明月光疑是地上霜'); terminal.resize(10, 10); expect(terminal.buffer.lines[0].toString(), '床前明月光'); expect(terminal.buffer.lines[1].toString(), '疑是地上霜'); terminal.resize(9, 10); expect(terminal.buffer.lines[0].toString(), '床前明月'); expect(terminal.buffer.lines[1].toString(), '光疑是地'); expect(terminal.buffer.lines[2].toString(), '上霜'); print('-----------'); terminal.resize(11, 10); expect(terminal.buffer.lines[0].toString(), '床前明月光'); expect(terminal.buffer.lines[1].toString(), '疑是地上霜'); terminal.resize(13, 10); expect(terminal.buffer.lines[0].toString(), '床前明月光疑'); expect(terminal.buffer.lines[1].toString(), '是地上霜'); }); }