media_playback_test.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import 'package:cardash_launcher/data/models/media_playback.dart';
  2. import 'package:flutter_test/flutter_test.dart';
  3. void main() {
  4. test('parses media session metadata and progress', () {
  5. final media = MediaPlayback.fromMap({
  6. 'hasAccess': true,
  7. 'hasSession': true,
  8. 'playing': true,
  9. 'title': 'Night Drive',
  10. 'artist': 'The Dashboard',
  11. 'durationMs': 240000,
  12. 'positionMs': 60000,
  13. });
  14. expect(media.hasTitle, isTrue);
  15. expect(media.displayTitle, 'Night Drive — The Dashboard');
  16. expect(media.progress, 0.25);
  17. expect(media.playing, isTrue);
  18. expect(media.hasAccess, isTrue);
  19. });
  20. test('empty media state has no title or progress', () {
  21. const media = MediaPlayback();
  22. expect(media.hasTitle, isFalse);
  23. expect(media.displayTitle, isNull);
  24. expect(media.progress, 0);
  25. });
  26. test('progress is clamped for a malformed duration position', () {
  27. const media = MediaPlayback(durationMs: 1000, positionMs: 4000);
  28. expect(media.progress, 1.0);
  29. });
  30. }