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 }