// 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:ui'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('initialLifecycleState is used to init state paused', (WidgetTester tester) async { final TestWidgetsFlutterBinding binding = tester.binding; binding.resetInternalState(); // Use paused as the initial state. binding.platformDispatcher.initialLifecycleStateTestValue = 'AppLifecycleState.paused'; binding.readTestInitialLifecycleStateFromNativeWindow(); // Re-attempt the initialization. // The lifecycleState should now be the state we passed above, // even though no lifecycle event was fired from the platform. expect(binding.lifecycleState.toString(), equals('AppLifecycleState.paused')); }); testWidgets('Handles all of the allowed states of AppLifecycleState', ( WidgetTester tester, ) async { final TestWidgetsFlutterBinding binding = tester.binding; for (final AppLifecycleState state in AppLifecycleState.values) { binding.resetInternalState(); binding.platformDispatcher.initialLifecycleStateTestValue = state.toString(); binding.readTestInitialLifecycleStateFromNativeWindow(); expect(ServicesBinding.instance.lifecycleState.toString(), equals(state.toString())); } }); test('AppLifecycleState values are in the right order for the state machine to be correct', () { expect( AppLifecycleState.values, equals([ AppLifecycleState.detached, AppLifecycleState.resumed, AppLifecycleState.inactive, AppLifecycleState.hidden, AppLifecycleState.paused, ]), ); }); }