/* * Unittest for curlhttpsink */ #include <gst/check/gstcheck.h> #include <glib/gstdio.h> #include <curl/curl.h> static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); static GstPad *srcpad; static GstElement *sink; static GstElement * setup_curlhttpsink (void) { GST_DEBUG ("setup_curlhttpsink"); sink = gst_check_setup_element ("curlhttpsink"); srcpad = gst_check_setup_src_pad (sink, &srctemplate); fail_unless (gst_pad_set_active (srcpad, TRUE)); return sink; } static void cleanup_curlhttpsink (GstElement * sink) { GST_DEBUG ("cleanup_curlhttpsink"); gst_check_teardown_src_pad (sink); gst_check_teardown_element (sink); } GST_START_TEST (test_properties) { GstElement *sink; gchar *res_location = NULL; gchar *res_file_name = NULL; gchar *res_user; gchar *res_passwd; gchar *res_proxy; guint res_proxy_port; gchar *res_proxy_user; gchar *res_proxy_passwd; gchar *res_content_type; gboolean res_use_content_length; sink = setup_curlhttpsink (); g_object_set (G_OBJECT (sink), "location", "mylocation", "file-name", "myfile", "user", "user", "passwd", "passwd", "proxy", "myproxy", "proxy-port", 7777, "proxy-user", "proxy_user", "proxy-passwd", "proxy_passwd", "content-type", "image/jpeg", "use-content-length", TRUE, NULL); g_object_get (sink, "location", &res_location, "file-name", &res_file_name, "user", &res_user, "passwd", &res_passwd, "proxy", &res_proxy, "proxy-port", &res_proxy_port, "proxy-user", &res_proxy_user, "proxy-passwd", &res_proxy_passwd, "content-type", &res_content_type, "use-content-length", &res_use_content_length, NULL); fail_unless (strncmp (res_location, "mylocation", strlen ("mylocation")) == 0); fail_unless (strncmp (res_file_name, "myfile", strlen ("myfile")) == 0); fail_unless (strncmp (res_user, "user", strlen ("user")) == 0); fail_unless (strncmp (res_passwd, "passwd", strlen ("passwd")) == 0); fail_unless (strncmp (res_proxy, "myproxy", strlen ("myproxy")) == 0); fail_unless (res_proxy_port == 7777); fail_unless (strncmp (res_proxy_user, "proxy_user", strlen ("proxy_user")) == 0); fail_unless (strncmp (res_proxy_passwd, "proxy_passwd", strlen ("proxy_passwd")) == 0); fail_unless (strncmp (res_content_type, "image/jpeg", strlen ("image/jpeg")) == 0); fail_unless (res_use_content_length == TRUE); g_free (res_location); g_free (res_file_name); g_free (res_user); g_free (res_passwd); g_free (res_proxy); g_free (res_proxy_user); g_free (res_proxy_passwd); g_free (res_content_type); /* new properties */ g_object_set (G_OBJECT (sink), "location", "newlocation", NULL); g_object_get (sink, "location", &res_location, NULL); fail_unless (strncmp (res_location, "newlocation", strlen ("newlocation")) == 0); g_free (res_location); g_object_set (G_OBJECT (sink), "file-name", "newfile", NULL); g_object_get (sink, "file-name", &res_file_name, NULL); fail_unless (strncmp (res_file_name, "newfile", strlen ("newfile")) == 0); g_free (res_file_name); cleanup_curlhttpsink (sink); } GST_END_TEST; static Suite * curlsink_suite (void) { Suite *s = suite_create ("curlhttpsink"); TCase *tc_chain = tcase_create ("general"); suite_add_tcase (s, tc_chain); tcase_set_timeout (tc_chain, 20); tcase_add_test (tc_chain, test_properties); return s; } GST_CHECK_MAIN (curlsink);