From 0cd56b08007da6ce55b907568fd7ac10649ceb57 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 18 Feb 2010 13:41:21 +0100 Subject: [PATCH] Add test_seek_beyond_start_of_song tests --- mopidy/backends/gstreamer.py | 3 +++ tests/backends/basetests.py | 17 +++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index b7116ab6..13d55008 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -88,6 +88,9 @@ class GStreamerPlaybackController(BasePlaybackController): if self.state == self.STOPPED: self.play() + if time_position < 0: + time_position = 0 + self.bin.seek_simple(gst.Format(gst.FORMAT_TIME), gst.SEEK_FLAG_FLUSH, time_position * gst.MSECOND) self._set_state(gst.STATE_PLAYING) diff --git a/tests/backends/basetests.py b/tests/backends/basetests.py index 039e66f7..f322ce85 100644 --- a/tests/backends/basetests.py +++ b/tests/backends/basetests.py @@ -537,7 +537,7 @@ class BasePlaybackControllerTest(object): @populate_playlist def test_seek_when_playing(self): self.playback.play() - self.playback.seek(1000) + self.playback.seek(1000) # FIXME use track.duration position = self.playback.time_position self.assert_(position >= 990, position) @@ -545,7 +545,7 @@ class BasePlaybackControllerTest(object): def test_seek_when_paused(self): self.playback.play() self.playback.pause() - self.playback.seek(1000) + self.playback.seek(1000) # FIXME use track.duration position = self.playback.time_position self.assert_(position >= 990, position) @@ -556,14 +556,19 @@ class BasePlaybackControllerTest(object): self.playback.seek(0) self.assertEqual(self.playback.state, self.playback.PLAYING) - def test_seek_return_value(self): - raise NotImplementedError # design decision needed - def test_seek_beyond_end_of_song(self): raise NotImplementedError + @populate_playlist def test_seek_beyond_start_of_song(self): - raise NotImplementedError + self.playback.play() + self.playback.seek(-1000) + position = self.playback.time_position + self.assert_(position >= 0, position) + self.assertEqual(self.playback.state, self.playback.PLAYING) + + def test_seek_return_value(self): + raise NotImplementedError # design decision needed @populate_playlist def test_stop_when_stopped(self):