123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import 'package:appflowy/startup/startup.dart';
- import 'package:appflowy/startup/tasks/prelude.dart';
- import 'package:appflowy/workspace/application/settings/prelude.dart';
- import 'package:flutter_test/flutter_test.dart';
- import 'package:integration_test/integration_test.dart';
- import 'package:path/path.dart' as p;
- import 'util/mock/mock_file_picker.dart';
- import 'util/util.dart';
- void main() {
- IntegrationTestWidgetsFlutterBinding.ensureInitialized();
- group('customize the folder path', () {
- testWidgets('switch to B from A, then switch to A again', (tester) async {
- const userA = 'UserA';
- const userB = 'UserB';
- final initialPath = p.join(userA, appFlowyDataFolder);
- final context = await tester.initializeAppFlowy(
- pathExtension: initialPath,
- );
- // remove the last extension
- final rootPath = context.applicationDataDirectory.replaceFirst(
- initialPath,
- '',
- );
- await tester.tapGoButton();
- tester.expectToSeeHomePage();
- // switch to user B
- {
- // set user name for userA
- await tester.openSettings();
- await tester.openSettingsPage(SettingsPage.user);
- await tester.enterUserName(userA);
- await tester.openSettingsPage(SettingsPage.files);
- await tester.pumpAndSettle();
- // mock the file_picker result
- await mockGetDirectoryPath(
- p.join(rootPath, userB),
- );
- await tester.tapCustomLocationButton();
- await tester.pumpAndSettle();
- tester.expectToSeeHomePage();
- // set user name for userB
- await tester.openSettings();
- await tester.openSettingsPage(SettingsPage.user);
- await tester.enterUserName(userB);
- }
- // switch to the userA
- {
- await tester.openSettingsPage(SettingsPage.files);
- await tester.pumpAndSettle();
- // mock the file_picker result
- await mockGetDirectoryPath(
- p.join(rootPath, userA),
- );
- await tester.tapCustomLocationButton();
- await tester.pumpAndSettle();
- tester.expectToSeeHomePage();
- tester.expectToSeeUserName(userA);
- }
- // switch to the userB again
- {
- await tester.openSettings();
- await tester.openSettingsPage(SettingsPage.files);
- await tester.pumpAndSettle();
- // mock the file_picker result
- await mockGetDirectoryPath(
- p.join(rootPath, userB),
- );
- await tester.tapCustomLocationButton();
- await tester.pumpAndSettle();
- tester.expectToSeeHomePage();
- tester.expectToSeeUserName(userB);
- }
- });
- testWidgets('reset to default location', (tester) async {
- await tester.initializeAppFlowy();
- await tester.tapGoButton();
- // home and readme document
- tester.expectToSeeHomePage();
- // open settings and restore the location
- await tester.openSettings();
- await tester.openSettingsPage(SettingsPage.files);
- await tester.restoreLocation();
- expect(
- await appFlowyApplicationDataDirectory().then((value) => value.path),
- await getIt<ApplicationDataStorage>().getPath(),
- );
- });
- });
- }
|