@@ -194,6 +194,38 @@ void main() {
194194 expect (SchedulerBinding .instance! .transientCallbackCount, equals (0 ));
195195 });
196196
197+ testWidgets ('Enabled button animates' , (WidgetTester tester) async {
198+ await tester.pumpWidget (boilerplate (child: CupertinoButton (
199+ child: const Text ('Tap me' ),
200+ onPressed: () { },
201+ )));
202+
203+ await tester.tap (find.byType (CupertinoButton ));
204+ // Enter animation.
205+ await tester.pump ();
206+ FadeTransition transition = tester.firstWidget (find.byType (FadeTransition ));
207+
208+ await tester.pump (const Duration (milliseconds: 25 ));
209+ transition = tester.firstWidget (find.byType (FadeTransition ));
210+ expect (transition.opacity.value, moreOrLessEquals (0.4 , epsilon: 0.001 ));
211+
212+ await tester.pump (const Duration (milliseconds: 25 ));
213+ transition = tester.firstWidget (find.byType (FadeTransition ));
214+ expect (transition.opacity.value, moreOrLessEquals (0.437 , epsilon: 0.001 ));
215+
216+ await tester.pump (const Duration (milliseconds: 25 ));
217+ transition = tester.firstWidget (find.byType (FadeTransition ));
218+ expect (transition.opacity.value, moreOrLessEquals (0.55 , epsilon: 0.001 ));
219+
220+ await tester.pump (const Duration (milliseconds: 25 ));
221+ transition = tester.firstWidget (find.byType (FadeTransition ));
222+ expect (transition.opacity.value, moreOrLessEquals (0.737 , epsilon: 0.001 ));
223+
224+ await tester.pump (const Duration (milliseconds: 25 ));
225+ transition = tester.firstWidget (find.byType (FadeTransition ));
226+ expect (transition.opacity.value, moreOrLessEquals (1.0 , epsilon: 0.001 ));
227+ });
228+
197229 testWidgets ('pressedOpacity defaults to 0.1' , (WidgetTester tester) async {
198230 await tester.pumpWidget (boilerplate (child: CupertinoButton (
199231 child: const Text ('Tap me' ),
0 commit comments