Test and implement mpris.Play()
This commit is contained in:
parent
fae469cca3
commit
1a6d577ed5
@ -264,10 +264,11 @@ class MprisObject(dbus.service.Object):
|
||||
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
||||
def Play(self):
|
||||
logger.debug(u'%s.Play called', PLAYER_IFACE)
|
||||
# TODO Pseudo code:
|
||||
# if playback.state == playback.PAUSED: playback.resume()
|
||||
# elif playback.state == playback.STOPPED: playback.play()
|
||||
pass
|
||||
state = self.backend.playback.state.get()
|
||||
if state == PlaybackController.PAUSED:
|
||||
self.backend.playback.resume().get()
|
||||
else:
|
||||
self.backend.playback.play().get()
|
||||
|
||||
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
||||
def Seek(self, offset):
|
||||
|
||||
@ -204,6 +204,12 @@ class PlayerInterfaceTest(unittest.TestCase):
|
||||
self.mpris.Stop()
|
||||
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||
|
||||
def test_play_when_stopped_starts_playback(self):
|
||||
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||
self.mpris.Play()
|
||||
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()
|
||||
@ -212,9 +218,17 @@ class PlayerInterfaceTest(unittest.TestCase):
|
||||
self.assert_(before_pause >= 0)
|
||||
|
||||
self.mpris.Pause()
|
||||
self.assertEquals(self.backend.playback.state.get(), PAUSED)
|
||||
at_pause = self.backend.playback.time_position.get()
|
||||
self.assert_(at_pause >= before_pause)
|
||||
|
||||
self.mpris.Play()
|
||||
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||
after_pause = self.backend.playback.time_position.get()
|
||||
self.assert_(after_pause >= at_pause)
|
||||
|
||||
def test_play_when_there_is_no_track_has_no_effect(self):
|
||||
self.backend.current_playlist.clear()
|
||||
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||
self.mpris.Play()
|
||||
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user