controller_test.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_test/flutter_test.dart';
  3. import 'package:xterm/xterm.dart';
  4. void main() {
  5. group('TerminalController', () {
  6. testWidgets('setSelectionRange works', (tester) async {
  7. final terminal = Terminal();
  8. final terminalView = TerminalController();
  9. await tester.pumpWidget(MaterialApp(
  10. home: Scaffold(
  11. body: TerminalView(
  12. terminal,
  13. controller: terminalView,
  14. ),
  15. ),
  16. ));
  17. terminalView.setSelectionRange(CellOffset(0, 0), CellOffset(2, 2));
  18. await tester.pump();
  19. expect(terminalView.selection, isNotNull);
  20. });
  21. testWidgets('setSelectionMode changes BufferRange type', (tester) async {
  22. final terminal = Terminal();
  23. final terminalView = TerminalController();
  24. await tester.pumpWidget(MaterialApp(
  25. home: Scaffold(
  26. body: TerminalView(
  27. terminal,
  28. controller: terminalView,
  29. ),
  30. ),
  31. ));
  32. terminalView.setSelectionRange(CellOffset(0, 0), CellOffset(2, 2));
  33. expect(terminalView.selection, isA<BufferRangeLine>());
  34. terminalView.setSelectionMode(SelectionMode.block);
  35. expect(terminalView.selection, isA<BufferRangeBlock>());
  36. });
  37. testWidgets('clearSelection works', (tester) async {
  38. final terminal = Terminal();
  39. final terminalView = TerminalController();
  40. await tester.pumpWidget(MaterialApp(
  41. home: Scaffold(
  42. body: TerminalView(
  43. terminal,
  44. controller: terminalView,
  45. ),
  46. ),
  47. ));
  48. terminalView.setSelectionRange(CellOffset(0, 0), CellOffset(2, 2));
  49. expect(terminalView.selection, isNotNull);
  50. terminalView.clearSelection();
  51. expect(terminalView.selection, isNull);
  52. });
  53. });
  54. }