Test and implement mpris.OpenUri
This commit is contained in:
parent
2115706998
commit
22cba6f75c
@ -305,13 +305,13 @@ class MprisObject(dbus.service.Object):
|
|||||||
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
@dbus.service.method(dbus_interface=PLAYER_IFACE)
|
||||||
def OpenUri(self, uri):
|
def OpenUri(self, uri):
|
||||||
logger.debug(u'%s.OpenUri called', PLAYER_IFACE)
|
logger.debug(u'%s.OpenUri called', PLAYER_IFACE)
|
||||||
# TODO Pseudo code:
|
# TODO Check if URI is known scheme and has known MIME type.
|
||||||
# if uri.scheme not in SupportedUriSchemes: return
|
track = self.backend.library.lookup(uri).get()
|
||||||
# if uri.mime_type not in SupportedMimeTypes: return
|
if track is not None:
|
||||||
# track = library.lookup(uri)
|
cp_track = self.backend.current_playlist.add(track).get()
|
||||||
# cp_track = current_playlist.add(track)
|
self.backend.playback.play(cp_track)
|
||||||
# playback.play(cp_track)
|
else:
|
||||||
pass
|
logger.debug(u'Track with URI "%s" not found in library.', uri)
|
||||||
|
|
||||||
|
|
||||||
### Player interface signals
|
### Player interface signals
|
||||||
|
|||||||
@ -489,3 +489,51 @@ class PlayerInterfaceTest(unittest.TestCase):
|
|||||||
self.assert_(after_set_position >= before_set_position)
|
self.assert_(after_set_position >= before_set_position)
|
||||||
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||||
self.assertEquals(self.backend.playback.current_track.get().uri, 'a')
|
self.assertEquals(self.backend.playback.current_track.get().uri, 'a')
|
||||||
|
|
||||||
|
def test_open_uri_adds_uri_to_current_playlist(self):
|
||||||
|
self.backend.library.provider.dummy_library = [
|
||||||
|
Track(uri='dummy:/test/uri')]
|
||||||
|
self.mpris.OpenUri('dummy:/test/uri')
|
||||||
|
self.assertEquals(self.backend.current_playlist.tracks.get()[0].uri,
|
||||||
|
'dummy:/test/uri')
|
||||||
|
|
||||||
|
def test_open_uri_starts_playback_of_new_track_if_stopped(self):
|
||||||
|
self.backend.library.provider.dummy_library = [
|
||||||
|
Track(uri='dummy:/test/uri')]
|
||||||
|
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||||
|
self.assertEquals(self.backend.playback.state.get(), STOPPED)
|
||||||
|
|
||||||
|
self.mpris.OpenUri('dummy:/test/uri')
|
||||||
|
|
||||||
|
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||||
|
self.assertEquals(self.backend.playback.current_track.get().uri,
|
||||||
|
'dummy:/test/uri')
|
||||||
|
|
||||||
|
def test_open_uri_starts_playback_of_new_track_if_paused(self):
|
||||||
|
self.backend.library.provider.dummy_library = [
|
||||||
|
Track(uri='dummy:/test/uri')]
|
||||||
|
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)
|
||||||
|
self.assertEquals(self.backend.playback.current_track.get().uri, 'a')
|
||||||
|
|
||||||
|
self.mpris.OpenUri('dummy:/test/uri')
|
||||||
|
|
||||||
|
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||||
|
self.assertEquals(self.backend.playback.current_track.get().uri,
|
||||||
|
'dummy:/test/uri')
|
||||||
|
|
||||||
|
def test_open_uri_starts_playback_of_new_track_if_playing(self):
|
||||||
|
self.backend.library.provider.dummy_library = [
|
||||||
|
Track(uri='dummy:/test/uri')]
|
||||||
|
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||||
|
self.backend.playback.play()
|
||||||
|
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||||
|
self.assertEquals(self.backend.playback.current_track.get().uri, 'a')
|
||||||
|
|
||||||
|
self.mpris.OpenUri('dummy:/test/uri')
|
||||||
|
|
||||||
|
self.assertEquals(self.backend.playback.state.get(), PLAYING)
|
||||||
|
self.assertEquals(self.backend.playback.current_track.get().uri,
|
||||||
|
'dummy:/test/uri')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user