/* * Unittest for curlftpsink */ #include #include #include 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_curlftpsink (void) { GST_DEBUG ("setup_curlftpsink"); sink = gst_check_setup_element ("curlftpsink"); srcpad = gst_check_setup_src_pad (sink, &srctemplate); gst_pad_set_active (srcpad, TRUE); return sink; } static void cleanup_curlftpsink (GstElement * sink) { GST_DEBUG ("cleanup_curlftpsink"); 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_ftp_port = NULL; gboolean res_epsv_mode; gboolean res_create_dirs; sink = setup_curlftpsink (); g_object_set (G_OBJECT (sink), "location", "mylocation", NULL); g_object_set (G_OBJECT (sink), "file-name", "myfile", NULL); g_object_set (G_OBJECT (sink), "ftp-port", "1.2.3.4:0", NULL); g_object_set (G_OBJECT (sink), "epsv-mode", FALSE, NULL); g_object_set (G_OBJECT (sink), "create-dirs", FALSE, NULL); g_object_get (sink, "location", &res_location, "file-name", &res_file_name, "ftp-port", &res_ftp_port, "epsv-mode", &res_epsv_mode, "create-dirs", &res_create_dirs, NULL); fail_unless (strncmp (res_location, "mylocation", strlen ("mylocation")) == 0); fail_unless (strncmp (res_file_name, "myfile", strlen ("myfile")) == 0); fail_unless (strncmp (res_ftp_port, "1.2.3.4:0", strlen ("1.2.3.4:0")) == 0); fail_unless (res_epsv_mode == FALSE); fail_unless (res_create_dirs == FALSE); g_free (res_location); g_free (res_file_name); g_free (res_ftp_port); /* change properties */ g_object_set (G_OBJECT (sink), "location", "newlocation", NULL); g_object_set (G_OBJECT (sink), "file-name", "newfilename", NULL); g_object_set (G_OBJECT (sink), "ftp-port", "", NULL); g_object_set (G_OBJECT (sink), "epsv-mode", TRUE, NULL); g_object_set (G_OBJECT (sink), "create-dirs", TRUE, NULL); g_object_get (sink, "location", &res_location, "file-name", &res_file_name, "ftp-port", &res_ftp_port, "epsv-mode", &res_epsv_mode, "create-dirs", &res_create_dirs, NULL); fail_unless (strncmp (res_location, "newlocation", strlen ("newlocation")) == 0); fail_unless (strncmp (res_file_name, "newfilename", strlen ("newfilename")) == 0); fail_unless (strncmp (res_ftp_port, "", strlen ("")) == 0); fail_unless (res_epsv_mode == TRUE); fail_unless (res_create_dirs == TRUE); g_free (res_location); g_free (res_file_name); g_free (res_ftp_port); cleanup_curlftpsink (sink); } GST_END_TEST; static Suite * curlsink_suite (void) { Suite *s = suite_create ("curlftpsink"); 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);