diff --git a/.ci.yaml b/.ci.yaml index 35d4b2ec200..19fe006c1a1 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -140,6 +140,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] add_recipes_cq: "true" target_file: dart_unit_tests.yaml channel: master @@ -155,6 +159,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: dart_unit_tests.yaml channel: master version_file: flutter_master.version @@ -169,6 +177,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: dart_unit_tests.yaml channel: stable version_file: flutter_stable.version @@ -183,6 +195,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: dart_unit_tests.yaml channel: stable version_file: flutter_stable.version @@ -197,6 +213,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] add_recipes_cq: "true" target_file: web_dart_unit_tests.yaml channel: master @@ -212,6 +232,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: web_dart_unit_tests.yaml channel: master version_file: flutter_master.version @@ -226,6 +250,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: web_dart_unit_tests.yaml channel: stable version_file: flutter_stable.version @@ -240,6 +268,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: web_dart_unit_tests.yaml channel: stable version_file: flutter_stable.version @@ -255,6 +287,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] add_recipes_cq: "true" target_file: web_dart_unit_tests_wasm.yaml channel: master @@ -270,6 +306,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: web_dart_unit_tests_wasm.yaml channel: master version_file: flutter_master.version @@ -1316,6 +1356,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: windows_dart_unit_tests.yaml channel: master version_file: flutter_master.version @@ -1330,6 +1374,10 @@ targets: recipe: packages/packages timeout: 60 properties: + dependencies: >- + [ + {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"} + ] target_file: windows_dart_unit_tests.yaml channel: master version_file: flutter_master.version diff --git a/packages/two_dimensional_scrollables/pubspec.yaml b/packages/two_dimensional_scrollables/pubspec.yaml index 2bec6d65939..3e980144541 100644 --- a/packages/two_dimensional_scrollables/pubspec.yaml +++ b/packages/two_dimensional_scrollables/pubspec.yaml @@ -13,6 +13,8 @@ dependencies: sdk: flutter dev_dependencies: + flutter_goldens: + sdk: flutter flutter_test: sdk: flutter diff --git a/packages/two_dimensional_scrollables/test/common/span_test.dart b/packages/two_dimensional_scrollables/test/common/span_test.dart index eb3fbe18fda..2614dfbfbcb 100644 --- a/packages/two_dimensional_scrollables/test/common/span_test.dart +++ b/packages/two_dimensional_scrollables/test/common/span_test.dart @@ -8,6 +8,19 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:two_dimensional_scrollables/two_dimensional_scrollables.dart'; void main() { + +testWidgets('Inconsequential golden test', (WidgetTester tester) async { + // The test validates the Flutter Gold integration. Any changes to the + // golden file can be approved at any time. + await tester.pumpWidget(RepaintBoundary(child: Container(color: const Color(0xAFF61145)))); + + await tester.pumpAndSettle(); + await expectLater( + find.byType(RepaintBoundary), + matchesGoldenFile('inconsequential_golden_file.png'), + ); + }); + group('SpanExtent', () { test('FixedSpanExtent', () { var extent = const FixedSpanExtent(150); diff --git a/packages/two_dimensional_scrollables/test/flutter_test_config.dart b/packages/two_dimensional_scrollables/test/flutter_test_config.dart new file mode 100644 index 00000000000..f8faa41b4f2 --- /dev/null +++ b/packages/two_dimensional_scrollables/test/flutter_test_config.dart @@ -0,0 +1,22 @@ +// 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. + + +// Initial testing of instance only, not for merging. +// Plenty to do next (if this works): +// - verify service accounts used by Luci in pre/post submit tests in flutter/packages, auth works +// - Get new Gold frontend up +// - document how to enable golden file testing for a package +// - update flutter/cocoon to add flutter-gold check for triage + +import 'dart:async'; + +import 'goldens_io.dart' + if (dart.library.js_interop) 'goldens_web.dart' + as flutter_goldens; + +Future testExecutable(FutureOr Function() testMain) { + // Enable golden file testing using Skia Gold. + return flutter_goldens.testExecutable(testMain, namePrefix: 'two_dimensional_scrollables'); +} diff --git a/packages/two_dimensional_scrollables/test/goldens_io.dart b/packages/two_dimensional_scrollables/test/goldens_io.dart new file mode 100644 index 00000000000..d552235d690 --- /dev/null +++ b/packages/two_dimensional_scrollables/test/goldens_io.dart @@ -0,0 +1,5 @@ +// 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. + +export 'package:flutter_goldens/flutter_goldens.dart' show testExecutable; diff --git a/packages/two_dimensional_scrollables/test/goldens_web.dart b/packages/two_dimensional_scrollables/test/goldens_web.dart new file mode 100644 index 00000000000..1b4a8a2af31 --- /dev/null +++ b/packages/two_dimensional_scrollables/test/goldens_web.dart @@ -0,0 +1,9 @@ +// 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'; + +// package:flutter_goldens is not used as part of the test process for web. +Future testExecutable(FutureOr Function() testMain, {String? namePrefix}) async => + testMain();