diff --git a/CODEOWNERS b/CODEOWNERS index 32662040e677..609807e3f171 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -26,6 +26,7 @@ packages/google_sign_in/* @cyanglaz @mehmetf packages/image_picker/* @cyanglaz packages/in_app_purchase/* @mklim @cyanglaz packages/package_info/* @cyanglaz +packages/path_provider/* @collinjackson packages/shared_preferences/* @collinjackson packages/video_player/* @iskakaushik @cyanglaz packages/webview_flutter/* @amirh @iskakaushik diff --git a/packages/path_provider/CHANGELOG.md b/packages/path_provider/CHANGELOG.md index b2578a43ba60..c4c8e763f90d 100644 --- a/packages/path_provider/CHANGELOG.md +++ b/packages/path_provider/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.0 + +* Added integration tests. + ## 0.5.0+1 * Log a more detailed warning at build time about the previous AndroidX diff --git a/packages/path_provider/example/pubspec.yaml b/packages/path_provider/example/pubspec.yaml index e95c465e856f..9daa92b8c22e 100644 --- a/packages/path_provider/example/pubspec.yaml +++ b/packages/path_provider/example/pubspec.yaml @@ -6,6 +6,12 @@ dependencies: sdk: flutter path_provider: path: ../ + uuid: "^1.0.0" + +dev_dependencies: + flutter_driver: + sdk: flutter + test: any flutter: uses-material-design: true diff --git a/packages/path_provider/example/test_driver/path_provider.dart b/packages/path_provider/example/test_driver/path_provider.dart new file mode 100644 index 000000000000..c0c623747d17 --- /dev/null +++ b/packages/path_provider/example/test_driver/path_provider.dart @@ -0,0 +1,49 @@ +// Copyright 2019, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:async'; + +import 'dart:io'; +import 'package:flutter_driver/driver_extension.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:uuid/uuid.dart'; + +void main() { + final Completer allTestsCompleter = Completer(); + enableFlutterDriverExtension(handler: (_) => allTestsCompleter.future); + tearDownAll(() => allTestsCompleter.complete(null)); + + test('getTemporaryDirectory', () async { + final Directory result = await getTemporaryDirectory(); + final String uuid = Uuid().v1(); + final File file = File('${result.path}/$uuid.txt'); + file.writeAsStringSync('Hello world!'); + expect(file.readAsStringSync(), 'Hello world!'); + expect(result.listSync(), isNotEmpty); + file.deleteSync(); + }); + + test('getApplicationDocumentsDirectory', () async { + final Directory result = await getApplicationDocumentsDirectory(); + final String uuid = Uuid().v1(); + final File file = File('${result.path}/$uuid.txt'); + file.writeAsStringSync('Hello world!'); + expect(file.readAsStringSync(), 'Hello world!'); + expect(result.listSync(), isNotEmpty); + file.deleteSync(); + }); + + test('getExternalStorageDirectory', () async { + if (Platform.isIOS) { + final Future result = getExternalStorageDirectory(); + expect(result, throwsA(isInstanceOf())); + } else if (Platform.isAndroid) { + final Directory result = await getExternalStorageDirectory(); + // This directory is not accessible in Android emulators. + // However, it should at least have a fake path returned. + expect(result.path.length, isNonZero); + } + }); +} diff --git a/packages/path_provider/example/test_driver/path_provider_test.dart b/packages/path_provider/example/test_driver/path_provider_test.dart new file mode 100644 index 000000000000..b0d3305cd652 --- /dev/null +++ b/packages/path_provider/example/test_driver/path_provider_test.dart @@ -0,0 +1,13 @@ +// Copyright 2019, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:async'; + +import 'package:flutter_driver/flutter_driver.dart'; + +Future main() async { + final FlutterDriver driver = await FlutterDriver.connect(); + await driver.requestData(null, timeout: const Duration(minutes: 1)); + driver.close(); +} diff --git a/packages/path_provider/pubspec.yaml b/packages/path_provider/pubspec.yaml index 2d3304dcaa35..9913857e150f 100644 --- a/packages/path_provider/pubspec.yaml +++ b/packages/path_provider/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for getting commonly used locations on the Android & iOS file systems, such as the temp and app data directories. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/path_provider -version: 0.5.0+1 +version: 1.0.0 flutter: plugin: @@ -18,6 +18,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + flutter_driver: + sdk: flutter + test: any + uuid: "^1.0.0" environment: sdk: ">=2.0.0-dev.28.0 <3.0.0"