| 
									
										
										
										
											2023-08-15 21:28:58 -07:00
										 |  |  | import 'package:appflowy/workspace/application/appearance_defaults.dart'; | 
					
						
							| 
									
										
										
										
											2023-07-18 03:25:25 -07:00
										 |  |  | import 'package:appflowy/workspace/application/settings/prelude.dart'; | 
					
						
							| 
									
										
										
										
											2023-08-15 21:28:58 -07:00
										 |  |  | import 'package:appflowy/workspace/presentation/settings/widgets/settings_appearance/settings_appearance.dart'; | 
					
						
							| 
									
										
										
										
											2023-07-18 03:25:25 -07:00
										 |  |  | import 'package:flutter/material.dart'; | 
					
						
							|  |  |  | import 'package:flutter_test/flutter_test.dart'; | 
					
						
							|  |  |  | import 'package:integration_test/integration_test.dart'; | 
					
						
							| 
									
										
										
										
											2023-11-27 18:54:31 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-18 03:25:25 -07:00
										 |  |  | import 'util/util.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void main() { | 
					
						
							|  |  |  |   IntegrationTestWidgetsFlutterBinding.ensureInitialized(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   group('appearance settings tests', () { | 
					
						
							|  |  |  |     testWidgets('after editing text field, button should be able to be clicked', | 
					
						
							|  |  |  |         (tester) async { | 
					
						
							|  |  |  |       await tester.initializeAppFlowy(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.tapGoButton(); | 
					
						
							| 
									
										
										
										
											2023-12-27 11:42:39 +08:00
										 |  |  |       await tester.expectToSeeHomePageWithGetStartedPage(); | 
					
						
							| 
									
										
										
										
											2023-07-18 03:25:25 -07:00
										 |  |  |       await tester.openSettings(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.appearance); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       final dropDown = find.byKey(ThemeFontFamilySetting.popoverKey); | 
					
						
							|  |  |  |       await tester.tap(dropDown); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       final textField = find.byKey(ThemeFontFamilySetting.textFieldKey); | 
					
						
							|  |  |  |       await tester.tap(textField); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.enterText(textField, 'Abel'); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  |       final fontFamilyButton = find.byKey(const Key('Abel')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       expect(fontFamilyButton, findsOneWidget); | 
					
						
							|  |  |  |       await tester.tap(fontFamilyButton); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // just switch the page and verify that the font family was set after that
 | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.files); | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.appearance); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       expect(find.textContaining('Abel'), findsOneWidget); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2023-08-15 21:28:58 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     testWidgets('reset the font family', (tester) async { | 
					
						
							|  |  |  |       await tester.initializeAppFlowy(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.tapGoButton(); | 
					
						
							| 
									
										
										
										
											2023-12-27 11:42:39 +08:00
										 |  |  |       await tester.expectToSeeHomePageWithGetStartedPage(); | 
					
						
							| 
									
										
										
										
											2023-08-15 21:28:58 -07:00
										 |  |  |       await tester.openSettings(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.appearance); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       final dropDown = find.byKey(ThemeFontFamilySetting.popoverKey); | 
					
						
							|  |  |  |       await tester.tap(dropDown); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       final textField = find.byKey(ThemeFontFamilySetting.textFieldKey); | 
					
						
							|  |  |  |       await tester.tap(textField); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       await tester.enterText(textField, 'Abel'); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  |       final fontFamilyButton = find.byKey(const Key('Abel')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       expect(fontFamilyButton, findsOneWidget); | 
					
						
							|  |  |  |       await tester.tap(fontFamilyButton); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // just switch the page and verify that the font family was set after that
 | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.files); | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.appearance); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       final resetButton = find.byKey(ThemeFontFamilySetting.resetButtonkey); | 
					
						
							|  |  |  |       await tester.tap(resetButton); | 
					
						
							|  |  |  |       await tester.pumpAndSettle(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // just switch the page and verify that the font family was set after that
 | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.files); | 
					
						
							|  |  |  |       await tester.openSettingsPage(SettingsPage.appearance); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-21 09:12:25 +08:00
										 |  |  |       expect( | 
					
						
							|  |  |  |         find.textContaining(DefaultAppearanceSettings.kDefaultFontFamily), | 
					
						
							| 
									
										
										
										
											2023-08-15 21:28:58 -07:00
										 |  |  |         findsOneWidget, | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2023-07-18 03:25:25 -07:00
										 |  |  |   }); | 
					
						
							|  |  |  | } |