summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-09 18:11:42 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-09 18:12:15 +0100
commitd086c05c1f08ac37c01fb18189c8d8930ee9ce4a (patch)
treeef4e9014089c6b21de8caf5766ebc72ca867e265
parent27d4f9dca319d4e8cfd79beb9184c68c498f465f (diff)
cddabasesrc: Add unit test for property settings
Also includes a regression test for bug #601104.
-rw-r--r--tests/check/libs/cddabasesrc.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/check/libs/cddabasesrc.c b/tests/check/libs/cddabasesrc.c
index b93ee38cb..33685d81f 100644
--- a/tests/check/libs/cddabasesrc.c
+++ b/tests/check/libs/cddabasesrc.c
@@ -460,6 +460,46 @@ GST_START_TEST (test_uri_parsing)
GST_END_TEST;
+GST_START_TEST (test_properties)
+{
+ GstElement *foosrc;
+ gchar *device;
+ guint track;
+
+ fail_unless (gst_element_register (NULL, "cdfoosrc", GST_RANK_SECONDARY,
+ GST_TYPE_CD_FOO_SRC));
+
+ foosrc = gst_element_factory_make ("cdfoosrc", "cdfoosrc");
+
+ g_object_set (foosrc, "device", "/dev/cdrom", NULL);
+ g_object_get (foosrc, "device", &device, "track", &track, NULL);
+ fail_unless (g_str_equal (device, "/dev/cdrom"));
+ fail_unless_equals_int (track, 1);
+ g_free (device);
+
+ g_object_set (foosrc, "device", "/dev/cdrom1", "track", 17, NULL);
+ g_object_get (foosrc, "device", &device, "track", &track, NULL);
+ fail_unless (g_str_equal (device, "/dev/cdrom1"));
+ fail_unless_equals_int (track, 17);
+ g_free (device);
+
+ g_object_set (foosrc, "track", 17, "device", "/dev/cdrom1", NULL);
+ g_object_get (foosrc, "device", &device, "track", &track, NULL);
+ fail_unless (g_str_equal (device, "/dev/cdrom1"));
+ fail_unless_equals_int (track, 17);
+ g_free (device);
+
+ g_object_set (foosrc, "track", 12, NULL);
+ g_object_get (foosrc, "device", &device, "track", &track, NULL);
+ fail_unless (g_str_equal (device, "/dev/cdrom1"));
+ fail_unless_equals_int (track, 12);
+ g_free (device);
+
+ gst_object_unref (foosrc);
+}
+
+GST_END_TEST;
+
static Suite *
cddabasesrc_suite (void)
{
@@ -470,6 +510,7 @@ cddabasesrc_suite (void)
tcase_add_test (tc_chain, test_discid_calculations);
tcase_add_test (tc_chain, test_buffer_timestamps);
tcase_add_test (tc_chain, test_uri_parsing);
+ tcase_add_test (tc_chain, test_properties);
return s;
}