1 /*
2 * Unittest for curlsmtpsink
3 */
4
5 #include <gst/check/gstcheck.h>
6 #include <glib/gstdio.h>
7 #include <curl/curl.h>
8
9 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
10 GST_PAD_SRC,
11 GST_PAD_ALWAYS,
12 GST_STATIC_CAPS_ANY);
13
14 static GstPad *srcpad;
15
16 static GstElement *sink;
17
18 static GstElement *
setup_curlsmtpsink(void)19 setup_curlsmtpsink (void)
20 {
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));
25
26 return sink;
27 }
28
29 static void
cleanup_curlsmtpsink(GstElement * sink)30 cleanup_curlsmtpsink (GstElement * sink)
31 {
32 GST_DEBUG ("cleanup_curlsmtpsink");
33
34 gst_check_teardown_src_pad (sink);
35 gst_check_teardown_element (sink);
36 }
37
GST_START_TEST(test_properties)38 GST_START_TEST (test_properties)
39 {
40 GstElement *sink;
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;
52 guint res_nbr_attach;
53 gboolean res_use_ssl;
54
55 sink = setup_curlsmtpsink ();
56
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);
70
71 g_object_get (sink,
72 "location", &res_location,
73 "file-name", &res_file_name,
74 "user", &res_usr,
75 "passwd", &res_passwd,
76 "mail-rcpt", &res_mail_rcpt,
77 "mail-from", &res_mail_from,
78 "subject", &res_subj,
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);
84
85 fail_unless (strncmp (res_location, "mylocation", strlen ("mylocation"))
86 == 0);
87 fail_unless (strncmp (res_file_name, "myfile", strlen ("myfile"))
88 == 0);
89 fail_unless (strncmp (res_usr, "usr", strlen ("usr"))
90 == 0);
91 fail_unless (strncmp (res_passwd, "passwd", strlen ("passwd"))
92 == 0);
93 fail_unless (strncmp (res_mail_rcpt, "rcpt", strlen ("rcpt"))
94 == 0);
95 fail_unless (strncmp (res_mail_from, "sender", strlen ("sender"))
96 == 0);
97 fail_unless (strncmp (res_subj, "subject", strlen ("subject"))
98 == 0);
99 fail_unless (strncmp (res_msg, "message", strlen ("message"))
100 == 0);
101 fail_unless (strncmp (res_pop_location, "poploc", strlen ("poploc"))
102 == 0);
103 fail_unless (strncmp (res_pop_usr, "popusr", strlen ("popusr"))
104 == 0);
105 fail_unless (strncmp (res_pop_passwd, "poppasswd", strlen ("poppasswd"))
106 == 0);
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);
111 g_free (res_usr);
112 g_free (res_passwd);
113 g_free (res_mail_rcpt);
114 g_free (res_mail_from);
115 g_free (res_subj);
116 g_free (res_msg);
117 g_free (res_pop_location);
118 g_free (res_pop_usr);
119 g_free (res_pop_passwd);
120
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);
135
136 g_object_get (sink,
137 "location", &res_location,
138 "file-name", &res_file_name,
139 "user", &res_usr,
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);
149
150 fail_unless (strncmp (res_location, "newlocation", strlen ("newlocation"))
151 == 0);
152 fail_unless (strncmp (res_file_name, "newfilename", strlen ("newfilename"))
153 == 0);
154 fail_unless (strncmp (res_usr, "newusr", strlen ("newusr"))
155 == 0);
156 fail_unless (strncmp (res_passwd, "newpasswd", strlen ("newpasswd"))
157 == 0);
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"))
161 == 0);
162 fail_unless (strncmp (res_subj, "newsubject", strlen ("newsubject"))
163 == 0);
164 fail_unless (strncmp (res_msg, "newmessage", strlen ("newmessage"))
165 == 0);
166 fail_unless (strncmp (res_pop_location, "newpoploc", strlen ("newpoploc"))
167 == 0);
168 fail_unless (strncmp (res_pop_usr, "newpopusr", strlen ("newpopusr"))
169 == 0);
170 fail_unless (strncmp (res_pop_passwd, "newpoppasswd", strlen ("newpoppasswd"))
171 == 0);
172
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);
177 g_free (res_usr);
178 g_free (res_passwd);
179 g_free (res_mail_from);
180 g_free (res_mail_rcpt);
181 g_free (res_subj);
182 g_free (res_msg);
183 g_free (res_pop_location);
184 g_free (res_pop_usr);
185 g_free (res_pop_passwd);
186
187 cleanup_curlsmtpsink (sink);
188 }
189
190 GST_END_TEST;
191
192 static Suite *
curlsink_suite(void)193 curlsink_suite (void)
194 {
195 Suite *s = suite_create ("curlsmtpsink");
196 TCase *tc_chain = tcase_create ("general");
197
198 suite_add_tcase (s, tc_chain);
199 tcase_set_timeout (tc_chain, 20);
200 tcase_add_test (tc_chain, test_properties);
201
202 return s;
203 }
204
205 GST_CHECK_MAIN (curlsink);
206