diff --git a/packages/path_provider/path_provider/example/integration_test/path_provider_test.dart b/packages/path_provider/path_provider/example/integration_test/path_provider_test.dart index a45c96f3eac8..0a126935d0e9 100644 --- a/packages/path_provider/path_provider/example/integration_test/path_provider_test.dart +++ b/packages/path_provider/path_provider/example/integration_test/path_provider_test.dart @@ -12,7 +12,8 @@ void main() { testWidgets('getTemporaryDirectory', (WidgetTester tester) async { final Directory result = await getTemporaryDirectory(); - _verifySampleFile(result, 'temporaryDirectory'); + // getTemporaryDirectory does not guarantee that the returned directory exists. + _verifySampleFile(result, 'temporaryDirectory', createDirectory: true); }); testWidgets('getApplicationDocumentsDirectory', (WidgetTester tester) async { @@ -109,7 +110,9 @@ void main() { /// Verify a file called [name] in [directory] by recreating it with test /// contents when necessary. -void _verifySampleFile(Directory? directory, String name) { +/// +/// If [createDirectory] is true, the directory will be created if missing. +void _verifySampleFile(Directory? directory, String name, {bool createDirectory = false}) { expect(directory, isNotNull); if (directory == null) { return; @@ -121,6 +124,10 @@ void _verifySampleFile(Directory? directory, String name) { expect(file.existsSync(), isFalse); } + if (createDirectory && !directory.existsSync()) { + directory.createSync(recursive: true); + } + file.writeAsStringSync('Hello world!'); expect(file.readAsStringSync(), 'Hello world!'); // This check intentionally avoids using Directory.listSync on Android due to diff --git a/packages/path_provider/path_provider_foundation/example/integration_test/path_provider_test.dart b/packages/path_provider/path_provider_foundation/example/integration_test/path_provider_test.dart index 4ef539e1b1ee..30c4258d10ba 100644 --- a/packages/path_provider/path_provider_foundation/example/integration_test/path_provider_test.dart +++ b/packages/path_provider/path_provider_foundation/example/integration_test/path_provider_test.dart @@ -29,7 +29,8 @@ void main() { testWidgets('getTemporaryDirectory', (WidgetTester tester) async { final PathProviderPlatform provider = PathProviderPlatform.instance; final String? result = await provider.getTemporaryPath(); - _verifySampleFile(result, 'temporaryDirectory'); + // getTemporaryPath does not guarantee that the returned directory exists. + _verifySampleFile(result, 'temporaryDirectory', createDirectory: true); }); testWidgets('getApplicationDocumentsDirectory', (WidgetTester tester) async { @@ -374,7 +375,7 @@ NSArray _arrayWithString(String s) { /// contents when necessary. /// /// If [createDirectory] is true, the directory will be created if missing. -void _verifySampleFile(String? directoryPath, String name) { +void _verifySampleFile(String? directoryPath, String name, {bool createDirectory = false}) { expect(directoryPath, isNotNull); if (directoryPath == null) { return; @@ -387,6 +388,10 @@ void _verifySampleFile(String? directoryPath, String name) { expect(file.existsSync(), isFalse); } + if (createDirectory && !directory.existsSync()) { + directory.createSync(recursive: true); + } + file.writeAsStringSync('Hello world!'); expect(file.readAsStringSync(), 'Hello world!'); expect(directory.listSync(), isNotEmpty);