From d1eff7f4e38cfd85920fb464a77abbac4a3acb40 Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Tue, 3 Aug 2021 10:40:05 -0700 Subject: [PATCH] Add Cupterino button animation test (#87535) --- .../flutter/test/cupertino/button_test.dart | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/flutter/test/cupertino/button_test.dart b/packages/flutter/test/cupertino/button_test.dart index e4b51b4141..3055e2e603 100644 --- a/packages/flutter/test/cupertino/button_test.dart +++ b/packages/flutter/test/cupertino/button_test.dart @@ -194,6 +194,38 @@ void main() { expect(SchedulerBinding.instance!.transientCallbackCount, equals(0)); }); + testWidgets('Enabled button animates', (WidgetTester tester) async { + await tester.pumpWidget(boilerplate(child: CupertinoButton( + child: const Text('Tap me'), + onPressed: () { }, + ))); + + await tester.tap(find.byType(CupertinoButton)); + // Enter animation. + await tester.pump(); + FadeTransition transition = tester.firstWidget(find.byType(FadeTransition)); + + await tester.pump(const Duration(milliseconds: 25)); + transition = tester.firstWidget(find.byType(FadeTransition)); + expect(transition.opacity.value, moreOrLessEquals(0.4, epsilon: 0.001)); + + await tester.pump(const Duration(milliseconds: 25)); + transition = tester.firstWidget(find.byType(FadeTransition)); + expect(transition.opacity.value, moreOrLessEquals(0.437, epsilon: 0.001)); + + await tester.pump(const Duration(milliseconds: 25)); + transition = tester.firstWidget(find.byType(FadeTransition)); + expect(transition.opacity.value, moreOrLessEquals(0.55, epsilon: 0.001)); + + await tester.pump(const Duration(milliseconds: 25)); + transition = tester.firstWidget(find.byType(FadeTransition)); + expect(transition.opacity.value, moreOrLessEquals(0.737, epsilon: 0.001)); + + await tester.pump(const Duration(milliseconds: 25)); + transition = tester.firstWidget(find.byType(FadeTransition)); + expect(transition.opacity.value, moreOrLessEquals(1.0, epsilon: 0.001)); + }); + testWidgets('pressedOpacity defaults to 0.1', (WidgetTester tester) async { await tester.pumpWidget(boilerplate(child: CupertinoButton( child: const Text('Tap me'),