Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-bad / tests / check / elements / curlsmtpsink.c
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 *
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
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
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 *
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);