From b3dc24ccc6a17abdfd4218ba903854c42fb28a8f Mon Sep 17 00:00:00 2001 From: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com> Date: Fri, 21 Jun 2024 01:55:07 +0800 Subject: [PATCH] Add test for inherited_notifier.0.dart (#150344) Contributes to https://github.com/flutter/flutter/issues/130459 It adds a test for - `examples/api/lib/widgets/inherited_notifier/inherited_notifier.0.dart` --- dev/bots/check_code_samples.dart | 1 - .../inherited_notifier.0_test.dart | 60 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index d09dd68d73..1d076a6ebb 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -385,7 +385,6 @@ final Set _knownMissingTests = { 'examples/api/test/widgets/color_filter/color_filtered.0_test.dart', 'examples/api/test/widgets/focus_scope/focus_scope.0_test.dart', 'examples/api/test/widgets/scroll_view/custom_scroll_view.1_test.dart', - 'examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart', 'examples/api/test/animation/curves/curve2_d.0_test.dart', 'examples/api/test/gestures/pointer_signal_resolver/pointer_signal_resolver.0_test.dart', }; diff --git a/examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart b/examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart new file mode 100644 index 0000000000..34c4c89692 --- /dev/null +++ b/examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart @@ -0,0 +1,60 @@ +// 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:math' as math; + +import 'package:flutter/material.dart'; +import 'package:flutter_api_samples/widgets/inherited_notifier/inherited_notifier.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('It rotates the spinners', (WidgetTester tester) async { + await tester.pumpWidget( + const example.InheritedNotifierExampleApp(), + ); + + final Iterable widgets = tester.widgetList( + find.ancestor( + of: find.text('Whee!'), + matching: find.byType(Transform), + ), + ); + + Matcher transformMatcher(Matrix4 matrix) { + return everyElement(isA().having((Transform widget) => widget.transform, 'transform', matrix)); + } + + expect(widgets, transformMatcher(Matrix4.identity())); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(0.2 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(0.4 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(0.6 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(0.8 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.identity()..storage[0] = -1..storage[5] = -1)); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(1.2 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(1.4 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(1.6 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.rotationZ(1.8 * math.pi))); + + await tester.pump(const Duration(seconds: 1)); + expect(widgets, transformMatcher(Matrix4.identity())); + }); +}