diff --git a/packages/flutter/test/scheduler/ticker_test.dart b/packages/flutter/test/scheduler/ticker_test.dart index 7e9dd1ac18d..d314878aef7 100644 --- a/packages/flutter/test/scheduler/ticker_test.dart +++ b/packages/flutter/test/scheduler/ticker_test.dart @@ -2,18 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(gspencergoog): Remove this tag once this test's state leaks/test -// dependencies have been fixed. -// https://github.com/flutter/flutter/issues/85160 -// Fails with "flutter test --test-randomize-ordering-seed=4281596210" -@Tags(['no-shuffle']) - import 'package:flutter/foundation.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { + Future setAppLifeCycleState(AppLifecycleState state) async { + final ByteData? message = + const StringCodec().encodeMessage(state.toString()); + await ServicesBinding.instance!.defaultBinaryMessenger + .handlePlatformMessage('flutter/lifecycle', message, (_) {}); + } + testWidgets('Ticker mute control test', (WidgetTester tester) async { int tickCount = 0; void handleTick(Duration duration) { @@ -154,17 +155,18 @@ void main() { expect(ticker.isActive, isTrue); expect(tickCount, equals(0)); - final ByteData? message = const StringCodec().encodeMessage('AppLifecycleState.paused'); - await ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage('flutter/lifecycle', message, (_) { }); + setAppLifeCycleState(AppLifecycleState.paused); + expect(ticker.isTicking, isFalse); expect(ticker.isActive, isTrue); ticker.stop(); + + setAppLifeCycleState(AppLifecycleState.resumed); }); testWidgets('Ticker can be created before application unpauses', (WidgetTester tester) async { - final ByteData? pausedMessage = const StringCodec().encodeMessage('AppLifecycleState.paused'); - await ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage('flutter/lifecycle', pausedMessage, (_) { }); + setAppLifeCycleState(AppLifecycleState.paused); int tickCount = 0; void handleTick(Duration duration) { @@ -182,8 +184,7 @@ void main() { expect(tickCount, equals(0)); expect(ticker.isTicking, isFalse); - final ByteData? resumedMessage = const StringCodec().encodeMessage('AppLifecycleState.resumed'); - await ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage('flutter/lifecycle', resumedMessage, (_) { }); + setAppLifeCycleState(AppLifecycleState.resumed); await tester.pump(const Duration(milliseconds: 10));