Temporarily disable the flutter_driver_screenshot_test. (#51665)
diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml
index 7575b7a..f4c184b 100644
--- a/dev/devicelab/manifest.yaml
+++ b/dev/devicelab/manifest.yaml
@@ -544,9 +544,6 @@
The test makes sure that there is no regression while renderring an image with gl on iOS.
stage: devicelab_ios
required_agent_capabilities: ["mac/ios", "ios/gl-render-image"]
- #TODO(cyanglaz): The flaky flag is added because it is the first screenshot test we added.
- # Remove the flaky flag when we are sure the test is stable.
- flaky: true
# TODO(fujino): does not pass on iOS13 https://github.com/flutter/flutter/issues/41133
# system_debug_ios:
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/README.md b/dev/integration_tests/flutter_driver_screenshot_test/README.md
index 110d016..b9bdba2 100644
--- a/dev/integration_tests/flutter_driver_screenshot_test/README.md
+++ b/dev/integration_tests/flutter_driver_screenshot_test/README.md
@@ -5,12 +5,14 @@
Each sub page should displays some simple UIs to screenshot tested.
The flutter driver test runs the app and opens each page to take a screenshot.
-
-Use `test_driver/flutter_gold_main_test.dart` to test against golden files stored on Flutter Gold.
-Otherwise, use `main_test.dart` to test against golden files stored on `test_driver/goldens/<some_test_page_name>/<device_model>.png`.
+Then it compares the screenshots with golden files stored on Flutter Gold.
Note that new binaries can't be checked in the Flutter repo, so use [Flutter Gold](https://github.com/flutter/flutter/wiki/Writing-a-golden-file-test-for-package:flutter) instead.
+# Reconstruction
+
+We are currently in the process of moving this test to use golden API. The configuration guide below might need to be updated after that is done.
+
# Add a new page to test
1. Create a new class which extends `Page` and implement the UI to be tested in the `build` method.
@@ -23,5 +25,5 @@
# Environments
-* Device Lab which runs the app on iPhone 6s.
+* Device Lab which runs the app on iPhone 6.
* LUCI which runs the app on a Fuchsia NUC device.
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart
deleted file mode 100644
index e3d1d74..0000000
--- a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2014 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 'dart:async';
-import 'dart:io' show File;
-
-import 'package:flutter_driver/flutter_driver.dart';
-import 'package:meta/meta.dart';
-import 'package:path/path.dart' as path;
-
-const String _kPathParent = 'test_driver/goldens/';
-
-/// The utility class that helps test cases to tests screenshots with a [FlutterDriver].
-@immutable
-class DriverScreenShotTester {
- /// Constructs a [DriverScreenShotTester].
- ///
- /// All the parameters are required and must not be null.
- const DriverScreenShotTester({
- @required this.testName,
- @required this.driver,
- @required this.deviceModel,
- }) : assert(testName != null),
- assert(driver != null),
- assert(deviceModel != null);
-
- /// The name of the test.
- ///
- /// It needs to match the folder name which the goldens resides under `test_driver/goldens`.
- final String testName;
-
- /// The `FlutterDriver` used to take the screenshots.
- final FlutterDriver driver;
-
- /// The device model of the device that the test is running on.
- final String deviceModel;
-
- /// Compares `screenshot` to the corresponding golden image. Returns true if they match.
- ///
- /// The golden image should exists at `test_driver/goldens/<testName>/<deviceModel>.png`
- /// prior to this call.
- Future<bool> compareScreenshots(List<int> screenshot) async {
- if (screenshot == null) {
- return false;
- }
- final File file = File(_getImageFilePath());
- final List<int> matcher = await file.readAsBytes();
-
- if (matcher == null) {
- return false;
- }
- return _bytesEqual(screenshot, matcher);
- }
-
- bool _bytesEqual(List<int> a, List<int> b) {
- if (a.length != b.length) {
- return false;
- }
- for (int index = 0; index < a.length; index += 1) {
- if (a[index] != b[index]) {
- return false;
- }
- }
- return true;
- }
-
- /// Returns a bytes representation of a screenshot on the current screen.
- Future<List<int>> getScreenshotAsBytes() async {
- return await driver.screenshot();
- }
-
- /// Save the `screenshot` as a golden image.
- ///
- /// The path of the image is defined as:
- /// `test_driver/goldens/<testName>/<deviceModel>.png`
- ///
- /// Can be used when recording the golden for the first time.
- Future<void> saveScreenshot(List<int> screenshot) async {
- final File file = File(_getImageFilePath());
- if (!file.existsSync()) {
- await file.writeAsBytes(screenshot);
- }
- }
-
- String _getImageFilePath() {
- return path.joinAll(<String>[_kPathParent, testName, deviceModel + '.png']);
- }
-}
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/flutter_gold_main_test.dart b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/flutter_gold_main_test.dart
deleted file mode 100644
index b8dd6ab..0000000
--- a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/flutter_gold_main_test.dart
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2014 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 'dart:async';
-import 'package:flutter_driver/flutter_driver.dart';
-import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;
-import 'package:flutter_test/src/buffer_matcher.dart';
-
-Future<void> main() async {
- FlutterDriver driver;
- String deviceModel;
-
- setUpAll(() async {
- driver = await FlutterDriver.connect();
- deviceModel = await driver.requestData('device_model');
- });
-
- tearDownAll(() => driver.close());
-
- test('A page with an image screenshot', () async {
- final SerializableFinder imagePageListTile =
- find.byValueKey('image_page');
- await driver.waitFor(imagePageListTile);
- await driver.tap(imagePageListTile);
- await driver.waitFor(find.byValueKey('red_square_image'));
- await driver.waitUntilNoTransientCallbacks();
-
- // TODO(egarciad): This is currently a no-op on LUCI.
- // https://github.com/flutter/flutter/issues/49837
- await expectLater(
- driver.screenshot(),
- bufferMatchesGoldenFile('red_square_driver_screenshot__$deviceModel.png'),
- );
-
- await driver.tap(find.byTooltip('Back'));
- });
-}
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/goldens/red_square_image/iPhone7,2.png b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/goldens/red_square_image/iPhone7,2.png
deleted file mode 100644
index 6719888..0000000
--- a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/goldens/red_square_image/iPhone7,2.png
+++ /dev/null
Binary files differ
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/main_test.dart b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/main_test.dart
index 3ec0751..bd0d1b3 100644
--- a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/main_test.dart
+++ b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/main_test.dart
@@ -5,7 +5,7 @@
import 'dart:async';
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;
-import './driver_screenshot_tester.dart';
+import 'package:flutter_test/src/buffer_matcher.dart';
Future<void> main() async {
FlutterDriver driver;
@@ -18,8 +18,8 @@
tearDownAll(() => driver.close());
+ // TODO(cyanglaz): Enable the test after https://github.com/flutter/flutter/pull/49815 lands.
test('A page with an image screenshot', () async {
-
final SerializableFinder imagePageListTile =
find.byValueKey('image_page');
await driver.waitFor(imagePageListTile);
@@ -27,10 +27,13 @@
await driver.waitFor(find.byValueKey('red_square_image'));
await driver.waitUntilNoTransientCallbacks();
- final DriverScreenShotTester tester = DriverScreenShotTester(testName: 'red_square_image', deviceModel: deviceModel, driver: driver);
- final List<int> screenShot = await tester.getScreenshotAsBytes();
- final bool compareResult = await tester.compareScreenshots(screenShot);
- expect(compareResult, true);
+ // TODO(egarciad): This is currently a no-op on LUCI.
+ // https://github.com/flutter/flutter/issues/49837
+ await expectLater(
+ driver.screenshot(),
+ bufferMatchesGoldenFile('red_square_driver_screenshot__$deviceModel.png'),
+ );
+
await driver.tap(find.byTooltip('Back'));
- });
+ }, skip: true);
}