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):
|
def next(self):
|
||||||
playlist = self.backend.current_playlist.playlist
|
playlist = self.backend.current_playlist.playlist
|
||||||
|
|
||||||
self.playlist_position += 1
|
if self.playlist_position + 1 >= len(playlist.tracks):
|
||||||
self.current_track = playlist.tracks[self.playlist_position]
|
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):
|
def test_next_triggers_playback(self):
|
||||||
self.playback.next()
|
self.playback.next()
|
||||||
self.assertEqual(self.playback.state, self.playback.PLAYING)
|
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