input_test.dart 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. // import 'package:flutter/material.dart';
  2. // import 'package:flutter/services.dart';
  3. // import 'package:flutter_test/flutter_test.dart';
  4. // import 'package:mockito/annotations.dart';
  5. // import 'package:mockito/mockito.dart';
  6. // import 'package:xterm/xterm.dart';
  7. // @GenerateMocks([
  8. // TerminalUiInteraction,
  9. // ])
  10. void main() {
  11. // group('InputBehaviorDesktop', () {
  12. // test('can handle fast typing', () {
  13. // final mockTerminal = MockTerminalUiInteraction();
  14. // final inputBehavior = InputBehaviorDesktop();
  15. // inputBehavior.onTextEdit(composing('l', -1, -1), mockTerminal);
  16. // verify(mockTerminal.raiseOnInput('l'));
  17. // verifyNever(mockTerminal.updateComposingString(any));
  18. // inputBehavior.onTextEdit(composing('ls', -1, -1), mockTerminal);
  19. // verify(mockTerminal.raiseOnInput('s'));
  20. // verifyNever(mockTerminal.updateComposingString(any));
  21. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  22. // verifyNever(mockTerminal.raiseOnInput(any));
  23. // verifyNever(mockTerminal.updateComposingString(any));
  24. // });
  25. // test('can handle English', () {
  26. // final mockTerminal = MockTerminalUiInteraction();
  27. // final inputBehavior = InputBehaviorDesktop();
  28. // // typing 'hello'
  29. // inputBehavior.onTextEdit(composing('h', 1, 1), mockTerminal);
  30. // verify(mockTerminal.raiseOnInput('h'));
  31. // verifyNever(mockTerminal.updateComposingString(any));
  32. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  33. // inputBehavior.onTextEdit(composing('e', 1, 1), mockTerminal);
  34. // verify(mockTerminal.raiseOnInput('e'));
  35. // verifyNever(mockTerminal.updateComposingString(any));
  36. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  37. // inputBehavior.onTextEdit(composing('l', 1, 1), mockTerminal);
  38. // verify(mockTerminal.raiseOnInput('l'));
  39. // verifyNever(mockTerminal.updateComposingString(any));
  40. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  41. // inputBehavior.onTextEdit(composing('l', 1, 1), mockTerminal);
  42. // verify(mockTerminal.raiseOnInput('l'));
  43. // verifyNever(mockTerminal.updateComposingString(any));
  44. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  45. // inputBehavior.onTextEdit(composing('o', 1, 1), mockTerminal);
  46. // verify(mockTerminal.raiseOnInput('o'));
  47. // verifyNever(mockTerminal.updateComposingString(any));
  48. // });
  49. // test('can handle Chinese', () {
  50. // final mockTerminal = MockTerminalUiInteraction();
  51. // final inputBehavior = InputBehaviorDesktop();
  52. // // typing '你好'
  53. // inputBehavior.onTextEdit(composing('n', 0, 1), mockTerminal);
  54. // inputBehavior.onTextEdit(composing('ni', 0, 2), mockTerminal);
  55. // inputBehavior.onTextEdit(composing('ni h', 0, 4), mockTerminal);
  56. // inputBehavior.onTextEdit(composing('ni ha', 0, 5), mockTerminal);
  57. // inputBehavior.onTextEdit(composing('ni hao', 0, 6), mockTerminal);
  58. // inputBehavior.onTextEdit(composing('你好', 0, 2), mockTerminal);
  59. // verify(mockTerminal.updateComposingString(any)).called(6);
  60. // verifyNever(mockTerminal.raiseOnInput(any));
  61. // inputBehavior.onTextEdit(composing('你好', -1, -1), mockTerminal);
  62. // verify(mockTerminal.raiseOnInput('你好'));
  63. // verify(mockTerminal.updateComposingString(''));
  64. // });
  65. // test('can handle Japanese', () {
  66. // final mockTerminal = MockTerminalUiInteraction();
  67. // final inputBehavior = InputBehaviorDesktop();
  68. // // typing 'どうも'
  69. // inputBehavior.onTextEdit(composing('d', 0, 1), mockTerminal);
  70. // inputBehavior.onTextEdit(composing('ど', 0, 1), mockTerminal);
  71. // inputBehavior.onTextEdit(composing('どう', 0, 2), mockTerminal);
  72. // inputBehavior.onTextEdit(composing('どうm', 0, 3), mockTerminal);
  73. // inputBehavior.onTextEdit(composing('どうも', 0, 3), mockTerminal);
  74. // verify(mockTerminal.updateComposingString(any)).called(5);
  75. // verifyNever(mockTerminal.raiseOnInput(any));
  76. // inputBehavior.onTextEdit(composing('どうも', -1, -1), mockTerminal);
  77. // verify(mockTerminal.raiseOnInput('どうも'));
  78. // verify(mockTerminal.updateComposingString(''));
  79. // });
  80. // test('can handle Korean', () {
  81. // final mockTerminal = MockTerminalUiInteraction();
  82. // final inputBehavior = InputBehaviorDesktop();
  83. // // typing '안녕'
  84. // inputBehavior.onTextEdit(composing('ㅇ', 0, 1), mockTerminal);
  85. // inputBehavior.onTextEdit(composing('아', 0, 1), mockTerminal);
  86. // inputBehavior.onTextEdit(composing('안', 0, 1), mockTerminal);
  87. // inputBehavior.onTextEdit(composing('안', 0, 1), mockTerminal);
  88. // verify(mockTerminal.updateComposingString(any)).called(4);
  89. // verifyNever(mockTerminal.raiseOnInput(any));
  90. // inputBehavior.onTextEdit(composing('안', 1, 1), mockTerminal);
  91. // verify(mockTerminal.raiseOnInput('안'));
  92. // verify(mockTerminal.updateComposingString(''));
  93. // inputBehavior.onTextEdit(TextEditingValue.empty, mockTerminal);
  94. // inputBehavior.onTextEdit(composing('ㄴ', 0, 1), mockTerminal);
  95. // inputBehavior.onTextEdit(composing('녀', 0, 1), mockTerminal);
  96. // inputBehavior.onTextEdit(composing('녕', 0, 1), mockTerminal);
  97. // verify(mockTerminal.updateComposingString(any)).called(3);
  98. // verifyNever(mockTerminal.raiseOnInput(any));
  99. // inputBehavior.onTextEdit(composing('녕', 1, 1), mockTerminal);
  100. // verify(mockTerminal.raiseOnInput('녕'));
  101. // verify(mockTerminal.updateComposingString(''));
  102. // });
  103. // });
  104. // }
  105. // TextEditingValue composing(String text, int start, int end) {
  106. // return TextEditingValue(
  107. // text: text,
  108. // selection: TextSelection.collapsed(offset: text.length),
  109. // composing: TextRange(start: start, end: end),
  110. // );
  111. }