| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | import 'package:appflowy/generated/locale_keys.g.dart'; | 
					
						
							|  |  |  | import 'package:appflowy/workspace/presentation/settings/settings_dialog.dart'; | 
					
						
							|  |  |  | import 'package:appflowy/workspace/presentation/settings/widgets/settings_user_view.dart'; | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  | import 'package:easy_localization/easy_localization.dart'; | 
					
						
							|  |  |  | import 'package:flutter_test/flutter_test.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import 'base.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum SettingsPage { | 
					
						
							|  |  |  |   appearance, | 
					
						
							|  |  |  |   language, | 
					
						
							|  |  |  |   files, | 
					
						
							|  |  |  |   user, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extension on SettingsPage { | 
					
						
							|  |  |  |   String get name { | 
					
						
							|  |  |  |     switch (this) { | 
					
						
							|  |  |  |       case SettingsPage.appearance: | 
					
						
							|  |  |  |         return LocaleKeys.settings_menu_appearance.tr(); | 
					
						
							|  |  |  |       case SettingsPage.language: | 
					
						
							|  |  |  |         return LocaleKeys.settings_menu_language.tr(); | 
					
						
							|  |  |  |       case SettingsPage.files: | 
					
						
							|  |  |  |         return LocaleKeys.settings_menu_files.tr(); | 
					
						
							|  |  |  |       case SettingsPage.user: | 
					
						
							|  |  |  |         return LocaleKeys.settings_menu_user.tr(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extension AppFlowySettings on WidgetTester { | 
					
						
							|  |  |  |   /// Open settings page
 | 
					
						
							|  |  |  |   Future<void> openSettings() async { | 
					
						
							|  |  |  |     final settingsButton = find.byTooltip(LocaleKeys.settings_menu_open.tr()); | 
					
						
							|  |  |  |     expect(settingsButton, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(settingsButton); | 
					
						
							|  |  |  |     final settingsDialog = find.byType(SettingsDialog); | 
					
						
							|  |  |  |     expect(settingsDialog, findsOneWidget); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /// Open the page taht insides the settings page
 | 
					
						
							|  |  |  |   Future<void> openSettingsPage(SettingsPage page) async { | 
					
						
							|  |  |  |     final button = find.text(page.name, findRichText: true); | 
					
						
							|  |  |  |     expect(button, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(button); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /// Restore the AppFlowy data storage location
 | 
					
						
							|  |  |  |   Future<void> restoreLocation() async { | 
					
						
							|  |  |  |     final buton = | 
					
						
							|  |  |  |         find.byTooltip(LocaleKeys.settings_files_restoreLocation.tr()); | 
					
						
							|  |  |  |     expect(buton, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(buton); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Future<void> tapOpenFolderButton() async { | 
					
						
							|  |  |  |     final buton = find.text(LocaleKeys.settings_files_open.tr()); | 
					
						
							|  |  |  |     expect(buton, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(buton); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Future<void> tapCustomLocationButton() async { | 
					
						
							|  |  |  |     final buton = | 
					
						
							|  |  |  |         find.byTooltip(LocaleKeys.settings_files_customizeLocation.tr()); | 
					
						
							|  |  |  |     expect(buton, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(buton); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /// Enter user name
 | 
					
						
							|  |  |  |   Future<void> enterUserName(String name) async { | 
					
						
							|  |  |  |     final uni = find.byType(UserNameInput); | 
					
						
							|  |  |  |     expect(uni, findsOneWidget); | 
					
						
							|  |  |  |     await tap(uni); | 
					
						
							|  |  |  |     await enterText(uni, name); | 
					
						
							|  |  |  |     await wait(300); //
 | 
					
						
							|  |  |  |     await testTextInput.receiveAction(TextInputAction.done); | 
					
						
							|  |  |  |     await pumpAndSettle(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |