From 3eecfac9f186b3bcfe9a9f3df050d556f5803e72 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 5 Jun 2011 15:56:24 +0200 Subject: [PATCH] Test state changes on mpris.Previous() --- mopidy/frontends/mpris.py | 11 +++-- .../frontends/mpris/player_interface_test.py | 44 ++++++++++++++++--- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/mopidy/frontends/mpris.py b/mopidy/frontends/mpris.py index 53ee3dcd..02628c7e 100644 --- a/mopidy/frontends/mpris.py +++ b/mopidy/frontends/mpris.py @@ -266,6 +266,11 @@ class MprisObject(dbus.service.Object): logger.debug(u'%s.Next called', PLAYER_IFACE) self.backend.playback.next().get() + @dbus.service.method(dbus_interface=PLAYER_IFACE) + def Previous(self): + logger.debug(u'%s.Previous called', PLAYER_IFACE) + self.backend.playback.previous().get() + @dbus.service.method(dbus_interface=PLAYER_IFACE) def OpenUri(self, uri): logger.debug(u'%s.OpenUri called', PLAYER_IFACE) @@ -302,12 +307,6 @@ class MprisObject(dbus.service.Object): # XXX Proof of concept only. Throw away, write tests, reimplement: self.backend.playback.pause().get() - @dbus.service.method(dbus_interface=PLAYER_IFACE) - def Previous(self): - logger.debug(u'%s.Previous called', PLAYER_IFACE) - # TODO keep playback.state unchanged - self.backend.playback.previous().get() - @dbus.service.method(dbus_interface=PLAYER_IFACE) def Seek(self, offset): logger.debug(u'%s.Seek called', PLAYER_IFACE) diff --git a/tests/frontends/mpris/player_interface_test.py b/tests/frontends/mpris/player_interface_test.py index df6988c8..3f61fbbe 100644 --- a/tests/frontends/mpris/player_interface_test.py +++ b/tests/frontends/mpris/player_interface_test.py @@ -109,13 +109,6 @@ class PlayerInterfaceTest(unittest.TestCase): self.assertEquals(self.backend.playback.current_track.get().uri, 'b') self.assertEquals(self.backend.playback.state.get(), STOPPED) - def test_pause_when_playing_should_pause_playback(self): - self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) - self.backend.playback.play() - self.assertEquals(self.backend.playback.state.get(), PLAYING) - self.mpris.Pause() - self.assertEquals(self.backend.playback.state.get(), PAUSED) - def test_previous_when_playing_should_skip_to_prev_track_and_keep_playing(self): self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) self.backend.playback.play() @@ -126,6 +119,43 @@ class PlayerInterfaceTest(unittest.TestCase): self.assertEquals(self.backend.playback.current_track.get().uri, 'a') self.assertEquals(self.backend.playback.state.get(), PLAYING) + def test_previous_when_at_start_of_list_should_stop_playback(self): + self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) + self.backend.playback.play() + self.assertEquals(self.backend.playback.current_track.get().uri, 'a') + self.assertEquals(self.backend.playback.state.get(), PLAYING) + self.mpris.Previous() + self.assertEquals(self.backend.playback.state.get(), STOPPED) + + def test_previous_when_paused_should_skip_to_previous_track_and_stay_paused(self): + self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) + self.backend.playback.play() + self.backend.playback.next() + self.backend.playback.pause() + self.assertEquals(self.backend.playback.current_track.get().uri, 'b') + self.assertEquals(self.backend.playback.state.get(), PAUSED) + self.mpris.Previous() + self.assertEquals(self.backend.playback.current_track.get().uri, 'a') + self.assertEquals(self.backend.playback.state.get(), PAUSED) + + def test_previous_when_stopped_should_skip_to_previous_track_and_stay_stopped(self): + self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) + self.backend.playback.play() + self.backend.playback.next() + self.backend.playback.stop() + self.assertEquals(self.backend.playback.current_track.get().uri, 'b') + self.assertEquals(self.backend.playback.state.get(), STOPPED) + self.mpris.Previous() + self.assertEquals(self.backend.playback.current_track.get().uri, 'a') + self.assertEquals(self.backend.playback.state.get(), STOPPED) + + def test_pause_when_playing_should_pause_playback(self): + self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) + self.backend.playback.play() + self.assertEquals(self.backend.playback.state.get(), PLAYING) + self.mpris.Pause() + self.assertEquals(self.backend.playback.state.get(), PAUSED) + def test_stop_when_playing_should_stop_playback(self): self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) self.backend.playback.play()