gstreamer/tests/check/elements/curlsmtpsink.c

208 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);