Skip to content

Commit

Permalink
Revert "Remove package:image dependency (#115674)" (#115680)
Browse files Browse the repository at this point in the history
This reverts commit cf2c9f6.
  • Loading branch information
christopherfujino authored Nov 19, 2022
1 parent 46d868c commit 0fc4a3e
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
5 changes: 4 additions & 1 deletion dev/integration_tests/ui/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ environment:
# It can probably be removed, see the comment in that file.

dependencies:
image: 3.2.2
flutter:
sdk: flutter
flutter_driver:
Expand Down Expand Up @@ -42,6 +43,7 @@ dependencies:
node_preamble: 2.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
package_config: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path: 1.8.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 5.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 2.1.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
Expand All @@ -64,6 +66,7 @@ dependencies:
web_socket_channel: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
webdriver: 3.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
webkit_inspection_protocol: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
xml: 6.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
yaml: 3.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"

dev_dependencies:
Expand All @@ -79,4 +82,4 @@ flutter:
assets:
- assets/foo.png

# PUBSPEC CHECKSUM: 691e
# PUBSPEC CHECKSUM: 321a
53 changes: 53 additions & 0 deletions dev/integration_tests/ui/test_driver/screenshot_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// 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.

// This test is used by devicelab, test "integration_ui_ios_screenshot".
// Its use of package:image is, at the time of writing, the only use of that
// package in this repository. If package:image is a problem, it is probably
// fine to just remove this test since the value of the test is probably not
// as much as the cost of the dependency.

import 'package:flutter_driver/flutter_driver.dart';
import 'package:image/image.dart';

import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;

void main() {
group('FlutterDriver', () {
late FlutterDriver driver;

setUpAll(() async {
driver = await FlutterDriver.connect();
});

tearDownAll(() async {
await driver.close();
});

test('should take screenshot', () async {
final SerializableFinder toggleBtn = find.byValueKey('toggle');
// Cards use a magic background color that we look for in the screenshots.
final Matcher cardsAreVisible = contains(getColor(0xff, 0x01, 0x02));
await driver.waitFor(toggleBtn);

bool cardsShouldBeVisible = false;
Image? imageBefore = decodePng(await driver.screenshot());
for (int i = 0; i < 10; i += 1) {
await driver.tap(toggleBtn);
cardsShouldBeVisible = !cardsShouldBeVisible;
final Image? imageAfter = decodePng(await driver.screenshot());

if (cardsShouldBeVisible) {
expect(imageBefore?.data, isNot(cardsAreVisible));
expect(imageAfter?.data, cardsAreVisible);
} else {
expect(imageBefore?.data, cardsAreVisible);
expect(imageAfter?.data, isNot(cardsAreVisible));
}

imageBefore = imageAfter;
}
}, timeout: Timeout.none);
});
}

0 comments on commit 0fc4a3e

Please sign in to comment.