123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import 'dart:io';
- import 'package:appflowy/startup/startup.dart';
- import 'package:appflowy/util/file_picker/file_picker_service.dart';
- import 'package:file_picker/file_picker.dart' as fp;
- import 'package:path/path.dart' as p;
- import '../util.dart';
- class MockFilePicker implements FilePickerService {
- MockFilePicker({
- this.mockPath = '',
- this.mockPaths = const [],
- });
- final String mockPath;
- final List<String> mockPaths;
- @override
- Future<String?> getDirectoryPath({String? title}) {
- return Future.value(mockPath);
- }
- @override
- Future<String?> saveFile({
- String? dialogTitle,
- String? fileName,
- String? initialDirectory,
- fp.FileType type = fp.FileType.any,
- List<String>? allowedExtensions,
- bool lockParentWindow = false,
- }) {
- return Future.value(mockPath);
- }
- @override
- Future<FilePickerResult?> pickFiles({
- String? dialogTitle,
- String? initialDirectory,
- fp.FileType type = fp.FileType.any,
- List<String>? allowedExtensions,
- Function(fp.FilePickerStatus p1)? onFileLoading,
- bool allowCompression = true,
- bool allowMultiple = false,
- bool withData = false,
- bool withReadStream = false,
- bool lockParentWindow = false,
- }) {
- final platformFiles = mockPaths
- .map((e) => fp.PlatformFile(path: e, name: '', size: 0))
- .toList();
- return Future.value(
- FilePickerResult(
- platformFiles,
- ),
- );
- }
- }
- Future<void> mockGetDirectoryPath(String? name) async {
- final dir = await TestFolder.testLocation(name);
- getIt.unregister<FilePickerService>();
- getIt.registerFactory<FilePickerService>(
- () => MockFilePicker(
- mockPath: dir.path,
- ),
- );
- return;
- }
- Future<String> mockSaveFilePath(String? name, String fileName) async {
- final dir = await TestFolder.testLocation(name);
- final path = p.join(dir.path, fileName);
- getIt.unregister<FilePickerService>();
- getIt.registerFactory<FilePickerService>(
- () => MockFilePicker(
- mockPath: path,
- ),
- );
- return path;
- }
- Future<List<String>> mockPickFilePaths(
- List<String> fileNames, {
- String? name,
- String? customPath,
- }) async {
- late final Directory dir;
- if (customPath != null) {
- dir = Directory(customPath);
- } else {
- dir = await TestFolder.testLocation(name);
- }
- final paths = fileNames.map((e) => p.join(dir.path, e)).toList();
- getIt.unregister<FilePickerService>();
- getIt.registerFactory<FilePickerService>(
- () => MockFilePicker(
- mockPaths: paths,
- ),
- );
- return paths;
- }
|