From a17a21cd61ba83122ee5f9fdece50da9dc915f8d Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 14:47:16 -0700 Subject: [PATCH 1/6] Add testing for path_provider --- packages/path_provider/example/pubspec.yaml | 6 ++++++ packages/path_provider/pubspec.yaml | 4 ++++ 2 files changed, 10 insertions(+) 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/pubspec.yaml b/packages/path_provider/pubspec.yaml index 2d3304dcaa35..df93c3820361 100644 --- a/packages/path_provider/pubspec.yaml +++ b/packages/path_provider/pubspec.yaml @@ -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" From 9b2194f8b8ef7e6c8c700e5721cdb3e7e7623a6f Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 14:47:25 -0700 Subject: [PATCH 2/6] Add @collinjackson to codeowners --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) 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 From ec608742e4ceca032b95941c7d08b20e81afdd9a Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 14:48:06 -0700 Subject: [PATCH 3/6] Release as 1.0 --- packages/path_provider/CHANGELOG.md | 4 ++++ packages/path_provider/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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/pubspec.yaml b/packages/path_provider/pubspec.yaml index df93c3820361..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: From ac91176127048d31c294fe767b6d1e907578f72d Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 14:55:54 -0700 Subject: [PATCH 4/6] Add integration tests folder --- .../example/test_driver/path_provider.dart | 50 +++++++++++++++++++ .../test_driver/path_provider_test.dart | 13 +++++ 2 files changed, 63 insertions(+) create mode 100644 packages/path_provider/example/test_driver/path_provider.dart create mode 100644 packages/path_provider/example/test_driver/path_provider_test.dart 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..269064af5b23 --- /dev/null +++ b/packages/path_provider/example/test_driver/path_provider.dart @@ -0,0 +1,50 @@ +// 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 { + 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 { + 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) { + Future result = getExternalStorageDirectory(); + expect(result, throwsA(isInstanceOf())); + } else if (Platform.isAndroid) { + 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(); +} From 661b7427bf924ad4376b112b3d917e062ef53867 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 14:58:58 -0700 Subject: [PATCH 5/6] Reformat --- packages/path_provider/example/test_driver/path_provider.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/path_provider/example/test_driver/path_provider.dart b/packages/path_provider/example/test_driver/path_provider.dart index 269064af5b23..02931e99dfa8 100644 --- a/packages/path_provider/example/test_driver/path_provider.dart +++ b/packages/path_provider/example/test_driver/path_provider.dart @@ -46,5 +46,4 @@ void main() { expect(result.path.length, isNonZero); } }); - } From af34578f77c0539b69132dd3dbf3a592409c2c71 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 3 May 2019 15:08:39 -0700 Subject: [PATCH 6/6] Analyze --- .../path_provider/example/test_driver/path_provider.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/path_provider/example/test_driver/path_provider.dart b/packages/path_provider/example/test_driver/path_provider.dart index 02931e99dfa8..c0c623747d17 100644 --- a/packages/path_provider/example/test_driver/path_provider.dart +++ b/packages/path_provider/example/test_driver/path_provider.dart @@ -16,7 +16,7 @@ void main() { tearDownAll(() => allTestsCompleter.complete(null)); test('getTemporaryDirectory', () async { - Directory result = await getTemporaryDirectory(); + final Directory result = await getTemporaryDirectory(); final String uuid = Uuid().v1(); final File file = File('${result.path}/$uuid.txt'); file.writeAsStringSync('Hello world!'); @@ -26,7 +26,7 @@ void main() { }); test('getApplicationDocumentsDirectory', () async { - Directory result = await getApplicationDocumentsDirectory(); + final Directory result = await getApplicationDocumentsDirectory(); final String uuid = Uuid().v1(); final File file = File('${result.path}/$uuid.txt'); file.writeAsStringSync('Hello world!'); @@ -37,10 +37,10 @@ void main() { test('getExternalStorageDirectory', () async { if (Platform.isIOS) { - Future result = getExternalStorageDirectory(); + final Future result = getExternalStorageDirectory(); expect(result, throwsA(isInstanceOf())); } else if (Platform.isAndroid) { - Directory result = await getExternalStorageDirectory(); + 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);