import 'package:audio_session/audio_session.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:melo/player/headphone_autoplay.dart'; void main() { group('shouldAutoPlay', () { test('startet bei verbundenem Bluetooth-Kopfhörer', () { expect( shouldAutoPlay( added: {AudioDeviceType.bluetoothA2dp}, enabled: true, hasQueue: true, playing: false, ), isTrue, ); }); test('startet auch bei Klinken-Kopfhörern', () { for (final type in [ AudioDeviceType.wiredHeadset, AudioDeviceType.wiredHeadphones, ]) { expect( shouldAutoPlay( added: {type}, enabled: true, hasQueue: true, playing: false, ), isTrue, reason: '$type', ); } }); test('ignoriert andere Geräte wie den eingebauten Lautsprecher', () { expect( shouldAutoPlay( added: {AudioDeviceType.builtInSpeaker}, enabled: true, hasQueue: true, playing: false, ), isFalse, ); }); test('startet nicht, wenn die Einstellung aus ist', () { expect( shouldAutoPlay( added: {AudioDeviceType.bluetoothA2dp}, enabled: false, hasQueue: true, playing: false, ), isFalse, ); }); test('startet nicht ohne Warteschlange', () { expect( shouldAutoPlay( added: {AudioDeviceType.bluetoothA2dp}, enabled: true, hasQueue: false, playing: false, ), isFalse, ); }); test('unterbricht nicht die bereits laufende Wiedergabe', () { expect( shouldAutoPlay( added: {AudioDeviceType.bluetoothA2dp}, enabled: true, hasQueue: true, playing: true, ), isFalse, ); }); }); }