From 4dc097d3c85dee0f2f4a67ad49f1c1b39ea2b31b Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Mon, 10 Feb 2020 16:35:58 -0800 Subject: [PATCH] [e2e] Test multiple failure behavior (#2514) * driver test for failure behavior --- packages/e2e/CHANGELOG.md | 4 ++ packages/e2e/example/pubspec.yaml | 1 + .../e2e/example/test_driver/failure_e2e.dart | 39 +++++++++++++++++++ .../example/test_driver/failure_e2e_test.dart | 18 +++++++++ packages/e2e/pubspec.yaml | 2 +- 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 packages/e2e/example/test_driver/failure_e2e.dart create mode 100644 packages/e2e/example/test_driver/failure_e2e_test.dart diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md index 083e4d8e4b58..a47eaff54ee5 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 41cf84a3c480..a0213e6e6f6d 100644 --- a/packages/e2e/example/pubspec.yaml +++ b/packages/e2e/example/pubspec.yaml @@ -22,6 +22,7 @@ dev_dependencies: 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 000000000000..64d83bf5c13b --- /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 000000000000..b0323aa79d98 --- /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 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 504edd4e7d75..958b4a274c6e 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: