diff --git a/homeassistant/components/demo/media_player.py b/homeassistant/components/demo/media_player.py index ea315707dea..cc02ecba175 100644 --- a/homeassistant/components/demo/media_player.py +++ b/homeassistant/components/demo/media_player.py @@ -17,6 +17,7 @@ from homeassistant.components.media_player.const import ( SUPPORT_SELECT_SOUND_MODE, SUPPORT_SELECT_SOURCE, SUPPORT_SHUFFLE_SET, + SUPPORT_STOP, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, @@ -66,6 +67,7 @@ YOUTUBE_PLAYER_SUPPORT = ( | SUPPORT_SHUFFLE_SET | SUPPORT_SELECT_SOUND_MODE | SUPPORT_SEEK + | SUPPORT_STOP ) MUSIC_PLAYER_SUPPORT = ( @@ -83,6 +85,7 @@ MUSIC_PLAYER_SUPPORT = ( | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | SUPPORT_SELECT_SOUND_MODE + | SUPPORT_STOP ) NETFLIX_PLAYER_SUPPORT = ( @@ -95,6 +98,7 @@ NETFLIX_PLAYER_SUPPORT = ( | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | SUPPORT_SELECT_SOUND_MODE + | SUPPORT_STOP ) @@ -199,6 +203,11 @@ class AbstractDemoPlayer(MediaPlayerEntity): self._player_state = STATE_PAUSED self.schedule_update_ha_state() + def media_stop(self): + """Send stop command.""" + self._player_state = STATE_OFF + self.schedule_update_ha_state() + def set_shuffle(self, shuffle): """Enable/disable shuffle mode.""" self._shuffle = shuffle diff --git a/tests/components/demo/test_media_player.py b/tests/components/demo/test_media_player.py index 4ed41ce9c83..9cc01d18b03 100644 --- a/tests/components/demo/test_media_player.py +++ b/tests/components/demo/test_media_player.py @@ -400,6 +400,26 @@ async def test_seek(hass, mock_media_seek): assert mock_media_seek.called +async def test_stop(hass): + """Test stop.""" + assert await async_setup_component( + hass, mp.DOMAIN, {"media_player": {"platform": "demo"}} + ) + await hass.async_block_till_done() + + state = hass.states.get(TEST_ENTITY_ID) + assert state.state == STATE_PLAYING + + await hass.services.async_call( + mp.DOMAIN, + mp.SERVICE_MEDIA_STOP, + {ATTR_ENTITY_ID: TEST_ENTITY_ID}, + blocking=True, + ) + state = hass.states.get(TEST_ENTITY_ID) + assert state.state == STATE_OFF + + async def test_media_image_proxy(hass, hass_client): """Test the media server image proxy server .""" assert await async_setup_component(