talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

unmime_test.c (2246B)


      1 #include "config.h"
      2 
      3 #include <stdio.h>
      4 #include <glib.h>
      5 
      6 #include "unmime.h"
      7 #include "quoted-printable.h"
      8 
      9 #include "mock_prefs_common_get_use_shred.h"
     10 #include "mock_prefs_common_get_flush_metadata.h"
     11 
     12 struct td {
     13 	gchar *input;
     14 	gchar *expected_output;
     15 };
     16 
     17 struct td td_rfc2047_space1 = {
     18 	"(=?ISO-8859-1?Q?a?=)",
     19 	"(a)"
     20 };
     21 struct td td_rfc2047_space2 = {
     22 	"(=?ISO-8859-1?Q?a?= b)",
     23 	"(a b)"
     24 };
     25 struct td td_rfc2047_space3 = {
     26 	"(=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)",
     27 	"(ab)"
     28 };
     29 struct td td_rfc2047_space4 = {
     30 	"(=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)",
     31 	"(ab)"
     32 };
     33 struct td td_rfc2047_space5 = {
     34 	"(=?ISO-8859-1?Q?a?=\r\n =?ISO-8859-1?Q?b?=)",
     35 	"(ab)"
     36 };
     37 struct td td_rfc2047_space6 = {
     38 	"(=?ISO-8859-1?Q?a_b?=)",
     39 	"(a b)"
     40 };
     41 struct td td_rfc2047_space7 = {
     42 	"(=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)",
     43 	"(a b)"
     44 };
     45 
     46 static void
     47 test_unmime_header_null()
     48 {
     49 	if (!g_test_undefined())
     50 		return;
     51 
     52 	if (g_test_subprocess()) {
     53 		gchar *out;
     54 
     55 		out = unmime_header(NULL, FALSE);
     56 		g_assert_null(out);
     57 		return;
     58 	}
     59 
     60 	g_test_trap_subprocess(NULL, 0, 0);
     61 	g_test_trap_assert_stdout("*Condition*failed*");
     62 	g_test_trap_assert_passed();
     63 }
     64 
     65 static void
     66 test_unmime_header(gconstpointer user_data)
     67 {
     68 	struct td *data = (struct td *)user_data;
     69 	gchar *out = unmime_header(data->input, FALSE);
     70 
     71 	g_assert_nonnull(out);
     72 	g_assert_cmpstr(out, ==, data->expected_output);
     73 }
     74 
     75 int
     76 main(int argc, char *argv[])
     77 {
     78 	g_test_init(&argc, &argv, NULL);
     79 
     80 	g_test_add_func("/common/unmime/null",
     81 			test_unmime_header_null);
     82 
     83 	g_test_add_data_func("/common/unmime/rfc2047_space1",
     84 			&td_rfc2047_space1,
     85 			test_unmime_header);
     86 	g_test_add_data_func("/common/unmime/rfc2047_space2",
     87 			&td_rfc2047_space2,
     88 			test_unmime_header);
     89 	g_test_add_data_func("/common/unmime/rfc2047_space3",
     90 			&td_rfc2047_space3,
     91 			test_unmime_header);
     92 	g_test_add_data_func("/common/unmime/rfc2047_space4",
     93 			&td_rfc2047_space4,
     94 			test_unmime_header);
     95 	g_test_add_data_func("/common/unmime/rfc2047_space5",
     96 			&td_rfc2047_space5,
     97 			test_unmime_header);
     98 	g_test_add_data_func("/common/unmime/rfc2047_space6",
     99 			&td_rfc2047_space6,
    100 			test_unmime_header);
    101 	g_test_add_data_func("/common/unmime/rfc2047_space7",
    102 			&td_rfc2047_space7,
    103 			test_unmime_header);
    104 
    105 	return g_test_run();
    106 }