| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import 'package:cardash_launcher/core/display_controller.dart';
- import 'package:cardash_launcher/data/models/app_entry.dart';
- import 'package:cardash_launcher/data/models/media_playback.dart';
- import 'package:cardash_launcher/data/models/update_info.dart';
- import 'package:cardash_launcher/data/models/system_status.dart';
- import 'package:cardash_launcher/data/repositories/settings_repository.dart';
- import 'package:cardash_launcher/data/services/native_bridge.dart';
- import 'package:flutter_test/flutter_test.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- class _DisplayPlatform implements LauncherPlatform {
- final List<bool> calls = [];
- @override
- Future<List<AppEntry>> listApps() async => const [];
- @override
- Future<void> launchApp({
- required String packageName,
- required String activityName,
- }) async {}
- @override
- Future<bool> isDefaultHome() async => true;
- @override
- Future<bool> requestDefaultHome() async => true;
- @override
- Future<SystemStatus> getStatus() async => const SystemStatus();
- @override
- Future<VolumeInfo> getVolume() async => const VolumeInfo();
- @override
- Future<void> setVolume(int index) async {}
- @override
- Future<bool> isMusicPlaying() async => false;
- @override
- Future<bool> sendMediaKey(String action) async => true;
- @override
- Future<MediaPlayback> getMediaState() async => const MediaPlayback();
- @override
- Future<bool> openNotificationAccessSettings() async => true;
- @override
- Future<void> setKeepScreenOn(bool enabled) async {
- calls.add(enabled);
- }
- @override
- Future<bool> openUrl(String url) async => true;
- @override
- Future<UpdateInstallResult> downloadAndInstallUpdate(String url) async {
- return const UpdateInstallResult(
- started: false,
- permissionRequired: false,
- message: 'not started',
- );
- }
- }
- void main() {
- test('keeps the screen on by default and persists a change', () async {
- SharedPreferences.setMockInitialValues({});
- final prefs = await SharedPreferences.getInstance();
- final settings = SettingsRepository(prefs);
- final platform = _DisplayPlatform();
- final controller = DisplayController(platform, settings);
- addTearDown(controller.dispose);
- expect(controller.keepScreenOn, isTrue);
- await controller.initialize();
- expect(platform.calls.last, isTrue);
- await controller.setKeepScreenOn(false);
- expect(controller.keepScreenOn, isFalse);
- expect(platform.calls.last, isFalse);
- expect(SettingsRepository(prefs).keepScreenOn, isFalse);
- expect(
- DisplayController(platform, SettingsRepository(prefs)).keepScreenOn,
- isFalse,
- );
- });
- }
|