Update unit tests.

This commit is contained in:
Ryan Heise 2020-12-16 20:20:20 +11:00
parent 8a3fb7caa4
commit 0aa5e603dc
2 changed files with 49 additions and 5 deletions

View File

@ -711,11 +711,12 @@ class AudioPlayer {
/// decoders alive so that the app can quickly resume audio playback. /// decoders alive so that the app can quickly resume audio playback.
Future<void> stop() async { Future<void> stop() async {
if (_disposed) return; if (_disposed) return;
_setPlatformActive(false); final future = _setPlatformActive(false);
_playInterrupted = false; _playInterrupted = false;
// Update local state immediately so that queries aren't surprised. // Update local state immediately so that queries aren't surprised.
_playingSubject.add(false); _playingSubject.add(false);
await future;
} }
/// Sets the volume of this player, where 1.0 is normal volume. /// Sets the volume of this player, where 1.0 is normal volume.

View File

@ -63,7 +63,7 @@ void runTests() {
test('init', () async { test('init', () async {
final player = AudioPlayer(); final player = AudioPlayer();
expect(player.processingState, equals(ProcessingState.none)); expect(player.processingState, equals(ProcessingState.idle));
expect(player.position, equals(Duration.zero)); expect(player.position, equals(Duration.zero));
//expect(player.bufferedPosition, equals(Duration.zero)); //expect(player.bufferedPosition, equals(Duration.zero));
expect(player.duration, equals(null)); expect(player.duration, equals(null));
@ -337,7 +337,7 @@ void runTests() {
equals(['a', 'a', 'b', 'c'])); equals(['a', 'a', 'b', 'c']));
final source2 = ConcatenatingAudioSource(children: []); final source2 = ConcatenatingAudioSource(children: []);
final player = AudioPlayer(); final player = AudioPlayer();
await player.load(source2); await player.setAudioSource(source2);
expect(source2.sequence.length, equals(0)); expect(source2.sequence.length, equals(0));
await source2 await source2
.add(AudioSource.uri(Uri.parse('https://b.b/b.mp3'), tag: 'b')); .add(AudioSource.uri(Uri.parse('https://b.b/b.mp3'), tag: 'b'));
@ -463,7 +463,7 @@ void runTests() {
expect(source1.shuffleIndices.skipWhile((i) => i != 0).skip(1).first, expect(source1.shuffleIndices.skipWhile((i) => i != 0).skip(1).first,
equals(1)); equals(1));
final player1 = AudioPlayer(); final player1 = AudioPlayer();
await player1.load(source1); await player1.setAudioSource(source1);
checkIndices(player1.shuffleIndices, 5); checkIndices(player1.shuffleIndices, 5);
expect(player1.shuffleIndices.first, equals(0)); expect(player1.shuffleIndices.first, equals(0));
await player1.seek(Duration.zero, index: 3); await player1.seek(Duration.zero, index: 3);
@ -473,10 +473,51 @@ void runTests() {
final source2 = createSource(); final source2 = createSource();
final player2 = AudioPlayer(); final player2 = AudioPlayer();
await player2.load(source2, initialIndex: 3); await player2.setAudioSource(source2, initialIndex: 3);
checkIndices(player2.shuffleIndices, 5); checkIndices(player2.shuffleIndices, 5);
expect(player2.shuffleIndices.first, equals(3)); expect(player2.shuffleIndices.first, equals(3));
}); });
test('stop', () async {
final source = ConcatenatingAudioSource(
shuffleOrder: DefaultShuffleOrder(random: Random(1001)),
children: [
AudioSource.uri(
Uri.parse("https://bar.bar/foo.mp3"),
tag: 'foo',
),
AudioSource.uri(
Uri.parse("https://baz.baz/bar.mp3"),
tag: 'bar',
),
],
);
final player = AudioPlayer();
expect(player.processingState, ProcessingState.idle);
await player.setAudioSource(source, preload: false);
expect(player.processingState, ProcessingState.idle);
await player.load();
expect(player.processingState, ProcessingState.ready);
await player.seek(Duration(seconds: 5), index: 1);
await player.setVolume(0.5);
await player.setSpeed(0.7);
await player.setShuffleModeEnabled(true);
await player.setLoopMode(LoopMode.one);
await player.stop();
expect(player.processingState, ProcessingState.idle);
expect(player.position, Duration(seconds: 5));
expect(player.volume, 0.5);
expect(player.speed, 0.7);
expect(player.shuffleModeEnabled, true);
expect(player.loopMode, LoopMode.one);
await player.load();
expect(player.processingState, ProcessingState.ready);
expect(player.position, Duration(seconds: 5));
expect(player.volume, 0.5);
expect(player.speed, 0.7);
expect(player.shuffleModeEnabled, true);
expect(player.loopMode, LoopMode.one);
});
} }
class MockJustAudio extends Mock class MockJustAudio extends Mock
@ -660,6 +701,8 @@ class MockAudioPlayer implements AudioPlayerPlatform {
@override @override
Future<DisposeResponse> dispose(DisposeRequest request) async { Future<DisposeResponse> dispose(DisposeRequest request) async {
_processingState = ProcessingStateMessage.idle;
_broadcastPlaybackEvent();
return DisposeResponse(); return DisposeResponse();
} }