user_language_test.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'dart:ui';
  2. import 'package:appflowy/workspace/presentation/settings/widgets/settings_language_view.dart';
  3. import 'package:integration_test/integration_test.dart';
  4. import 'package:flutter_test/flutter_test.dart';
  5. import '../util/util.dart';
  6. import 'package:appflowy/workspace/application/settings/prelude.dart';
  7. void main() {
  8. IntegrationTestWidgetsFlutterBinding.ensureInitialized();
  9. group('Settings: user language tests', () {
  10. testWidgets('select language, language changed', (tester) async {
  11. await tester.initializeAppFlowy();
  12. await tester.tapGoButton();
  13. tester.expectToSeeHomePage();
  14. await tester.openSettings();
  15. await tester.openSettingsPage(SettingsPage.language);
  16. final userLanguageFinder = find.descendant(
  17. of: find.byType(SettingsLanguageView),
  18. matching: find.byType(LanguageSelector),
  19. );
  20. // Grab current locale
  21. LanguageSelector userLanguage =
  22. tester.widget<LanguageSelector>(userLanguageFinder);
  23. Locale currentLocale = userLanguage.currentLocale;
  24. // Open language selector
  25. await tester.tap(userLanguageFinder);
  26. await tester.pumpAndSettle();
  27. // Select first option that isn't default
  28. await tester.tap(find.byType(LanguageItem).at(1));
  29. await tester.pumpAndSettle();
  30. // Make sure the new locale is not the same as previous one
  31. userLanguage = tester.widget<LanguageSelector>(userLanguageFinder);
  32. expect(
  33. userLanguage.currentLocale,
  34. isNot(equals(currentLocale)),
  35. reason: "new language shouldn't equal the previous selected language",
  36. );
  37. // Update the current locale to a new one
  38. currentLocale = userLanguage.currentLocale;
  39. // Tried the same flow for the second time
  40. // Open language selector
  41. await tester.tap(userLanguageFinder);
  42. await tester.pumpAndSettle();
  43. // Select second option that isn't default
  44. await tester.tap(find.byType(LanguageItem).at(2));
  45. await tester.pumpAndSettle();
  46. // Make sure the new locale is not the same as previous one
  47. userLanguage = tester.widget<LanguageSelector>(userLanguageFinder);
  48. expect(
  49. userLanguage.currentLocale,
  50. isNot(equals(currentLocale)),
  51. reason: "new language shouldn't equal the previous selected language",
  52. );
  53. });
  54. });
  55. }