tests/filesrc: Set location in wrong state

Also remove incorrect comment about code possibly not being reachable
that is now exercised by the filesrc unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=709831
This commit is contained in:
Sebastian Rasmussen 2013-09-29 17:35:11 +02:00 committed by Olivier Crête
parent 75b7387f8b
commit 1479aba1cf
2 changed files with 25 additions and 1 deletions

View file

@ -241,7 +241,7 @@ gst_file_src_set_location (GstFileSrc * src, const gchar * location)
g_free (src->filename);
g_free (src->uri);
/* clear the filename if we get a NULL (is that possible?) */
/* clear the filename if we get a NULL */
if (location == NULL) {
src->filename = NULL;
src->uri = NULL;

View file

@ -342,12 +342,17 @@ GST_START_TEST (test_uri_interface)
GstElement *src;
gchar *location;
GstBus *bus;
GstPad *pad;
src = setup_filesrc ();
bus = gst_bus_new ();
gst_element_set_bus (src, bus);
g_object_set (G_OBJECT (src), "location", NULL, NULL);
g_object_get (G_OBJECT (src), "location", &location, NULL);
fail_unless (location == NULL);
g_object_set (G_OBJECT (src), "location", "/i/do/not/exist", NULL);
g_object_get (G_OBJECT (src), "location", &location, NULL);
fail_unless_equals_string (location, "/i/do/not/exist");
@ -390,6 +395,25 @@ GST_START_TEST (test_uri_interface)
fail_if (gst_uri_handler_set_uri (GST_URI_HANDLER (src),
"file://hostname/foo/foo", NULL));
g_object_set (G_OBJECT (src), "location", TESTFILE, NULL);
pad = gst_element_get_static_pad (src, "src");
fail_unless (pad != NULL);
fail_unless (gst_pad_activate_mode (pad, GST_PAD_MODE_PULL, TRUE));
gst_object_unref (pad);
fail_unless (gst_element_set_state (src,
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
"could not set to playing");
ASSERT_WARNING (g_object_set (G_OBJECT (src), "location", "/wrong", NULL));
g_object_get (G_OBJECT (src), "location", &location, NULL);
fail_unless_equals_string (location, TESTFILE);
g_free (location);
fail_unless (gst_element_set_state (src,
GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
/* cleanup */
gst_element_set_bus (src, NULL);
gst_object_unref (GST_OBJECT (bus));