diff --git a/mopidy/frontends/mpris.py b/mopidy/frontends/mpris.py index 5619b859..80c6eeb6 100644 --- a/mopidy/frontends/mpris.py +++ b/mopidy/frontends/mpris.py @@ -131,8 +131,7 @@ class MprisObject(dbus.service.Object): 'HasTrackList': (False, None), 'Identity': ('Mopidy', None), 'DesktopEntry': ('mopidy', None), - # TODO Return URI schemes supported by backend configuration - 'SupportedUriSchemes': (dbus.Array([], signature='s'), None), + 'SupportedUriSchemes': (self.get_SupportedUriSchemes, None), # TODO Return MIME types supported by local backend if active 'SupportedMimeTypes': (dbus.Array([], signature='s'), None), } @@ -234,6 +233,12 @@ class MprisObject(dbus.service.Object): exit_process() + ### Root interface properties + + def get_SupportedUriSchemes(self): + return dbus.Array(self.backend.uri_schemes.get(), signature='s') + + ### Player interface methods @dbus.service.method(dbus_interface=PLAYER_IFACE) diff --git a/tests/frontends/mpris/root_interface_test.py b/tests/frontends/mpris/root_interface_test.py index 622f3414..f781d261 100644 --- a/tests/frontends/mpris/root_interface_test.py +++ b/tests/frontends/mpris/root_interface_test.py @@ -1,14 +1,19 @@ import mock import unittest +from mopidy.backends.dummy import DummyBackend from mopidy.frontends import mpris class RootInterfaceTest(unittest.TestCase): def setUp(self): mpris.exit_process = mock.Mock() mpris.MprisObject._connect_to_dbus = mock.Mock() + self.backend = DummyBackend.start().proxy() self.mpris = mpris.MprisObject() + def tearDown(self): + self.backend.stop() + def test_constructor_connects_to_dbus(self): self.assert_(self.mpris._connect_to_dbus.called) @@ -33,16 +38,17 @@ class RootInterfaceTest(unittest.TestCase): def test_identify_is_mopidy(self): result = self.mpris.Get(mpris.ROOT_IFACE, 'Identity') - self.assertEquals('Mopidy', result) + self.assertEquals(result, 'Mopidy') def test_desktop_entry_is_mopidy(self): result = self.mpris.Get(mpris.ROOT_IFACE, 'DesktopEntry') - self.assertEquals('mopidy', result) + self.assertEquals(result, 'mopidy') def test_supported_uri_schemes_is_empty(self): result = self.mpris.Get(mpris.ROOT_IFACE, 'SupportedUriSchemes') - self.assertEquals(0, len(result)) + self.assertEquals(len(result), 1) + self.assertEquals(result[0], 'dummy') def test_supported_mime_types_is_empty(self): result = self.mpris.Get(mpris.ROOT_IFACE, 'SupportedMimeTypes') - self.assertEquals(0, len(result)) + self.assertEquals(len(result), 0)