diff --git a/packages/instrumentation_adapter/.gitignore b/packages/e2e/.gitignore similarity index 100% rename from packages/instrumentation_adapter/.gitignore rename to packages/e2e/.gitignore diff --git a/packages/instrumentation_adapter/.metadata b/packages/e2e/.metadata similarity index 100% rename from packages/instrumentation_adapter/.metadata rename to packages/e2e/.metadata diff --git a/packages/instrumentation_adapter/CHANGELOG.md b/packages/e2e/CHANGELOG.md similarity index 70% rename from packages/instrumentation_adapter/CHANGELOG.md rename to packages/e2e/CHANGELOG.md index 8b9b8a725a77..44ec042e8066 100644 --- a/packages/instrumentation_adapter/CHANGELOG.md +++ b/packages/e2e/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.2.0 + +* Renamed package from instrumentation_adapter to e2e. +* Refactored example app test. +* **Breaking change**. Renamed `InstrumentationAdapterFlutterBinding` to + `E2EWidgetsFlutterBinding`. +* Updated README. + ## 0.1.4 * Migrate example to AndroidX. diff --git a/packages/instrumentation_adapter/LICENSE b/packages/e2e/LICENSE similarity index 100% rename from packages/instrumentation_adapter/LICENSE rename to packages/e2e/LICENSE diff --git a/packages/instrumentation_adapter/README.md b/packages/e2e/README.md similarity index 66% rename from packages/instrumentation_adapter/README.md rename to packages/e2e/README.md index 1063589c615b..9b1dab18a2d5 100644 --- a/packages/instrumentation_adapter/README.md +++ b/packages/e2e/README.md @@ -1,4 +1,4 @@ -# instrumentation_adapter +# e2e Adapts flutter_test results as Android instrumentation tests, making them usable for Firebase Test Lab and other Android CI providers. @@ -7,7 +7,7 @@ iOS support is not available yet, but is planned in the future. ## Usage -Add a dependency on the `instrumentation_adapter` package in the +Add a dependency on the `e2e` package in the `dev_dependencies` section of pubspec.yaml. For plugins, do this in the pubspec.yaml of the example app. @@ -15,16 +15,51 @@ Invoke `InstrumentationAdapterFlutterBinding.ensureInitialized()` at the start of a test file, e.g. ```dart -import 'package:instrumentation_adapter/instrumentation_adapter.dart'; +import 'package:e2e/e2e.dart'; void main() { InstrumentationAdapterFlutterBinding.ensureInitialized(); testWidgets("failing test example", (WidgetTester tester) async { expect(2 + 2, equals(5)); }); + exit(result == 'pass' ? 0 : 1); +} +``` + +## Using Flutter driver to run tests + +`E2EWidgetsTestBinding` supports launching the on-device tests with `flutter drive`. +Note that the tests don't use the `FlutterDriver` API, they use `testWidgets` instead. + +Put the a file named `_test.dart` in the app' `test_driver` directory: + +``` +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(); + exit(result == 'pass' ? 0 : 1); } ``` +To run a example app test with Flutter driver: + +``` +cd example +flutter drive test/_e2e.dart +``` + +To test plugin APIs using Flutter driver: + +``` +cd example +flutter drive --driver=test_driver/_test.dart test/_e2e.dart +``` + +## Android device testing + Create an instrumentation test file in your application's **android/app/src/androidTest/java/com/example/myapp/** directory (replacing com, example, and myapp with values from your app's package name). You can name @@ -34,7 +69,7 @@ this test file MainActivityTest.java or another name of your choice. package com.example.myapp; import androidx.test.rule.ActivityTestRule; -import dev.flutter.plugins.instrumentationadapter.FlutterRunner; +import dev.flutter.plugins.e2e.FlutterRunner; import org.junit.Rule; import org.junit.runner.RunWith; @@ -67,7 +102,16 @@ dependencies { } ``` -Use gradle commands to build an instrumentation test for Android. +To e2e test on a local Android device (emulated or physical): + +``` +./gradlew connectedAndroidTest -Ptarget=`pwd`/../test_driver/_e2e.dart +``` + +## Firebase Test Lab + +To run an e2e test on Android devices using Firebase Test Lab, use gradle commands to build an +instrumentation test for Android. ``` pushd android @@ -90,14 +134,4 @@ gcloud firebase test android run --type instrumentation \ --results-dir= ``` -## Flutter driver support - -`InstrumentationAdapterFlutterBinding` also reports test results to `FlutterDriver` -when run on the command line via `flutter drive`. - -```dart - final FlutterDriver driver = await FlutterDriver.connect(); - final String result = await driver.requestData(null, timeout: const Duration(minutes: 1)); - driver.close(); - exit(result == 'pass' ? 0 : 1); -``` +iOS support for Firebase Test Lab is not yet available, but is planned. diff --git a/packages/instrumentation_adapter/android/.gitignore b/packages/e2e/android/.gitignore similarity index 100% rename from packages/instrumentation_adapter/android/.gitignore rename to packages/e2e/android/.gitignore diff --git a/packages/instrumentation_adapter/android/build.gradle b/packages/e2e/android/build.gradle similarity index 94% rename from packages/instrumentation_adapter/android/build.gradle rename to packages/e2e/android/build.gradle index 21c421337428..c91d4721d3ac 100644 --- a/packages/instrumentation_adapter/android/build.gradle +++ b/packages/e2e/android/build.gradle @@ -1,4 +1,4 @@ -group 'com.example.instrumentation_adapter' +group 'com.example.e2e' version '1.0-SNAPSHOT' buildscript { diff --git a/packages/instrumentation_adapter/android/gradle.properties b/packages/e2e/android/gradle.properties similarity index 100% rename from packages/instrumentation_adapter/android/gradle.properties rename to packages/e2e/android/gradle.properties diff --git a/packages/e2e/android/settings.gradle b/packages/e2e/android/settings.gradle new file mode 100644 index 000000000000..e5d17d080b60 --- /dev/null +++ b/packages/e2e/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'e2e' diff --git a/packages/instrumentation_adapter/android/src/main/AndroidManifest.xml b/packages/e2e/android/src/main/AndroidManifest.xml similarity index 62% rename from packages/instrumentation_adapter/android/src/main/AndroidManifest.xml rename to packages/e2e/android/src/main/AndroidManifest.xml index 3b424b6fad67..33fdf86052ab 100644 --- a/packages/instrumentation_adapter/android/src/main/AndroidManifest.xml +++ b/packages/e2e/android/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ + package="dev.flutter.e2e"> diff --git a/packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/InstrumentationAdapterPlugin.java b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java similarity index 77% rename from packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/InstrumentationAdapterPlugin.java rename to packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java index c77a94e89f91..bbb8d8bb4479 100644 --- a/packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/InstrumentationAdapterPlugin.java +++ b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/E2EPlugin.java @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package dev.flutter.plugins.instrumentationadapter; +package dev.flutter.plugins.e2e; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; @@ -12,17 +12,17 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; -/** InstrumentationAdapterPlugin */ -public class InstrumentationAdapterPlugin implements MethodCallHandler { +/** E2EPlugin */ +public class E2EPlugin implements MethodCallHandler { public static CompletableFuture> testResults = new CompletableFuture<>(); - private static final String CHANNEL = "dev.flutter/InstrumentationAdapterFlutterBinding"; + private static final String CHANNEL = "plugins.flutter.dev/e2e"; /** Plugin registration. */ public static void registerWith(Registrar registrar) { final MethodChannel channel = new MethodChannel(registrar.messenger(), CHANNEL); - channel.setMethodCallHandler(new InstrumentationAdapterPlugin()); + channel.setMethodCallHandler(new E2EPlugin()); } @Override diff --git a/packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/FlutterRunner.java b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/FlutterRunner.java similarity index 95% rename from packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/FlutterRunner.java rename to packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/FlutterRunner.java index c823306e022c..31f3e8431cad 100644 --- a/packages/instrumentation_adapter/android/src/main/java/dev/flutter/instrumentationadapter/FlutterRunner.java +++ b/packages/e2e/android/src/main/java/dev/flutter/plugins/e2e/FlutterRunner.java @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package dev.flutter.plugins.instrumentationadapter; +package dev.flutter.plugins.e2e; import android.app.Activity; import androidx.test.rule.ActivityTestRule; @@ -49,7 +49,7 @@ public Description getDescription() { public void run(RunNotifier notifier) { Map results = null; try { - results = InstrumentationAdapterPlugin.testResults.get(); + results = E2EPlugin.testResults.get(); } catch (ExecutionException | InterruptedException e) { throw new IllegalThreadStateException("Unable to get test results"); } diff --git a/packages/instrumentation_adapter/example/.gitignore b/packages/e2e/example/.gitignore similarity index 100% rename from packages/instrumentation_adapter/example/.gitignore rename to packages/e2e/example/.gitignore diff --git a/packages/instrumentation_adapter/example/.metadata b/packages/e2e/example/.metadata similarity index 100% rename from packages/instrumentation_adapter/example/.metadata rename to packages/e2e/example/.metadata diff --git a/packages/instrumentation_adapter/example/README.md b/packages/e2e/example/README.md similarity index 84% rename from packages/instrumentation_adapter/example/README.md rename to packages/e2e/example/README.md index f6030a4080b2..64a5e8780bc2 100644 --- a/packages/instrumentation_adapter/example/README.md +++ b/packages/e2e/example/README.md @@ -1,6 +1,6 @@ -# instrumentation_adapter_example +# e2e_example -Demonstrates how to use the instrumentation_adapter plugin. +Demonstrates how to use the e2e plugin. ## Getting Started diff --git a/packages/instrumentation_adapter/example/android/app/build.gradle b/packages/e2e/example/android/app/build.gradle similarity index 96% rename from packages/instrumentation_adapter/example/android/app/build.gradle rename to packages/e2e/example/android/app/build.gradle index 500e9ea951c6..527ed2dd38e0 100644 --- a/packages/instrumentation_adapter/example/android/app/build.gradle +++ b/packages/e2e/example/android/app/build.gradle @@ -33,7 +33,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.instrumentation_adapter_example" + applicationId "com.example.e2e_example" minSdkVersion 16 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() diff --git a/packages/instrumentation_adapter/example/android/app/src/androidTest/java/com/example/instrumentation_adapter_example/MainActivityTest.java b/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java similarity index 86% rename from packages/instrumentation_adapter/example/android/app/src/androidTest/java/com/example/instrumentation_adapter_example/MainActivityTest.java rename to packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java index bb489bf57942..11a6c6afb2fa 100644 --- a/packages/instrumentation_adapter/example/android/app/src/androidTest/java/com/example/instrumentation_adapter_example/MainActivityTest.java +++ b/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java @@ -1,4 +1,4 @@ -package com.example.instrumentation_adapter_example; +package com.example.e2e_example; import androidx.test.rule.ActivityTestRule; import dev.flutter.plugins.instrumentationadapter.FlutterRunner; diff --git a/packages/instrumentation_adapter/example/android/app/src/debug/AndroidManifest.xml b/packages/e2e/example/android/app/src/debug/AndroidManifest.xml similarity index 83% rename from packages/instrumentation_adapter/example/android/app/src/debug/AndroidManifest.xml rename to packages/e2e/example/android/app/src/debug/AndroidManifest.xml index 87cc33d27c03..5d4aea26b1dd 100644 --- a/packages/instrumentation_adapter/example/android/app/src/debug/AndroidManifest.xml +++ b/packages/e2e/example/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.example.e2e_example"> diff --git a/packages/instrumentation_adapter/example/android/app/src/main/AndroidManifest.xml b/packages/e2e/example/android/app/src/main/AndroidManifest.xml similarity index 93% rename from packages/instrumentation_adapter/example/android/app/src/main/AndroidManifest.xml rename to packages/e2e/example/android/app/src/main/AndroidManifest.xml index 653fa39a669d..d2477d5977f5 100644 --- a/packages/instrumentation_adapter/example/android/app/src/main/AndroidManifest.xml +++ b/packages/e2e/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.example.e2e_example"> + package="com.example.e2e_example"> diff --git a/packages/instrumentation_adapter/example/android/build.gradle b/packages/e2e/example/android/build.gradle similarity index 100% rename from packages/instrumentation_adapter/example/android/build.gradle rename to packages/e2e/example/android/build.gradle diff --git a/packages/instrumentation_adapter/example/android/gradle.properties b/packages/e2e/example/android/gradle.properties similarity index 79% rename from packages/instrumentation_adapter/example/android/gradle.properties rename to packages/e2e/example/android/gradle.properties index 755300e3a0b5..1515360c4bce 100644 --- a/packages/instrumentation_adapter/example/android/gradle.properties +++ b/packages/e2e/example/android/gradle.properties @@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true +android.enableR8=true diff --git a/packages/instrumentation_adapter/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/e2e/example/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from packages/instrumentation_adapter/example/android/gradle/wrapper/gradle-wrapper.properties rename to packages/e2e/example/android/gradle/wrapper/gradle-wrapper.properties diff --git a/packages/instrumentation_adapter/example/android/settings.gradle b/packages/e2e/example/android/settings.gradle similarity index 100% rename from packages/instrumentation_adapter/example/android/settings.gradle rename to packages/e2e/example/android/settings.gradle diff --git a/packages/instrumentation_adapter/example/ios/Flutter/AppFrameworkInfo.plist b/packages/e2e/example/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from packages/instrumentation_adapter/example/ios/Flutter/AppFrameworkInfo.plist rename to packages/e2e/example/ios/Flutter/AppFrameworkInfo.plist diff --git a/packages/instrumentation_adapter/example/ios/Flutter/Debug.xcconfig b/packages/e2e/example/ios/Flutter/Debug.xcconfig similarity index 100% rename from packages/instrumentation_adapter/example/ios/Flutter/Debug.xcconfig rename to packages/e2e/example/ios/Flutter/Debug.xcconfig diff --git a/packages/instrumentation_adapter/example/ios/Flutter/Release.xcconfig b/packages/e2e/example/ios/Flutter/Release.xcconfig similarity index 100% rename from packages/instrumentation_adapter/example/ios/Flutter/Release.xcconfig rename to packages/e2e/example/ios/Flutter/Release.xcconfig diff --git a/packages/instrumentation_adapter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/e2e/example/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner.xcodeproj/project.pbxproj rename to packages/e2e/example/ios/Runner.xcodeproj/project.pbxproj diff --git a/packages/instrumentation_adapter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/e2e/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to packages/e2e/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/packages/instrumentation_adapter/example/ios/Runner/AppDelegate.h b/packages/e2e/example/ios/Runner/AppDelegate.h similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/AppDelegate.h rename to packages/e2e/example/ios/Runner/AppDelegate.h diff --git a/packages/instrumentation_adapter/example/ios/Runner/AppDelegate.m b/packages/e2e/example/ios/Runner/AppDelegate.m similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/AppDelegate.m rename to packages/e2e/example/ios/Runner/AppDelegate.m diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to packages/e2e/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/packages/instrumentation_adapter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/e2e/example/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to packages/e2e/example/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/packages/instrumentation_adapter/example/ios/Runner/Base.lproj/Main.storyboard b/packages/e2e/example/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/Base.lproj/Main.storyboard rename to packages/e2e/example/ios/Runner/Base.lproj/Main.storyboard diff --git a/packages/instrumentation_adapter/example/ios/Runner/Info.plist b/packages/e2e/example/ios/Runner/Info.plist similarity index 96% rename from packages/instrumentation_adapter/example/ios/Runner/Info.plist rename to packages/e2e/example/ios/Runner/Info.plist index 613203aaeb06..62f6fbb5c02c 100644 --- a/packages/instrumentation_adapter/example/ios/Runner/Info.plist +++ b/packages/e2e/example/ios/Runner/Info.plist @@ -11,7 +11,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - instrumentation_adapter_example + e2e_example CFBundlePackageType APPL CFBundleShortVersionString diff --git a/packages/instrumentation_adapter/example/ios/Runner/main.m b/packages/e2e/example/ios/Runner/main.m similarity index 100% rename from packages/instrumentation_adapter/example/ios/Runner/main.m rename to packages/e2e/example/ios/Runner/main.m diff --git a/packages/instrumentation_adapter/example/lib/main.dart b/packages/e2e/example/lib/main.dart similarity index 100% rename from packages/instrumentation_adapter/example/lib/main.dart rename to packages/e2e/example/lib/main.dart diff --git a/packages/instrumentation_adapter/example/pubspec.yaml b/packages/e2e/example/pubspec.yaml similarity index 73% rename from packages/instrumentation_adapter/example/pubspec.yaml rename to packages/e2e/example/pubspec.yaml index 55d547736b24..3538bb65db0f 100644 --- a/packages/instrumentation_adapter/example/pubspec.yaml +++ b/packages/e2e/example/pubspec.yaml @@ -1,5 +1,5 @@ -name: instrumentation_adapter_example -description: Demonstrates how to use the instrumentation_adapter plugin. +name: e2e_example +description: Demonstrates how to use the e2e plugin. publish_to: 'none' environment: @@ -16,7 +16,7 @@ dev_dependencies: sdk: flutter flutter_driver: sdk: flutter - instrumentation_adapter: + e2e: path: ../ # For information on the generic Dart part of this file, see the diff --git a/packages/instrumentation_adapter/example/test_driver/widget.dart b/packages/e2e/example/test_driver/example_e2e.dart similarity index 82% rename from packages/instrumentation_adapter/example/test_driver/widget.dart rename to packages/e2e/example/test_driver/example_e2e.dart index 109002c86790..e91dd4d0ce9f 100644 --- a/packages/instrumentation_adapter/example/test_driver/widget.dart +++ b/packages/e2e/example/test_driver/example_e2e.dart @@ -8,12 +8,12 @@ import 'dart:io' show Platform; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:instrumentation_adapter/instrumentation_adapter.dart'; +import 'package:e2e/e2e.dart'; -import 'package:instrumentation_adapter_example/main.dart'; +import 'package:e2e_example/main.dart'; void main() { - InstrumentationAdapterFlutterBinding.ensureInitialized(); + E2EWidgetsFlutterBinding.ensureInitialized(); testWidgets('verify text', (WidgetTester tester) async { // Build our app and trigger a frame. await tester.pumpWidget(MyApp()); diff --git a/packages/instrumentation_adapter/example/test_driver/widget_test.dart b/packages/e2e/example/test_driver/example_e2e_test.dart similarity index 55% rename from packages/instrumentation_adapter/example/test_driver/widget_test.dart rename to packages/e2e/example/test_driver/example_e2e_test.dart index 88e53d1c1f05..4f38746ce76c 100644 --- a/packages/instrumentation_adapter/example/test_driver/widget_test.dart +++ b/packages/e2e/example/test_driver/example_e2e_test.dart @@ -1,9 +1,12 @@ import 'dart:async'; +import 'dart:io'; 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)); + final String result = + await driver.requestData(null, timeout: const Duration(minutes: 1)); driver.close(); + exit(result == 'pass' ? 0 : 1); } diff --git a/packages/instrumentation_adapter/ios/.gitignore b/packages/e2e/ios/.gitignore similarity index 100% rename from packages/instrumentation_adapter/ios/.gitignore rename to packages/e2e/ios/.gitignore diff --git a/packages/instrumentation_adapter/ios/Assets/.gitkeep b/packages/e2e/ios/Assets/.gitkeep similarity index 100% rename from packages/instrumentation_adapter/ios/Assets/.gitkeep rename to packages/e2e/ios/Assets/.gitkeep diff --git a/packages/e2e/ios/Classes/E2EPlugin.h b/packages/e2e/ios/Classes/E2EPlugin.h new file mode 100644 index 000000000000..1411dce3f1da --- /dev/null +++ b/packages/e2e/ios/Classes/E2EPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface E2EPlugin : NSObject +@end diff --git a/packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.m b/packages/e2e/ios/Classes/E2EPlugin.m similarity index 50% rename from packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.m rename to packages/e2e/ios/Classes/E2EPlugin.m index 704a5b05e031..4f19f3a2f961 100644 --- a/packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.m +++ b/packages/e2e/ios/Classes/E2EPlugin.m @@ -1,11 +1,11 @@ -#import "InstrumentationAdapterPlugin.h" +#import "E2EPlugin.h" -@implementation InstrumentationAdapterPlugin +@implementation E2EPlugin + (void)registerWithRegistrar:(NSObject*)registrar { - FlutterMethodChannel* channel = [FlutterMethodChannel - methodChannelWithName:@"dev.flutter/InstrumentationAdapterFlutterBinding" - binaryMessenger:[registrar messenger]]; - InstrumentationAdapterPlugin* instance = [[InstrumentationAdapterPlugin alloc] init]; + FlutterMethodChannel* channel = + [FlutterMethodChannel methodChannelWithName:@"plugins.flutter.dev/e2e" + binaryMessenger:[registrar messenger]]; + E2EPlugin* instance = [[E2EPlugin alloc] init]; [registrar addMethodCallDelegate:instance channel:channel]; } diff --git a/packages/instrumentation_adapter/ios/instrumentation_adapter.podspec b/packages/e2e/ios/e2e.podspec similarity index 83% rename from packages/instrumentation_adapter/ios/instrumentation_adapter.podspec rename to packages/e2e/ios/e2e.podspec index 45edadad4cab..cb0f3bcc4088 100644 --- a/packages/instrumentation_adapter/ios/instrumentation_adapter.podspec +++ b/packages/e2e/ios/e2e.podspec @@ -2,13 +2,13 @@ # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html # Pod::Spec.new do |s| - s.name = 'instrumentation_adapter' + s.name = 'e2e' s.version = '0.0.1' - s.summary = 'Instrumentation adapter.' + s.summary = 'Adapter for e2e tests.' s.description = <<-DESC Runs tests that use the flutter_test API as integration tests. DESC - s.homepage = 'https://github.com/flutter/plugins/tree/master/packages/instrumentation_adapter' + s.homepage = 'https://github.com/flutter/plugins/tree/master/packages/e2e' s.license = { :file => '../LICENSE' } s.author = { 'Flutter Team' => 'flutter-dev@googlegroups.com' } s.source = { :path => '.' } diff --git a/packages/instrumentation_adapter/lib/instrumentation_adapter.dart b/packages/e2e/lib/e2e.dart similarity index 89% rename from packages/instrumentation_adapter/lib/instrumentation_adapter.dart rename to packages/e2e/lib/e2e.dart index 9999452234cd..00d29633d045 100644 --- a/packages/instrumentation_adapter/lib/instrumentation_adapter.dart +++ b/packages/e2e/lib/e2e.dart @@ -10,9 +10,8 @@ import 'package:flutter/widgets.dart'; /// A subclass of [LiveTestWidgetsFlutterBinding] that reports tests results /// on a channel to adapt them to native instrumentation test format. -class InstrumentationAdapterFlutterBinding - extends LiveTestWidgetsFlutterBinding { - InstrumentationAdapterFlutterBinding() { +class E2EWidgetsFlutterBinding extends LiveTestWidgetsFlutterBinding { + E2EWidgetsFlutterBinding() { // TODO(jackson): Report test results as they arrive tearDownAll(() async { try { @@ -29,14 +28,14 @@ class InstrumentationAdapterFlutterBinding static WidgetsBinding ensureInitialized() { if (WidgetsBinding.instance == null) { - InstrumentationAdapterFlutterBinding(); + E2EWidgetsFlutterBinding(); } - assert(WidgetsBinding.instance is InstrumentationAdapterFlutterBinding); + assert(WidgetsBinding.instance is E2EWidgetsFlutterBinding); return WidgetsBinding.instance; } static const MethodChannel _channel = - MethodChannel('dev.flutter/InstrumentationAdapterFlutterBinding'); + MethodChannel('plugins.flutter.dev/e2e'); static Map _results = {}; diff --git a/packages/instrumentation_adapter/pubspec.yaml b/packages/e2e/pubspec.yaml similarity index 64% rename from packages/instrumentation_adapter/pubspec.yaml rename to packages/e2e/pubspec.yaml index 1d8c258d8097..6e8bab883d91 100644 --- a/packages/instrumentation_adapter/pubspec.yaml +++ b/packages/e2e/pubspec.yaml @@ -1,8 +1,8 @@ -name: instrumentation_adapter +name: e2e description: Runs tests that use the flutter_test API as integration tests. -version: 0.1.4 +version: 0.2.0 author: Flutter Team -homepage: https://github.com/flutter/plugins/tree/master/packages/instrumentation_adapter +homepage: https://github.com/flutter/plugins/tree/master/packages/e2e environment: sdk: ">=2.1.0 <3.0.0" @@ -15,5 +15,5 @@ dependencies: flutter: plugin: - androidPackage: dev.flutter.plugins.instrumentationadapter - pluginClass: InstrumentationAdapterPlugin + androidPackage: dev.flutter.plugins.e2e + pluginClass: E2EPlugin diff --git a/packages/instrumentation_adapter/android/settings.gradle b/packages/instrumentation_adapter/android/settings.gradle deleted file mode 100644 index ed03d0eb2a5e..000000000000 --- a/packages/instrumentation_adapter/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'instrumentation_adapter' diff --git a/packages/instrumentation_adapter/example/instrumentation_adapter/widget_test.dart b/packages/instrumentation_adapter/example/instrumentation_adapter/widget_test.dart deleted file mode 100644 index 9829553c6522..000000000000 --- a/packages/instrumentation_adapter/example/instrumentation_adapter/widget_test.dart +++ /dev/null @@ -1,5 +0,0 @@ -import '../test_driver/widget.dart' as test; - -void main() { - test.main(); -} diff --git a/packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.h b/packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.h deleted file mode 100644 index 3d92ba91bf34..000000000000 --- a/packages/instrumentation_adapter/ios/Classes/InstrumentationAdapterPlugin.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -@interface InstrumentationAdapterPlugin : NSObject -@end