[e2e] Test multiple failure behavior (#2514)
* driver test for failure behavior
diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md
index 083e4d8..a47eaff 100644
--- a/packages/e2e/CHANGELOG.md
+++ b/packages/e2e/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.2.3+1
+
+* Added a driver test for failure behavior.
+
## 0.2.3
* Updates `E2EPlugin` and add skeleton iOS test case `E2EIosTest`.
diff --git a/packages/e2e/example/pubspec.yaml b/packages/e2e/example/pubspec.yaml
index 41cf84a..a0213e6 100644
--- a/packages/e2e/example/pubspec.yaml
+++ b/packages/e2e/example/pubspec.yaml
@@ -22,6 +22,7 @@
path: ../
e2e_macos:
path: ../e2e_macos
+ test: any
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
diff --git a/packages/e2e/example/test_driver/failure_e2e.dart b/packages/e2e/example/test_driver/failure_e2e.dart
new file mode 100644
index 0000000..64d83bf
--- /dev/null
+++ b/packages/e2e/example/test_driver/failure_e2e.dart
@@ -0,0 +1,39 @@
+// Copyright 2019 The Chromium 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';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:e2e/e2e.dart';
+
+import 'package:e2e_example/main.dart';
+
+// Tests the failure behavior of the E2EWidgetsFlutterBinding
+//
+// This test fails intentionally! It should be run using a test runner that
+// expects failure.
+void main() {
+ E2EWidgetsFlutterBinding.ensureInitialized();
+
+ testWidgets('success', (WidgetTester tester) async {
+ expect(1 + 1, 2); // This should pass
+ });
+
+ testWidgets('failure 1', (WidgetTester tester) async {
+ // Build our app and trigger a frame.
+ await tester.pumpWidget(MyApp());
+
+ // Verify that platform version is retrieved.
+ expect(
+ find.byWidgetPredicate(
+ (Widget widget) =>
+ widget is Text && widget.data.startsWith('This should fail'),
+ ),
+ findsOneWidget,
+ );
+ });
+
+ testWidgets('failure 2', (WidgetTester tester) async {
+ expect(1 + 1, 3); // This should fail
+ });
+}
diff --git a/packages/e2e/example/test_driver/failure_e2e_test.dart b/packages/e2e/example/test_driver/failure_e2e_test.dart
new file mode 100644
index 0000000..b0323aa
--- /dev/null
+++ b/packages/e2e/example/test_driver/failure_e2e_test.dart
@@ -0,0 +1,18 @@
+import 'dart:async';
+
+import 'package:flutter_driver/flutter_driver.dart';
+import 'package:test/test.dart';
+
+Future<void> main() async {
+ test('fails gracefully', () async {
+ final FlutterDriver driver = await FlutterDriver.connect();
+ final String result =
+ await driver.requestData(null, timeout: const Duration(minutes: 1));
+ await driver.close();
+ expect(
+ result,
+ 'failure',
+ skip: true, // https://github.com/flutter/flutter/issues/48601
+ );
+ });
+}
diff --git a/packages/e2e/pubspec.yaml b/packages/e2e/pubspec.yaml
index 504edd4..958b4a2 100644
--- a/packages/e2e/pubspec.yaml
+++ b/packages/e2e/pubspec.yaml
@@ -1,6 +1,6 @@
name: e2e
description: Runs tests that use the flutter_test API as integration tests.
-version: 0.2.3
+version: 0.2.3+1
homepage: https://github.com/flutter/plugins/tree/master/packages/e2e
environment: