| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import 'package:cardash_launcher/data/models/app_entry.dart';
- import 'package:cardash_launcher/data/models/system_status.dart';
- import 'package:cardash_launcher/data/services/native_bridge.dart';
- import 'package:cardash_launcher/features/home/system_controller.dart';
- import 'package:flutter_test/flutter_test.dart';
- class _MediaPlatform implements LauncherPlatform {
- bool playing = false;
- final List<String> keys = [];
- @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(index: 8, max: 15);
- @override
- Future<void> setVolume(int index) async {}
- @override
- Future<bool> isMusicPlaying() async => playing;
- @override
- Future<bool> sendMediaKey(String action) async {
- keys.add(action);
- if (action == 'play') playing = true;
- if (action == 'pause') playing = false;
- return true;
- }
- }
- void main() {
- test('pause sends the pause key and clears playing state', () async {
- final platform = _MediaPlatform()..playing = true;
- final controller = SystemController(platform);
- await controller.start();
- addTearDown(controller.dispose);
- expect(controller.isMusicPlaying, isTrue);
- await controller.pauseMusic();
- expect(platform.keys, contains('pause'));
- expect(controller.isMusicPlaying, isFalse);
- controller.stop();
- });
- test('play resumes and reports whether audio started', () async {
- final platform = _MediaPlatform();
- final controller = SystemController(platform);
- await controller.start();
- addTearDown(controller.dispose);
- expect(controller.isMusicPlaying, isFalse);
- expect(await controller.playMusic(), isTrue);
- expect(platform.keys, contains('play'));
- expect(controller.isMusicPlaying, isTrue);
- controller.stop();
- });
- }
|