hotkeys_test.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import 'dart:io';
  2. import 'package:appflowy/generated/locale_keys.g.dart';
  3. import 'package:appflowy/workspace/application/settings/prelude.dart';
  4. import 'package:appflowy/workspace/presentation/home/menu/menu.dart';
  5. import 'package:appflowy/workspace/presentation/settings/settings_dialog.dart';
  6. import 'package:easy_localization/easy_localization.dart';
  7. import 'package:flutter/services.dart';
  8. import 'package:flutter_test/flutter_test.dart';
  9. import 'package:integration_test/integration_test.dart';
  10. import 'util/keyboard.dart';
  11. import 'util/util.dart';
  12. void main() {
  13. IntegrationTestWidgetsFlutterBinding.ensureInitialized();
  14. group('hotkeys test', () {
  15. testWidgets('toggle theme mode', (tester) async {
  16. await tester.initializeAppFlowy();
  17. await tester.tapGoButton();
  18. tester.expectToSeeHomePage();
  19. await tester.openSettings();
  20. await tester.openSettingsPage(SettingsPage.appearance);
  21. await tester.pumpAndSettle();
  22. tester.expectToSeeText(
  23. LocaleKeys.settings_appearance_themeMode_system.tr(),
  24. );
  25. await tester.tapButton(
  26. find.bySemanticsLabel(
  27. LocaleKeys.settings_appearance_themeMode_system.tr(),
  28. ),
  29. );
  30. await tester.pumpAndSettle();
  31. await tester.tapButton(
  32. find.bySemanticsLabel(
  33. LocaleKeys.settings_appearance_themeMode_dark.tr(),
  34. ),
  35. );
  36. await tester.pumpAndSettle(const Duration(seconds: 1));
  37. await tester.tap(find.byType(SettingsDialog));
  38. await tester.pumpAndSettle();
  39. await FlowyTestKeyboard.simulateKeyDownEvent(
  40. [
  41. Platform.isMacOS
  42. ? LogicalKeyboardKey.meta
  43. : LogicalKeyboardKey.control,
  44. LogicalKeyboardKey.shift,
  45. LogicalKeyboardKey.keyL,
  46. ],
  47. tester: tester,
  48. );
  49. await tester.pumpAndSettle();
  50. tester.expectToSeeText(
  51. LocaleKeys.settings_appearance_themeMode_light.tr(),
  52. );
  53. });
  54. testWidgets('show or hide home menu', (tester) async {
  55. await tester.initializeAppFlowy();
  56. await tester.tapGoButton();
  57. tester.expectToSeeHomePage();
  58. await tester.pumpAndSettle();
  59. expect(find.byType(HomeMenu), findsOneWidget);
  60. await FlowyTestKeyboard.simulateKeyDownEvent(
  61. [
  62. Platform.isMacOS
  63. ? LogicalKeyboardKey.meta
  64. : LogicalKeyboardKey.control,
  65. LogicalKeyboardKey.backslash,
  66. ],
  67. tester: tester,
  68. );
  69. await tester.pumpAndSettle();
  70. expect(find.byType(HomeMenu), findsNothing);
  71. });
  72. });
  73. }