| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import 'package:test/test.dart';
- import 'package:xterm/core.dart';
- void main() {
- group('Terminal.inputHandler', () {
- test('can be set to null', () {
- final terminal = Terminal(inputHandler: null);
- expect(() => terminal.keyInput(TerminalKey.keyA), returnsNormally);
- });
- test('can be changed', () {
- final handler1 = _TestInputHandler();
- final handler2 = _TestInputHandler();
- final terminal = Terminal(inputHandler: handler1);
- terminal.keyInput(TerminalKey.keyA);
- expect(handler1.events, isNotEmpty);
- terminal.inputHandler = handler2;
- terminal.keyInput(TerminalKey.keyA);
- expect(handler2.events, isNotEmpty);
- });
- });
- group('Terminal.mouseInput', () {
- test('can handle mouse events', () {
- final output = <String>[];
- final terminal = Terminal(onOutput: output.add);
- terminal.mouseInput(
- TerminalMouseButton.left,
- TerminalMouseButtonState.down,
- CellOffset(10, 10),
- );
- expect(output, isEmpty);
- // enable mouse reporting
- terminal.write('\x1b[?1000h');
- terminal.mouseInput(
- TerminalMouseButton.left,
- TerminalMouseButtonState.down,
- CellOffset(10, 10),
- );
- expect(output, ['\x1B[M +,']);
- });
- });
- }
- class _TestInputHandler implements TerminalInputHandler {
- final events = <TerminalInputEvent>[];
- @override
- String? call(TerminalInputEvent event) {
- events.add(event);
- return null;
- }
- }
|