2 * Unittest for curlsmtpsink
5 #include <gst/check/gstcheck.h>
6 #include <glib/gstdio.h>
9 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
14 static GstPad *srcpad;
16 static GstElement *sink;
19 setup_curlsmtpsink (void)
21 GST_DEBUG ("setup_curlsmtpsink");
22 sink = gst_check_setup_element ("curlsmtpsink");
23 srcpad = gst_check_setup_src_pad (sink, &srctemplate);
24 fail_unless (gst_pad_set_active (srcpad, TRUE));
30 cleanup_curlsmtpsink (GstElement * sink)
32 GST_DEBUG ("cleanup_curlsmtpsink");
34 gst_check_teardown_src_pad (sink);
35 gst_check_teardown_element (sink);
38 GST_START_TEST (test_properties)
41 gchar *res_location = NULL;
42 gchar *res_file_name = NULL;
43 gchar *res_mail_rcpt = NULL;
44 gchar *res_mail_from = NULL;
45 gchar *res_subj = NULL;
46 gchar *res_msg = NULL;
47 gchar *res_usr = NULL;
48 gchar *res_passwd = NULL;
49 gchar *res_pop_location = NULL;
50 gchar *res_pop_usr = NULL;
51 gchar *res_pop_passwd = NULL;
55 sink = setup_curlsmtpsink ();
57 g_object_set (G_OBJECT (sink), "location", "mylocation", NULL);
58 g_object_set (G_OBJECT (sink), "file-name", "myfile", NULL);
59 g_object_set (G_OBJECT (sink), "user", "usr", NULL);
60 g_object_set (G_OBJECT (sink), "passwd", "passwd", NULL);
61 g_object_set (G_OBJECT (sink), "mail-rcpt", "rcpt", NULL);
62 g_object_set (G_OBJECT (sink), "mail-from", "sender", NULL);
63 g_object_set (G_OBJECT (sink), "subject", "subject", NULL);
64 g_object_set (G_OBJECT (sink), "message-body", "message", NULL);
65 g_object_set (G_OBJECT (sink), "nbr-attachments", 5, NULL);
66 g_object_set (G_OBJECT (sink), "use-ssl", TRUE, NULL);
67 g_object_set (G_OBJECT (sink), "pop-location", "poploc", NULL);
68 g_object_set (G_OBJECT (sink), "pop-user", "popusr", NULL);
69 g_object_set (G_OBJECT (sink), "pop-passwd", "poppasswd", NULL);
72 "location", &res_location,
73 "file-name", &res_file_name,
75 "passwd", &res_passwd,
76 "mail-rcpt", &res_mail_rcpt,
77 "mail-from", &res_mail_from,
79 "message-body", &res_msg,
80 "nbr-attachments", &res_nbr_attach,
81 "use-ssl", &res_use_ssl,
82 "pop-location", &res_pop_location,
83 "pop_user", &res_pop_usr, "pop-passwd", &res_pop_passwd, NULL);
85 fail_unless (strncmp (res_location, "mylocation", strlen ("mylocation"))
87 fail_unless (strncmp (res_file_name, "myfile", strlen ("myfile"))
89 fail_unless (strncmp (res_usr, "usr", strlen ("usr"))
91 fail_unless (strncmp (res_passwd, "passwd", strlen ("passwd"))
93 fail_unless (strncmp (res_mail_rcpt, "rcpt", strlen ("rcpt"))
95 fail_unless (strncmp (res_mail_from, "sender", strlen ("sender"))
97 fail_unless (strncmp (res_subj, "subject", strlen ("subject"))
99 fail_unless (strncmp (res_msg, "message", strlen ("message"))
101 fail_unless (strncmp (res_pop_location, "poploc", strlen ("poploc"))
103 fail_unless (strncmp (res_pop_usr, "popusr", strlen ("popusr"))
105 fail_unless (strncmp (res_pop_passwd, "poppasswd", strlen ("poppasswd"))
107 fail_unless (res_nbr_attach == 5);
108 fail_unless (res_use_ssl == TRUE);
109 g_free (res_location);
110 g_free (res_file_name);
113 g_free (res_mail_rcpt);
114 g_free (res_mail_from);
117 g_free (res_pop_location);
118 g_free (res_pop_usr);
119 g_free (res_pop_passwd);
121 /* change properties */
122 g_object_set (G_OBJECT (sink), "location", "newlocation", NULL);
123 g_object_set (G_OBJECT (sink), "file-name", "newfilename", NULL);
124 g_object_set (G_OBJECT (sink), "user", "newusr", NULL);
125 g_object_set (G_OBJECT (sink), "passwd", "newpasswd", NULL);
126 g_object_set (G_OBJECT (sink), "mail-rcpt", "rcpt1,rcpt2,rcpt3", NULL);
127 g_object_set (G_OBJECT (sink), "mail-from", "newsender", NULL);
128 g_object_set (G_OBJECT (sink), "subject", "newsubject", NULL);
129 g_object_set (G_OBJECT (sink), "message-body", "newmessage", NULL);
130 g_object_set (G_OBJECT (sink), "nbr-attachments", 1, NULL);
131 g_object_set (G_OBJECT (sink), "use-ssl", FALSE, NULL);
132 g_object_set (G_OBJECT (sink), "pop-location", "newpoploc", NULL);
133 g_object_set (G_OBJECT (sink), "pop-user", "newpopusr", NULL);
134 g_object_set (G_OBJECT (sink), "pop-passwd", "newpoppasswd", NULL);
137 "location", &res_location,
138 "file-name", &res_file_name,
140 "passwd", &res_passwd,
141 "pop_user", &res_pop_usr,
142 "pop-passwd", &res_pop_passwd,
143 "pop-location", &res_pop_location,
144 "nbr-attachments", &res_nbr_attach,
145 "subject", &res_subj,
146 "use-ssl", &res_use_ssl,
147 "message-body", &res_msg,
148 "mail-from", &res_mail_from, "mail-rcpt", &res_mail_rcpt, NULL);
150 fail_unless (strncmp (res_location, "newlocation", strlen ("newlocation"))
152 fail_unless (strncmp (res_file_name, "newfilename", strlen ("newfilename"))
154 fail_unless (strncmp (res_usr, "newusr", strlen ("newusr"))
156 fail_unless (strncmp (res_passwd, "newpasswd", strlen ("newpasswd"))
158 fail_unless (strncmp (res_mail_rcpt, "rcpt1,rcpt2,rcpt3",
159 strlen ("rcpt1,rcpt2,rcpt3")) == 0);
160 fail_unless (strncmp (res_mail_from, "newsender", strlen ("newsender"))
162 fail_unless (strncmp (res_subj, "newsubject", strlen ("newsubject"))
164 fail_unless (strncmp (res_msg, "newmessage", strlen ("newmessage"))
166 fail_unless (strncmp (res_pop_location, "newpoploc", strlen ("newpoploc"))
168 fail_unless (strncmp (res_pop_usr, "newpopusr", strlen ("newpopusr"))
170 fail_unless (strncmp (res_pop_passwd, "newpoppasswd", strlen ("newpoppasswd"))
173 fail_unless (res_nbr_attach == 1);
174 fail_unless (res_use_ssl == FALSE);
175 g_free (res_location);
176 g_free (res_file_name);
179 g_free (res_mail_from);
180 g_free (res_mail_rcpt);
183 g_free (res_pop_location);
184 g_free (res_pop_usr);
185 g_free (res_pop_passwd);
187 cleanup_curlsmtpsink (sink);
193 curlsink_suite (void)
195 Suite *s = suite_create ("curlsmtpsink");
196 TCase *tc_chain = tcase_create ("general");
198 suite_add_tcase (s, tc_chain);
199 tcase_set_timeout (tc_chain, 20);
200 tcase_add_test (tc_chain, test_properties);
205 GST_CHECK_MAIN (curlsink);