40 lines
1.2 KiB
Dart
40 lines
1.2 KiB
Dart
// Author: fruit.com.cn
|
|
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:fruitshorts/core/data/services/locale_controller.dart';
|
|
import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart';
|
|
import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart';
|
|
|
|
void main() {
|
|
setUp(() {
|
|
SharedPreferencesAsyncPlatform.instance =
|
|
InMemorySharedPreferencesAsync.empty();
|
|
});
|
|
|
|
test('should_restore_saved_locale_when_controller_loads', () async {
|
|
SharedPreferencesAsyncPlatform.instance =
|
|
InMemorySharedPreferencesAsync.withData({
|
|
LocaleController.preferenceKey: 'zh',
|
|
});
|
|
final controller = LocaleController();
|
|
|
|
await controller.load();
|
|
|
|
expect(controller.locale?.languageCode, 'zh');
|
|
controller.dispose();
|
|
});
|
|
|
|
test('should_persist_selected_locale_for_next_launch', () async {
|
|
final controller = LocaleController();
|
|
await controller.select(const Locale('id'));
|
|
|
|
final restored = LocaleController();
|
|
await restored.load();
|
|
|
|
expect(restored.locale?.languageCode, 'id');
|
|
controller.dispose();
|
|
restored.dispose();
|
|
});
|
|
}
|