From c879069b22dbe2102a06ce61fe5bf6003627f3fe Mon Sep 17 00:00:00 2001 From: Yash Johri Date: Wed, 14 Oct 2020 16:34:45 +0530 Subject: [PATCH 1/4] [package_info_plus_web] Added integration tests --- packages/package_info_plus_web/CHANGELOG.md | 4 ++ .../lib/package_info_plus_web.dart | 11 ++--- packages/package_info_plus_web/pubspec.yaml | 4 +- .../package_info_plus_web/test/.gitignore | 47 +++++++++++++++++++ packages/package_info_plus_web/test/.metadata | 10 ++++ packages/package_info_plus_web/test/README.md | 17 +++++++ .../package_info_plus_web/test/lib/main.dart | 22 +++++++++ .../package_info_plus_web/test/pubspec.yaml | 20 ++++++++ .../package_info_plus_web_integration.dart | 34 ++++++++++++++ ...ackage_info_plus_web_integration_test.dart | 3 ++ .../package_info_plus_web/test/web/index.html | 12 +++++ 11 files changed, 174 insertions(+), 10 deletions(-) create mode 100644 packages/package_info_plus_web/test/.gitignore create mode 100644 packages/package_info_plus_web/test/.metadata create mode 100644 packages/package_info_plus_web/test/README.md create mode 100644 packages/package_info_plus_web/test/lib/main.dart create mode 100644 packages/package_info_plus_web/test/pubspec.yaml create mode 100644 packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart create mode 100644 packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart create mode 100644 packages/package_info_plus_web/test/web/index.html diff --git a/packages/package_info_plus_web/CHANGELOG.md b/packages/package_info_plus_web/CHANGELOG.md index 155f48e9ad..e3d8f02c11 100644 --- a/packages/package_info_plus_web/CHANGELOG.md +++ b/packages/package_info_plus_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.1 + +- Added intergration tests. + ## 0.1.0 - Transfer to plus-plugins monorepo diff --git a/packages/package_info_plus_web/lib/package_info_plus_web.dart b/packages/package_info_plus_web/lib/package_info_plus_web.dart index 1e86b38a9e..a94c810428 100644 --- a/packages/package_info_plus_web/lib/package_info_plus_web.dart +++ b/packages/package_info_plus_web/lib/package_info_plus_web.dart @@ -24,15 +24,10 @@ class PackageInfoPlugin extends PackageInfoPlatform { if (response.statusCode == 200) { try { final versionMap = jsonDecode(response.body); - final map = { - "appName": versionMap['app_name'], - "version": versionMap['version'], - "buildNumber": versionMap['build_number'] - }; return PackageInfoData( - appName: map['appName'], - version: map['version'], - buildNumber: map['buildNumber'], + appName: versionMap['app_name'], + version: versionMap['version'], + buildNumber: versionMap['build_number'], ); } catch (e) { return PackageInfoData(); diff --git a/packages/package_info_plus_web/pubspec.yaml b/packages/package_info_plus_web/pubspec.yaml index c157b7cb3b..142ae15e80 100644 --- a/packages/package_info_plus_web/pubspec.yaml +++ b/packages/package_info_plus_web/pubspec.yaml @@ -1,7 +1,7 @@ name: package_info_plus_web description: Web platform implementation of package_info_plus homepage: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus_web -version: 0.1.0 +version: 0.1.1 flutter: plugin: @@ -28,4 +28,4 @@ dev_dependencies: environment: sdk: ">=2.2.0 <3.0.0" - flutter: '>=1.20.0' + flutter: ">=1.20.0" diff --git a/packages/package_info_plus_web/test/.gitignore b/packages/package_info_plus_web/test/.gitignore new file mode 100644 index 0000000000..1c5e91ed84 --- /dev/null +++ b/packages/package_info_plus_web/test/.gitignore @@ -0,0 +1,47 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +pubspec.lock +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/packages/package_info_plus_web/test/.metadata b/packages/package_info_plus_web/test/.metadata new file mode 100644 index 0000000000..c93b1671cb --- /dev/null +++ b/packages/package_info_plus_web/test/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 4dffc851bc1d1d6eb7057244b16dbf37e0fd52bb + channel: master + +project_type: app diff --git a/packages/package_info_plus_web/test/README.md b/packages/package_info_plus_web/test/README.md new file mode 100644 index 0000000000..a18b277f12 --- /dev/null +++ b/packages/package_info_plus_web/test/README.md @@ -0,0 +1,17 @@ +# Running browser_tests + +Make sure you have updated to the latest Flutter master. + +1. Check what version of Chrome is running on the machine you're running tests on. + +2. Download and install driver for that version from here: + + - + +3. Start the driver using `chromedriver --port=4444` + +4. Change into the `test` directory of your clone. + +5. Run tests: `flutter drive -d web-server --browser-name=chrome --target=test_driver/TEST_NAME_integration.dart`, or (in Linux): + + - Single: `./run_test test_driver/TEST_NAME_integration.dart` diff --git a/packages/package_info_plus_web/test/lib/main.dart b/packages/package_info_plus_web/test/lib/main.dart new file mode 100644 index 0000000000..1041520457 --- /dev/null +++ b/packages/package_info_plus_web/test/lib/main.dart @@ -0,0 +1,22 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; + +void main() { + runApp(MyApp()); +} + +/// App for testing +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State { + @override + Widget build(BuildContext context) { + return Text('Testing... Look at the console output for results!'); + } +} diff --git a/packages/package_info_plus_web/test/pubspec.yaml b/packages/package_info_plus_web/test/pubspec.yaml new file mode 100644 index 0000000000..3fed702d58 --- /dev/null +++ b/packages/package_info_plus_web/test/pubspec.yaml @@ -0,0 +1,20 @@ +name: regular_integration_tests +publish_to: "none" + +environment: + sdk: ">=2.7.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + cupertino_icons: ^1.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + integration_test: ^0.9.2 + mockito: ^4.1.1 + package_info_plus_web: + path: ../ +flutter: + uses-material-design: true diff --git a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart new file mode 100644 index 0000000000..bfce21f496 --- /dev/null +++ b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart @@ -0,0 +1,34 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; +import 'package:mockito/mockito.dart'; +import 'package:package_info_plus_platform_interface/package_info_data.dart'; +import 'package:package_info_plus_web/package_info_plus_web.dart'; + +@TestOn('chrome') +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + group('package_info', () { + PackageInfoPlugin packageInfoPlugin; + MockPackageInfoPlugin fakePlatform; + setUp(() async { + fakePlatform = MockPackageInfoPlugin(); + packageInfoPlugin = fakePlatform; + }); + test('package_info', () async { + PackageInfoData packageInfoData = await packageInfoPlugin.getAll(); + expect(packageInfoData.appName, "Package Info Test"); + }); + }); +} + +class MockPackageInfoPlugin extends Mock implements PackageInfoPlugin { + Future getAll() async { + return PackageInfoData( + appName: "Package Info Test", + buildNumber: "1", + packageName: "package_info_test", + version: "1.0.0", + ); + } +} diff --git a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart new file mode 100644 index 0000000000..4045054df4 --- /dev/null +++ b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart @@ -0,0 +1,3 @@ +import 'package:integration_test/integration_test_driver.dart'; + +Future main() async => integrationDriver(); diff --git a/packages/package_info_plus_web/test/web/index.html b/packages/package_info_plus_web/test/web/index.html new file mode 100644 index 0000000000..89be414e92 --- /dev/null +++ b/packages/package_info_plus_web/test/web/index.html @@ -0,0 +1,12 @@ + + + + + Browser Tests + + + + + \ No newline at end of file From 0f2db81e7a2a35358e78e5e77386ab500d0b6984 Mon Sep 17 00:00:00 2001 From: Yash Johri Date: Wed, 14 Oct 2020 16:52:04 +0530 Subject: [PATCH 2/4] Analyzer error fixed --- packages/package_info_plus_web/pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/package_info_plus_web/pubspec.yaml b/packages/package_info_plus_web/pubspec.yaml index 142ae15e80..6fe6aec48b 100644 --- a/packages/package_info_plus_web/pubspec.yaml +++ b/packages/package_info_plus_web/pubspec.yaml @@ -14,6 +14,7 @@ dependencies: http: ^0.12.0 package_info_plus_platform_interface: ^0.1.0 platform_detect: ^1.4.0 + integration_test: ^0.9.2 flutter: sdk: flutter flutter_web_plugins: From 18ce1133375fcf461aba3f6cba9483e9d45949f6 Mon Sep 17 00:00:00 2001 From: Yash Johri Date: Fri, 23 Oct 2020 13:56:02 +0530 Subject: [PATCH 3/4] Degraded version --- packages/package_info_plus_web/CHANGELOG.md | 4 ---- packages/package_info_plus_web/pubspec.yaml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/package_info_plus_web/CHANGELOG.md b/packages/package_info_plus_web/CHANGELOG.md index e3d8f02c11..155f48e9ad 100644 --- a/packages/package_info_plus_web/CHANGELOG.md +++ b/packages/package_info_plus_web/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.1.1 - -- Added intergration tests. - ## 0.1.0 - Transfer to plus-plugins monorepo diff --git a/packages/package_info_plus_web/pubspec.yaml b/packages/package_info_plus_web/pubspec.yaml index 6fe6aec48b..bd0856bf9c 100644 --- a/packages/package_info_plus_web/pubspec.yaml +++ b/packages/package_info_plus_web/pubspec.yaml @@ -1,7 +1,7 @@ name: package_info_plus_web description: Web platform implementation of package_info_plus homepage: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus_web -version: 0.1.1 +version: 0.1.0 flutter: plugin: From 555bf3140cb3029804af5d46d8eb0308cebd3e13 Mon Sep 17 00:00:00 2001 From: Yash Johri Date: Fri, 23 Oct 2020 18:23:22 +0530 Subject: [PATCH 4/4] Revert Tests --- packages/package_info_plus_web/pubspec.yaml | 1 - .../package_info_plus_web/test/.gitignore | 47 ------------------- packages/package_info_plus_web/test/.metadata | 10 ---- packages/package_info_plus_web/test/README.md | 17 ------- .../package_info_plus_web/test/lib/main.dart | 22 --------- .../package_info_plus_web/test/pubspec.yaml | 20 -------- .../package_info_plus_web_integration.dart | 34 -------------- ...ackage_info_plus_web_integration_test.dart | 3 -- .../package_info_plus_web/test/web/index.html | 12 ----- 9 files changed, 166 deletions(-) delete mode 100644 packages/package_info_plus_web/test/.gitignore delete mode 100644 packages/package_info_plus_web/test/.metadata delete mode 100644 packages/package_info_plus_web/test/README.md delete mode 100644 packages/package_info_plus_web/test/lib/main.dart delete mode 100644 packages/package_info_plus_web/test/pubspec.yaml delete mode 100644 packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart delete mode 100644 packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart delete mode 100644 packages/package_info_plus_web/test/web/index.html diff --git a/packages/package_info_plus_web/pubspec.yaml b/packages/package_info_plus_web/pubspec.yaml index bd0856bf9c..98e859a497 100644 --- a/packages/package_info_plus_web/pubspec.yaml +++ b/packages/package_info_plus_web/pubspec.yaml @@ -14,7 +14,6 @@ dependencies: http: ^0.12.0 package_info_plus_platform_interface: ^0.1.0 platform_detect: ^1.4.0 - integration_test: ^0.9.2 flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/package_info_plus_web/test/.gitignore b/packages/package_info_plus_web/test/.gitignore deleted file mode 100644 index 1c5e91ed84..0000000000 --- a/packages/package_info_plus_web/test/.gitignore +++ /dev/null @@ -1,47 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -pubspec.lock -.pub-cache/ -.pub/ -/build/ - -# Web related -lib/generated_plugin_registrant.dart - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/packages/package_info_plus_web/test/.metadata b/packages/package_info_plus_web/test/.metadata deleted file mode 100644 index c93b1671cb..0000000000 --- a/packages/package_info_plus_web/test/.metadata +++ /dev/null @@ -1,10 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: 4dffc851bc1d1d6eb7057244b16dbf37e0fd52bb - channel: master - -project_type: app diff --git a/packages/package_info_plus_web/test/README.md b/packages/package_info_plus_web/test/README.md deleted file mode 100644 index a18b277f12..0000000000 --- a/packages/package_info_plus_web/test/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Running browser_tests - -Make sure you have updated to the latest Flutter master. - -1. Check what version of Chrome is running on the machine you're running tests on. - -2. Download and install driver for that version from here: - - - - -3. Start the driver using `chromedriver --port=4444` - -4. Change into the `test` directory of your clone. - -5. Run tests: `flutter drive -d web-server --browser-name=chrome --target=test_driver/TEST_NAME_integration.dart`, or (in Linux): - - - Single: `./run_test test_driver/TEST_NAME_integration.dart` diff --git a/packages/package_info_plus_web/test/lib/main.dart b/packages/package_info_plus_web/test/lib/main.dart deleted file mode 100644 index 1041520457..0000000000 --- a/packages/package_info_plus_web/test/lib/main.dart +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/material.dart'; - -void main() { - runApp(MyApp()); -} - -/// App for testing -class MyApp extends StatefulWidget { - @override - _MyAppState createState() => _MyAppState(); -} - -class _MyAppState extends State { - @override - Widget build(BuildContext context) { - return Text('Testing... Look at the console output for results!'); - } -} diff --git a/packages/package_info_plus_web/test/pubspec.yaml b/packages/package_info_plus_web/test/pubspec.yaml deleted file mode 100644 index 3fed702d58..0000000000 --- a/packages/package_info_plus_web/test/pubspec.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: regular_integration_tests -publish_to: "none" - -environment: - sdk: ">=2.7.0 <3.0.0" - -dependencies: - flutter: - sdk: flutter - cupertino_icons: ^1.0.0 - -dev_dependencies: - flutter_test: - sdk: flutter - integration_test: ^0.9.2 - mockito: ^4.1.1 - package_info_plus_web: - path: ../ -flutter: - uses-material-design: true diff --git a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart deleted file mode 100644 index bfce21f496..0000000000 --- a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration.dart +++ /dev/null @@ -1,34 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:integration_test/integration_test.dart'; -import 'package:mockito/mockito.dart'; -import 'package:package_info_plus_platform_interface/package_info_data.dart'; -import 'package:package_info_plus_web/package_info_plus_web.dart'; - -@TestOn('chrome') -void main() { - IntegrationTestWidgetsFlutterBinding.ensureInitialized(); - - group('package_info', () { - PackageInfoPlugin packageInfoPlugin; - MockPackageInfoPlugin fakePlatform; - setUp(() async { - fakePlatform = MockPackageInfoPlugin(); - packageInfoPlugin = fakePlatform; - }); - test('package_info', () async { - PackageInfoData packageInfoData = await packageInfoPlugin.getAll(); - expect(packageInfoData.appName, "Package Info Test"); - }); - }); -} - -class MockPackageInfoPlugin extends Mock implements PackageInfoPlugin { - Future getAll() async { - return PackageInfoData( - appName: "Package Info Test", - buildNumber: "1", - packageName: "package_info_test", - version: "1.0.0", - ); - } -} diff --git a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart b/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart deleted file mode 100644 index 4045054df4..0000000000 --- a/packages/package_info_plus_web/test/test_driver/package_info_plus_web_integration_test.dart +++ /dev/null @@ -1,3 +0,0 @@ -import 'package:integration_test/integration_test_driver.dart'; - -Future main() async => integrationDriver(); diff --git a/packages/package_info_plus_web/test/web/index.html b/packages/package_info_plus_web/test/web/index.html deleted file mode 100644 index 89be414e92..0000000000 --- a/packages/package_info_plus_web/test/web/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - Browser Tests - - - - - \ No newline at end of file