Files
pluriwave/test/servicios/musica_local_auto_test.dart
T
FreeTLab 6ae7e378c4 feat(auto): browse and play local music folders in Android Auto [size:exception]
Phase 1: pick a device folder via SAF (persisted grant, no new
permission), browse its nested subfolders/tracks as a 5th Android
Auto root folder (hidden until configured), and play tracks through
the existing pipeline (EQ, art rotation, cold-start-safe source).
No metadata/sort/filter/shuffle yet -- filename is the title, generic
rotating art is the placeholder; deferred to a follow-up phase.

Adds a new pluriwave/file_actions native method (listAudioChildren)
and an onActivityResult override in MainActivity for the SAF folder
picker -- both static-review-only, no Android build available here.
2026-07-19 20:30:50 +02:00

42 lines
1.4 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:pluriwave/servicios/musica_local_auto.dart';
void main() {
group('esArchivoAudio', () {
test('acepta cualquier MIME audio/*, en cualquier capitalización', () {
expect(esArchivoAudio('audio/mpeg', 'cancion.mp3'), isTrue);
expect(esArchivoAudio('audio/flac', 'cancion.flac'), isTrue);
expect(esArchivoAudio('AUDIO/OGG', 'cancion.ogg'), isTrue);
});
test(
'rechaza MIME no-audio aunque el nombre tenga una extensión de '
'audio (defensa contra un MIME nativo incorrecto)',
() {
expect(esArchivoAudio('video/mp4', 'cancion.mp3'), isFalse);
expect(
esArchivoAudio('application/octet-stream', 'cancion.mp3'),
isFalse,
);
expect(esArchivoAudio('text/plain', 'notas.mp3'), isFalse);
},
);
test('rechaza MIME null, vacío o en blanco', () {
expect(esArchivoAudio(null, 'cancion.mp3'), isFalse);
expect(esArchivoAudio('', 'cancion.mp3'), isFalse);
expect(esArchivoAudio(' ', 'cancion.mp3'), isFalse);
});
test(
'rechaza nombre null, vacío o en blanco aunque el MIME sea audio '
'válido',
() {
expect(esArchivoAudio('audio/mpeg', null), isFalse);
expect(esArchivoAudio('audio/mpeg', ''), isFalse);
expect(esArchivoAudio('audio/mpeg', ' '), isFalse);
},
);
});
}