diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 2adc2398..3ff5f6a5 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -114,6 +114,9 @@ class BasePlaybackController(object): def next(self): raise NotImplementedError + def pause(self): + raise NotImplementedError + @property def next_track(self): playlist = self.backend.current_playlist.playlist diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index 7c474bd8..0ad631e8 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -77,6 +77,10 @@ class GStreamerPlaybackController(BasePlaybackController): def stop(self): self.bin.set_state(gst.STATE_NULL) + def pause(self): + if self.state == self.PLAYING: + self.bin.set_state(gst.STATE_PAUSED) + def next(self): playlist = self.backend.current_playlist.playlist diff --git a/tests/backends/basetests.py b/tests/backends/basetests.py index b25dc5d8..5dbebf77 100644 --- a/tests/backends/basetests.py +++ b/tests/backends/basetests.py @@ -349,20 +349,34 @@ class BasePlaybackControllerTest(object): def test_new_playlist_loaded_callback(self): raise NotImplementedError + @populate_playlist def test_pause_when_stopped(self): - raise NotImplementedError + self.playback.pause() + self.assertEqual(self.playback.state, self.playback.STOPPED) + @populate_playlist def test_pause_when_playing(self): - raise NotImplementedError + self.playback.play() + self.playback.pause() + self.assertEqual(self.playback.state, self.playback.PAUSED) + @populate_playlist def test_pause_when_paused(self): - raise NotImplementedError + self.playback.play() + self.playback.pause() + self.playback.pause() + self.assertEqual(self.playback.state, self.playback.PAUSED) + @populate_playlist def test_resume_when_stopped(self): - raise NotImplementedError + self.playback.resume() + self.assertEqual(self.playback.state, self.playback.PLAYING) + @populate_playlist def test_resume_when_playing(self): - raise NotImplementedError + self.playback.play() + self.playback.resume() + self.assertEqual(self.playback.state, self.playback.PLAYING) def test_resume_when_paused(self): raise NotImplementedError