| /* | |
| * 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); |