|
@@ -0,0 +1,35 @@
|
|
|
|
|
+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);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+class _TestInputHandler implements TerminalInputHandler {
|
|
|
|
|
+ final events = <TerminalInputEvent>[];
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ String? call(TerminalInputEvent event) {
|
|
|
|
|
+ events.add(event);
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|