| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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/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);
- }
- }
- 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,
- );
- });
- }
|