mock_file_picker.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'package:appflowy/startup/startup.dart';
  2. import 'package:appflowy/util/file_picker/file_picker_service.dart';
  3. import 'package:file_picker/src/file_picker.dart' as fp;
  4. import 'package:path/path.dart' as p;
  5. import '../util.dart';
  6. class MockFilePicker implements FilePickerService {
  7. MockFilePicker({
  8. required this.mockPath,
  9. });
  10. final String mockPath;
  11. @override
  12. Future<String?> getDirectoryPath({String? title}) {
  13. return Future.value(mockPath);
  14. }
  15. @override
  16. Future<String?> saveFile({
  17. String? dialogTitle,
  18. String? fileName,
  19. String? initialDirectory,
  20. fp.FileType type = fp.FileType.any,
  21. List<String>? allowedExtensions,
  22. bool lockParentWindow = false,
  23. }) {
  24. return Future.value(mockPath);
  25. }
  26. @override
  27. Future<FilePickerResult?> pickFiles({
  28. String? dialogTitle,
  29. String? initialDirectory,
  30. fp.FileType type = fp.FileType.any,
  31. List<String>? allowedExtensions,
  32. Function(fp.FilePickerStatus p1)? onFileLoading,
  33. bool allowCompression = true,
  34. bool allowMultiple = false,
  35. bool withData = false,
  36. bool withReadStream = false,
  37. bool lockParentWindow = false,
  38. }) {
  39. throw UnimplementedError();
  40. }
  41. }
  42. Future<void> mockGetDirectoryPath(String? name) async {
  43. final dir = await TestFolder.testLocation(name);
  44. getIt.unregister<FilePickerService>();
  45. getIt.registerFactory<FilePickerService>(
  46. () => MockFilePicker(
  47. mockPath: dir.path,
  48. ),
  49. );
  50. return;
  51. }
  52. Future<String> mockSaveFilePath(String? name, String fileName) async {
  53. final dir = await TestFolder.testLocation(name);
  54. final path = p.join(dir.path, fileName);
  55. getIt.unregister<FilePickerService>();
  56. getIt.registerFactory<FilePickerService>(
  57. () => MockFilePicker(
  58. mockPath: path,
  59. ),
  60. );
  61. return path;
  62. }