Handle next at end of playlist properly
This commit is contained in:
parent
83e8fba854
commit
827305ad00
@ -73,7 +73,10 @@ class GStreamerPlaybackController(BasePlaybackController):
|
||||
def next(self):
|
||||
playlist = self.backend.current_playlist.playlist
|
||||
|
||||
self.playlist_position += 1
|
||||
self.current_track = playlist.tracks[self.playlist_position]
|
||||
if self.playlist_position + 1 >= len(playlist.tracks):
|
||||
self.stop()
|
||||
else:
|
||||
self.playlist_position += 1
|
||||
self.current_track = playlist.tracks[self.playlist_position]
|
||||
|
||||
self.play()
|
||||
self.play()
|
||||
|
||||
@ -203,3 +203,21 @@ class BasePlaybackControllerTest(object):
|
||||
def test_next_triggers_playback(self):
|
||||
self.playback.next()
|
||||
self.assertEqual(self.playback.state, self.playback.PLAYING)
|
||||
|
||||
@populate_playlist
|
||||
def test_next_at_end_of_playlist(self):
|
||||
playback = self.backend.playback
|
||||
tracks = self.backend.current_playlist.playlist.tracks
|
||||
|
||||
playback.play()
|
||||
|
||||
for i, track in enumerate(tracks):
|
||||
self.assertEqual(playback.state, playback.PLAYING)
|
||||
self.assertEqual(playback.current_track, track)
|
||||
self.assertEqual(playback.playlist_position, i)
|
||||
|
||||
playback.next()
|
||||
|
||||
self.assertEqual(playback.state, playback.STOPPED)
|
||||
self.assertEqual(playback.current_track, tracks[-1])
|
||||
self.assertEqual(playback.playlist_position, len(tracks) - 1)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user