| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | 
							- import 'dart:io';
 
- import 'package:appflowy/core/config/kv_keys.dart';
 
- import 'package:appflowy/main.dart' as app;
 
- import 'package:appflowy/startup/tasks/prelude.dart';
 
- import 'package:flutter/gestures.dart';
 
- import 'package:flutter/services.dart';
 
- import 'package:flutter_test/flutter_test.dart';
 
- import 'package:path_provider/path_provider.dart';
 
- import 'package:shared_preferences/shared_preferences.dart';
 
- class TestFolder {
 
-   /// Location / Path
 
-   /// Set a given AppFlowy data storage location under test environment.
 
-   ///
 
-   /// To pass null means clear the location.
 
-   ///
 
-   /// The file_picker is a system component and can't be tapped, so using logic instead of tapping.
 
-   ///
 
-   static Future<void> setTestLocation(String? name) async {
 
-     final location = await testLocation(name);
 
-     SharedPreferences.setMockInitialValues({
 
-       KVKeys.pathLocation: location.path,
 
-     });
 
-     return;
 
-   }
 
-   /// Clean the location.
 
-   static Future<void> cleanTestLocation(String? name) async {
 
-     final dir = await testLocation(name);
 
-     await dir.delete(recursive: true);
 
-     return;
 
-   }
 
-   /// Get current using location.
 
-   static Future<String> currentLocation() async {
 
-     final prefs = await SharedPreferences.getInstance();
 
-     return prefs.getString(KVKeys.pathLocation)!;
 
-   }
 
-   /// Get default location under development environment.
 
-   static Future<String> defaultDevelopmentLocation() async {
 
-     final dir = await appFlowyDocumentDirectory();
 
-     return dir.path;
 
-   }
 
-   /// Get default location under test environment.
 
-   static Future<Directory> testLocation(String? name) async {
 
-     final dir = await getApplicationDocumentsDirectory();
 
-     var path = '${dir.path}/flowy_test';
 
-     if (name != null) {
 
-       path += '/$name';
 
-     }
 
-     return Directory(path).create(recursive: true);
 
-   }
 
- }
 
- extension AppFlowyTestBase on WidgetTester {
 
-   Future<void> initializeAppFlowy() async {
 
-     TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
 
-         .setMockMethodCallHandler(
 
-       const MethodChannel('hotkey_manager'),
 
-       (MethodCall methodCall) async {
 
-         if (methodCall.method == 'unregisterAll') {
 
-           // do nothing
 
-         }
 
-         return;
 
-       },
 
-     );
 
-     await app.main();
 
-     await wait(3000);
 
-     await pumpAndSettle(const Duration(seconds: 2));
 
-   }
 
-   Future<void> tapButton(
 
-     Finder finder, {
 
-     int? pointer,
 
-     int buttons = kPrimaryButton,
 
-     bool warnIfMissed = true,
 
-     int milliseconds = 500,
 
-   }) async {
 
-     await tap(finder);
 
-     await pumpAndSettle(Duration(milliseconds: milliseconds));
 
-     return;
 
-   }
 
-   Future<void> tapButtonWithName(
 
-     String tr, {
 
-     int milliseconds = 500,
 
-   }) async {
 
-     final button = find.text(tr);
 
-     await tapButton(
 
-       button,
 
-       milliseconds: milliseconds,
 
-     );
 
-     return;
 
-   }
 
-   Future<void> tapButtonWithTooltip(
 
-     String tr, {
 
-     int milliseconds = 500,
 
-   }) async {
 
-     final button = find.byTooltip(tr);
 
-     await tapButton(
 
-       button,
 
-       milliseconds: milliseconds,
 
-     );
 
-     return;
 
-   }
 
-   Future<void> wait(int milliseconds) async {
 
-     await pumpAndSettle(Duration(milliseconds: milliseconds));
 
-     return;
 
-   }
 
- }
 
 
  |