소스 검색

Add tests for Terminal.inputHandler

xuty 3 년 전
부모
커밋
eb02054e6e
1개의 변경된 파일35개의 추가작업 그리고 0개의 파일을 삭제
  1. 35 0
      test/src/terminal_test.dart

+ 35 - 0
test/src/terminal_test.dart

@@ -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;
+  }
+}