206 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Unittest for curlsmtpsink
 | |
|  */
 | |
| 
 | |
| #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_curlsmtpsink (void)
 | |
| {
 | |
|   GST_DEBUG ("setup_curlsmtpsink");
 | |
|   sink = gst_check_setup_element ("curlsmtpsink");
 | |
|   srcpad = gst_check_setup_src_pad (sink, &srctemplate);
 | |
|   fail_unless (gst_pad_set_active (srcpad, TRUE));
 | |
| 
 | |
|   return sink;
 | |
| }
 | |
| 
 | |
| static void
 | |
| cleanup_curlsmtpsink (GstElement * sink)
 | |
| {
 | |
|   GST_DEBUG ("cleanup_curlsmtpsink");
 | |
| 
 | |
|   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_mail_rcpt = NULL;
 | |
|   gchar *res_mail_from = NULL;
 | |
|   gchar *res_subj = NULL;
 | |
|   gchar *res_msg = NULL;
 | |
|   gchar *res_usr = NULL;
 | |
|   gchar *res_passwd = NULL;
 | |
|   gchar *res_pop_location = NULL;
 | |
|   gchar *res_pop_usr = NULL;
 | |
|   gchar *res_pop_passwd = NULL;
 | |
|   guint res_nbr_attach;
 | |
|   gboolean res_use_ssl;
 | |
| 
 | |
|   sink = setup_curlsmtpsink ();
 | |
| 
 | |
|   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), "user", "usr", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "passwd", "passwd", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "mail-rcpt", "rcpt", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "mail-from", "sender", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "subject", "subject", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "message-body", "message", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "nbr-attachments", 5, NULL);
 | |
|   g_object_set (G_OBJECT (sink), "use-ssl", TRUE, NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-location", "poploc", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-user", "popusr", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-passwd", "poppasswd", NULL);
 | |
| 
 | |
|   g_object_get (sink,
 | |
|       "location", &res_location,
 | |
|       "file-name", &res_file_name,
 | |
|       "user", &res_usr,
 | |
|       "passwd", &res_passwd,
 | |
|       "mail-rcpt", &res_mail_rcpt,
 | |
|       "mail-from", &res_mail_from,
 | |
|       "subject", &res_subj,
 | |
|       "message-body", &res_msg,
 | |
|       "nbr-attachments", &res_nbr_attach,
 | |
|       "use-ssl", &res_use_ssl,
 | |
|       "pop-location", &res_pop_location,
 | |
|       "pop_user", &res_pop_usr, "pop-passwd", &res_pop_passwd, NULL);
 | |
| 
 | |
|   fail_unless (strncmp (res_location, "mylocation", strlen ("mylocation"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_file_name, "myfile", strlen ("myfile"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_usr, "usr", strlen ("usr"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_passwd, "passwd", strlen ("passwd"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_mail_rcpt, "rcpt", strlen ("rcpt"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_mail_from, "sender", strlen ("sender"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_subj, "subject", strlen ("subject"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_msg, "message", strlen ("message"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_location, "poploc", strlen ("poploc"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_usr, "popusr", strlen ("popusr"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_passwd, "poppasswd", strlen ("poppasswd"))
 | |
|       == 0);
 | |
|   fail_unless (res_nbr_attach == 5);
 | |
|   fail_unless (res_use_ssl == TRUE);
 | |
|   g_free (res_location);
 | |
|   g_free (res_file_name);
 | |
|   g_free (res_usr);
 | |
|   g_free (res_passwd);
 | |
|   g_free (res_mail_rcpt);
 | |
|   g_free (res_mail_from);
 | |
|   g_free (res_subj);
 | |
|   g_free (res_msg);
 | |
|   g_free (res_pop_location);
 | |
|   g_free (res_pop_usr);
 | |
|   g_free (res_pop_passwd);
 | |
| 
 | |
|   /* 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), "user", "newusr", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "passwd", "newpasswd", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "mail-rcpt", "rcpt1,rcpt2,rcpt3", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "mail-from", "newsender", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "subject", "newsubject", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "message-body", "newmessage", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "nbr-attachments", 1, NULL);
 | |
|   g_object_set (G_OBJECT (sink), "use-ssl", FALSE, NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-location", "newpoploc", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-user", "newpopusr", NULL);
 | |
|   g_object_set (G_OBJECT (sink), "pop-passwd", "newpoppasswd", NULL);
 | |
| 
 | |
|   g_object_get (sink,
 | |
|       "location", &res_location,
 | |
|       "file-name", &res_file_name,
 | |
|       "user", &res_usr,
 | |
|       "passwd", &res_passwd,
 | |
|       "pop_user", &res_pop_usr,
 | |
|       "pop-passwd", &res_pop_passwd,
 | |
|       "pop-location", &res_pop_location,
 | |
|       "nbr-attachments", &res_nbr_attach,
 | |
|       "subject", &res_subj,
 | |
|       "use-ssl", &res_use_ssl,
 | |
|       "message-body", &res_msg,
 | |
|       "mail-from", &res_mail_from, "mail-rcpt", &res_mail_rcpt, NULL);
 | |
| 
 | |
|   fail_unless (strncmp (res_location, "newlocation", strlen ("newlocation"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_file_name, "newfilename", strlen ("newfilename"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_usr, "newusr", strlen ("newusr"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_passwd, "newpasswd", strlen ("newpasswd"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_mail_rcpt, "rcpt1,rcpt2,rcpt3",
 | |
|           strlen ("rcpt1,rcpt2,rcpt3")) == 0);
 | |
|   fail_unless (strncmp (res_mail_from, "newsender", strlen ("newsender"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_subj, "newsubject", strlen ("newsubject"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_msg, "newmessage", strlen ("newmessage"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_location, "newpoploc", strlen ("newpoploc"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_usr, "newpopusr", strlen ("newpopusr"))
 | |
|       == 0);
 | |
|   fail_unless (strncmp (res_pop_passwd, "newpoppasswd", strlen ("newpoppasswd"))
 | |
|       == 0);
 | |
| 
 | |
|   fail_unless (res_nbr_attach == 1);
 | |
|   fail_unless (res_use_ssl == FALSE);
 | |
|   g_free (res_location);
 | |
|   g_free (res_file_name);
 | |
|   g_free (res_usr);
 | |
|   g_free (res_passwd);
 | |
|   g_free (res_mail_from);
 | |
|   g_free (res_mail_rcpt);
 | |
|   g_free (res_subj);
 | |
|   g_free (res_msg);
 | |
|   g_free (res_pop_location);
 | |
|   g_free (res_pop_usr);
 | |
|   g_free (res_pop_passwd);
 | |
| 
 | |
|   cleanup_curlsmtpsink (sink);
 | |
| }
 | |
| 
 | |
| GST_END_TEST;
 | |
| 
 | |
| static Suite *
 | |
| curlsink_suite (void)
 | |
| {
 | |
|   Suite *s = suite_create ("curlsmtpsink");
 | |
|   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);
 |