Test and implement mpris.PlayPause()
This commit is contained in:
parent
1e73e7bbf7
commit
8bea548518
@ -248,14 +248,13 @@ class MprisObject(dbus.service.Object):
|
||||
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
||||
def PlayPause(self):
|
||||
logger.debug(u'%s.PlayPause called', PLAYER_IFACE)
|
||||
|
||||
# TODO Pseudo code:
|
||||
# if playback.state == playback.PLAYING: playback.pause()
|
||||
# elif playback.state == playback.PAUSED: playback.resume()
|
||||
# elif playback.state == playback.STOPPED: playback.play()
|
||||
|
||||
# XXX Proof of concept only. Throw away, write tests, reimplement:
|
||||
self.backend.playback.pause().get()
|
||||
state = self.backend.playback.state.get()
|
||||
if state == PlaybackController.PLAYING:
|
||||
self.backend.playback.pause().get()
|
||||
elif state == PlaybackController.PAUSED:
|
||||
self.backend.playback.resume().get()
|
||||
elif state == PlaybackController.STOPPED:
|
||||
self.backend.playback.play().get()
|
||||
|
||||
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
||||
def Stop(self):
|
||||
|
||||
@ -161,6 +161,34 @@ class PlayerInterfaceTest(unittest.TestCase):
|
||||
self.mpris.Pause()
|
||||
self.assertEquals(self.backend.playback.state.get(), PAUSED)
|
||||
|
||||
def test_playpause_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.PlayPause()
|
||||
self.assertEquals(self.backend.playback.state.get(), PAUSED)
|
||||
|
||||
def test_playpause_when_paused_should_resume_playback(self):
|
||||
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
self.backend.playback.play()
|
||||
self.backend.playback.pause()
|
||||
|
||||
self.assertEquals(self.backend.playback.state.get(), PAUSED)
|
||||
at_pause = self.backend.playback.time_position.get()
|
||||
self.assert_(at_pause >= 0)
|
||||
|
||||
self.mpris.PlayPause()
|
||||
|
||||
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||
after_pause = self.backend.playback.time_position.get()
|
||||
self.assert_(after_pause >= at_pause)
|
||||
|
||||
def test_playpause_when_stopped_should_start_playback(self):
|
||||
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||
self.mpris.PlayPause()
|
||||
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||
|
||||
def test_play_after_pause_resumes_from_same_position(self):
|
||||
self.backend.current_playlist.append([Track(uri='a', length=40000)])
|
||||
self.backend.playback.play()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user