| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | import 'package:appflowy/generated/locale_keys.g.dart'; | 
					
						
							| 
									
										
										
										
											2023-06-11 14:19:44 +08:00
										 |  |  | import 'package:appflowy/workspace/application/settings/prelude.dart'; | 
					
						
							| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | import 'package:appflowy/workspace/presentation/settings/settings_dialog.dart'; | 
					
						
							| 
									
										
										
										
											2023-06-11 14:19:44 +08:00
										 |  |  | import 'package:appflowy/workspace/presentation/settings/widgets/settings_menu_element.dart'; | 
					
						
							| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | 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'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 13:29:17 +00:00
										 |  |  |   /// Open the page that insides the settings page
 | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |   Future<void> openSettingsPage(SettingsPage page) async { | 
					
						
							| 
									
										
										
										
											2023-06-11 14:19:44 +08:00
										 |  |  |     final button = find.byWidgetPredicate( | 
					
						
							|  |  |  |       (widget) => widget is SettingsMenuElement && widget.page == page, | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |     expect(button, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(button); | 
					
						
							|  |  |  |     return; | 
					
						
							| 
									
										
										
										
											2023-08-22 15:40:22 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Future<void> expectNoSettingsPage(SettingsPage page) async { | 
					
						
							|  |  |  |     final button = find.byWidgetPredicate( | 
					
						
							|  |  |  |       (widget) => widget is SettingsMenuElement && widget.page == page, | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     expect(button, findsNothing); | 
					
						
							|  |  |  |     return; | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /// Restore the AppFlowy data storage location
 | 
					
						
							|  |  |  |   Future<void> restoreLocation() async { | 
					
						
							| 
									
										
										
										
											2023-03-20 13:29:17 +00:00
										 |  |  |     final button = | 
					
						
							| 
									
										
										
										
											2023-06-11 14:19:44 +08:00
										 |  |  |         find.byTooltip(LocaleKeys.settings_files_recoverLocationTooltips.tr()); | 
					
						
							| 
									
										
										
										
											2023-03-20 13:29:17 +00:00
										 |  |  |     expect(button, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(button); | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Future<void> tapOpenFolderButton() async { | 
					
						
							| 
									
										
										
										
											2023-03-20 13:29:17 +00:00
										 |  |  |     final button = find.text(LocaleKeys.settings_files_open.tr()); | 
					
						
							|  |  |  |     expect(button, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(button); | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Future<void> tapCustomLocationButton() async { | 
					
						
							| 
									
										
										
										
											2023-06-11 14:19:44 +08:00
										 |  |  |     final button = find.byTooltip( | 
					
						
							|  |  |  |       LocaleKeys.settings_files_changeLocationTooltips.tr(), | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-03-20 13:29:17 +00:00
										 |  |  |     expect(button, findsOneWidget); | 
					
						
							|  |  |  |     await tapButton(button); | 
					
						
							| 
									
										
										
										
											2022-12-20 11:14:42 +08:00
										 |  |  |     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(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |