45 lines
1.8 KiB
Dart
45 lines
1.8 KiB
Dart
// 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>[
|
|
AppLifecycleState.detached,
|
|
AppLifecycleState.resumed,
|
|
AppLifecycleState.inactive,
|
|
AppLifecycleState.hidden,
|
|
AppLifecycleState.paused,
|
|
]),
|
|
);
|
|
});
|
|
}
|