diff options
Diffstat (limited to 'camel/tests/message')
-rw-r--r-- | camel/tests/message/.cvsignore | 15 | ||||
-rw-r--r-- | camel/tests/message/Makefile.am | 23 | ||||
-rw-r--r-- | camel/tests/message/README | 5 | ||||
-rw-r--r-- | camel/tests/message/test1.c | 200 | ||||
-rw-r--r-- | camel/tests/message/test2.c | 326 | ||||
-rw-r--r-- | camel/tests/message/test3.c | 199 |
6 files changed, 0 insertions, 768 deletions
diff --git a/camel/tests/message/.cvsignore b/camel/tests/message/.cvsignore deleted file mode 100644 index 4f58c83bd0..0000000000 --- a/camel/tests/message/.cvsignore +++ /dev/null @@ -1,15 +0,0 @@ -.deps -Makefile -Makefile.in -.libs -.deps -*.lo -*.la -test1 -test2 -test3 -*.msg -*.bb -*.bbg -*.da -*.gcov diff --git a/camel/tests/message/Makefile.am b/camel/tests/message/Makefile.am deleted file mode 100644 index aa430fa409..0000000000 --- a/camel/tests/message/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ - -INCLUDES = -I$(top_srcdir)/intl -I$(top_srcdir) -I$(top_srcdir)/camel \ - -I$(includedir) \ - -I$(top_srcdir)/camel/tests/lib \ - -DG_LOG_DOMAIN=\"evolution-tests\" - -LDADD = \ - $(top_builddir)/camel/libcamel.la \ - $(top_builddir)/e-util/libeutil.la \ - $(top_builddir)/libibex/libibex.la \ - $(GNOME_LIBDIR) \ - $(top_builddir)/camel/tests/lib/libcameltest.a \ - $(GNOMEUI_LIBS) $(INTLLIBS) $(EXTRA_GNOME_LIBS) - -check_PROGRAMS = \ - test1 \ - test2 \ - test3 - -TESTS = test1 test2 test3 - - - diff --git a/camel/tests/message/README b/camel/tests/message/README deleted file mode 100644 index 280344ce9b..0000000000 --- a/camel/tests/message/README +++ /dev/null @@ -1,5 +0,0 @@ - -test1 creating, saving, loading simple messages -test2 camelinternetaddress tests, internationalised addresses, etc. -test3 multipart messages - diff --git a/camel/tests/message/test1.c b/camel/tests/message/test1.c deleted file mode 100644 index 3294000550..0000000000 --- a/camel/tests/message/test1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - test1.c - - Create a message, save it. - - Retrieve message, compare content. - - - Operations: - writing/loading from different types of streams - reading/writing different content - reading/writing different encodings - reading/writing different charsets - - Just testing streams: - different stream types - different file ops - seek, eof, etc. -*/ - -#include "camel-test.h" -#include "messages.h" - -/* for stat */ -#include <sys/stat.h> -#include <unistd.h> - -#include <camel/camel-mime-message.h> -#include <camel/camel-stream-fs.h> -#include <camel/camel-stream-mem.h> - -struct _text { - char *text; - int len; -}; - -#define MAX_TEXTS (14) -struct _text texts[MAX_TEXTS]; - -static void -setup(void) -{ - int i, j; - char *p; - - /* setup various edge and other general cases */ - texts[0].text = ""; - texts[0].len = 0; - texts[1].text = ""; - texts[1].len = 1; - texts[2].text = "\n"; - texts[2].len = 1; - texts[3].text = "A"; - texts[3].len = 1; - texts[4].text = "This is a test.\n."; - texts[4].len = strlen(texts[4].text); - texts[5].text = "This is a test.\n\n.\n"; - texts[5].len = strlen(texts[5].text); - texts[6].text = g_malloc0(1024); - texts[6].len = 1024; - texts[7].text = g_malloc0(102400); - texts[7].len = 102400; - texts[8].text = g_malloc(1024); - memset(texts[8].text, '\n', 1024); - texts[8].len = 1024; - texts[9].text = g_malloc(102400); - memset(texts[9].text, '\n', 102400); - texts[9].len = 102400; - texts[10].text = g_malloc(1024); - memset(texts[10].text, ' ', 1024); - texts[10].len = 1024; - texts[11].text = g_malloc(102400); - memset(texts[11].text, ' ', 102400); - texts[11].len = 102400; - - srand(42); - p = texts[12].text = g_malloc(1024); - for (i=0;i<1024;i++) { - j = rand(); - if (j<RAND_MAX/120) - *p++ = '\n'; - else - *p++ = (j % 95) + 32; - } - texts[12].len = 1024; - p = texts[13].text = g_malloc(102400); - for (i=0;i<102400;i++) { - j = rand(); - if (j<RAND_MAX/120) - *p++ = '\n'; - else - *p++ = (j % 95) + 32; - } - texts[13].len = 102400; -} - -static void cleanup(void) -{ - int i; - - for (i=6;i<14;i++) { - g_free(texts[i].text); - } -} - -int main(int argc, char **argv) -{ - CamelMimeMessage *msg, *msg2; - int i, j; - char *text; - int len; - - camel_test_init(argc, argv); - - setup(); - - camel_test_start("Simple memory-based content creation"); - - /* test all ways of setting simple content for a message (i.e. memory based) */ - for (j=0;j<MAX_TEXTS;j++) { - push("testing text number %d", j); - text = texts[j].text; - len = texts[j].len; - for (i=0;i<SET_CONTENT_WAYS;i++) { - push("create simple message %d", i); - msg = test_message_create_simple(); - - push("set simple content"); - test_message_set_content_simple((CamelMimePart *)msg, i, "text/plain", text, len); - pull(); - - push("compare original content"); - test_message_compare_content(camel_medium_get_content_object((CamelMedium *)msg), text, len); - pull(); - - push("save message to test1.msg"); - unlink("test1.msg"); - test_message_write_file(msg, "test1.msg"); - check_unref(msg, 1); - pull(); - - push("read from test1.msg"); - msg2 = test_message_read_file("test1.msg"); - pull(); - - push("compare read with original content"); - test_message_compare_content(camel_medium_get_content_object((CamelMedium *)msg2), text, len); - check_unref(msg2, 1); - pull(); - - unlink("test1.msg"); - pull(); - } - pull(); - } - - camel_test_end(); - - camel_test_start("Different encodings"); - for (j=0;j<MAX_TEXTS;j++) { - push("testing text number %d", j); - text = texts[j].text; - len = texts[j].len; - for (i=0;i<CAMEL_MIME_PART_NUM_ENCODINGS;i++) { - - push("test simple message, encoding %s", camel_mime_part_encoding_to_string(i)); - msg = test_message_create_simple(); - - push("set simple content"); - test_message_set_content_simple((CamelMimePart *)msg, 0, "text/plain", text, len); - pull(); - - camel_mime_part_set_encoding((CamelMimePart *)msg, i); - - push("save message to test1.msg"); - unlink("test1.msg"); - test_message_write_file(msg, "test1.msg"); - check_unref(msg, 1); - pull(); - - push("read from test1.msg"); - msg2 = test_message_read_file("test1.msg"); - pull(); - - push("compare read with original content"); - test_message_compare_content(camel_medium_get_content_object((CamelMedium *)msg2), text, len); - check_unref(msg2, 1); - pull(); - - unlink("test1.msg"); - pull(); - } - pull(); - } - camel_test_end(); - - cleanup(); - - return 0; -} diff --git a/camel/tests/message/test2.c b/camel/tests/message/test2.c deleted file mode 100644 index 95b0e324aa..0000000000 --- a/camel/tests/message/test2.c +++ /dev/null @@ -1,326 +0,0 @@ -#include "camel-test.h" -#include "messages.h" -#include "addresses.h" - -/* for stat */ -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> -#include <stdio.h> -#include <iconv.h> - -#include <camel/camel-internet-address.h> -#include <camel/camel-address.h> - -#include "address-data.h" - -static char *convert(const char *in, const char *from, const char *to) -{ - iconv_t ic = iconv_open(to, from); - char *out, *outp; - const char *inp; - int inlen, outlen; - - if (ic == (iconv_t)-1) - return g_strdup(in); - - inlen = strlen(in); - outlen = inlen*5 + 16; - - outp = out = g_malloc(outlen); - inp = in; - - if (iconv(ic, &inp, &inlen, &outp, &outlen) == -1) { - test_free(out); - iconv_close(ic); - return g_strdup(in); - } - - if (iconv(ic, NULL, 0, &outp, &outlen) == -1) { - test_free(out); - iconv_close(ic); - return g_strdup(in); - } - - iconv_close(ic); - - *outp = 0; - -#if 0 - /* lets see if we can convert back again? */ - { - char *nout, *noutp; - iconv_t ic = iconv_open(from, to); - - inp = out; - inlen = strlen(out); - outlen = inlen*5 + 16; - noutp = nout = g_malloc(outlen); - if (iconv(ic, &inp, &inlen, &noutp, &outlen) == -1 - || iconv(ic, NULL, 0, &noutp, &outlen) == -1) { - g_warning("Cannot convert '%s' \n from %s to %s: %s\n", in, to, from, strerror(errno)); - } - iconv_close(ic); - } - - /* and lets see what camel thinks out optimal charset is */ - { - printf("Camel thinks the best encoding of '%s' is %s, although we converted from %s\n", - in, camel_charset_best(out, strlen(out)), from); - } -#endif - - return out; -} - -#define to_utf8(in, type) convert(in, type, "utf-8") -#define from_utf8(in, type) convert(in, "utf-8", type) - -#define ARRAY_LEN(x) (sizeof(x)/sizeof(x[0])) - -int main(int argc, char **argv) -{ - int i; - CamelInternetAddress *addr, *addr2; - char *name; - char *charset; - const char *real, *where; - char *enc, *enc2, *format, *format2; - - camel_test_init(argc, argv); - - camel_test_start("CamelInternetAddress, basics"); - - addr = camel_internet_address_new(); - - push("Test blank address"); - check(camel_address_length(CAMEL_ADDRESS(addr)) == 0); - check(camel_internet_address_get(addr, 0, &real, &where) == FALSE); - pull(); - - push("Test blank clone"); - addr2 = CAMEL_INTERNET_ADDRESS(camel_address_new_clone(CAMEL_ADDRESS(addr))); - test_address_compare(addr, addr2); - check_unref(addr2, 1); - pull(); - - push("Test add 1"); - camel_internet_address_add(addr, "Zed", "nowhere@here.com.au"); - check(camel_address_length(CAMEL_ADDRESS(addr)) == 1); - check(camel_internet_address_get(addr, 0, &real, &where) == TRUE); - check_msg(string_equal("Zed", real), "real = '%s'", real); - check(strcmp(where, "nowhere@here.com.au") == 0); - pull(); - - push("Test clone 1"); - addr2 = CAMEL_INTERNET_ADDRESS(camel_address_new_clone(CAMEL_ADDRESS(addr))); - test_address_compare(addr, addr2); - check_unref(addr2, 1); - pull(); - - push("Test add many"); - for (i=1;i<10;i++) { - char name[16], a[32]; - sprintf(name, "Zed %d", i); - sprintf(a, "nowhere@here-%d.com.au", i); - camel_internet_address_add(addr, name, a); - check(camel_address_length(CAMEL_ADDRESS(addr)) == i+1); - check(camel_internet_address_get(addr, i, &real, &where) == TRUE); - check_msg(string_equal(name, real), "name = '%s' real = '%s'", name, real); - check(strcmp(where, a) == 0); - } - pull(); - - /* put a few of these in to make it look like its doing something impressive ... :) */ - camel_test_end(); - camel_test_start("CamelInternetAddress, search"); - - push("Test search"); - camel_test_nonfatal("Address comparisons should ignore whitespace??"); - check(camel_internet_address_find_name(addr, "Zed 1", &where) == 1); - check(camel_internet_address_find_name(addr, "Zed 9", &where) == 9); - check(camel_internet_address_find_name(addr, "Zed", &where) == 0); - check(camel_internet_address_find_name(addr, " Zed", &where) == 0); - check(camel_internet_address_find_name(addr, "Zed ", &where) == 0); - check(camel_internet_address_find_name(addr, " Zed ", &where) == 0); - check(camel_internet_address_find_name(addr, "Zed 20", &where) == -1); - check(camel_internet_address_find_name(addr, "", &where) == -1); - /* interface dont handle nulls :) */ - /*check(camel_internet_address_find_name(addr, NULL, &where) == -1);*/ - - check(camel_internet_address_find_address(addr, "nowhere@here-1.com.au", &where) == 1); - check(camel_internet_address_find_address(addr, "nowhere@here-1 . com.au", &where) == 1); - check(camel_internet_address_find_address(addr, "nowhere@here-2 .com.au ", &where) == 2); - check(camel_internet_address_find_address(addr, " nowhere @here-3.com.au", &where) == 3); - check(camel_internet_address_find_address(addr, "nowhere@here-20.com.au ", &where) == -1); - check(camel_internet_address_find_address(addr, "", &where) == -1); - /*check(camel_internet_address_find_address(addr, NULL, &where) == -1);*/ - camel_test_fatal(); - pull(); - - camel_test_end(); - camel_test_start("CamelInternetAddress, copy/cat/clone"); - - push("Test clone many"); - addr2 = CAMEL_INTERNET_ADDRESS(camel_address_new_clone(CAMEL_ADDRESS(addr))); - test_address_compare(addr, addr2); - pull(); - - push("Test remove items"); - camel_address_remove(CAMEL_ADDRESS(addr2), 0); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 9); - camel_address_remove(CAMEL_ADDRESS(addr2), 0); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 8); - camel_address_remove(CAMEL_ADDRESS(addr2), 5); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 7); - camel_address_remove(CAMEL_ADDRESS(addr2), 10); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 7); - camel_address_remove(CAMEL_ADDRESS(addr2), -1); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 0); - check_unref(addr2, 1); - pull(); - - push("Testing copy/cat"); - push("clone + cat"); - addr2 = CAMEL_INTERNET_ADDRESS(camel_address_new_clone(CAMEL_ADDRESS(addr))); - camel_address_cat(CAMEL_ADDRESS(addr2), CAMEL_ADDRESS(addr)); - check(camel_address_length(CAMEL_ADDRESS(addr)) == 10); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 20); - check_unref(addr2, 1); - pull(); - - push("cat + cat + copy"); - addr2 = camel_internet_address_new(); - camel_address_cat(CAMEL_ADDRESS(addr2), CAMEL_ADDRESS(addr)); - test_address_compare(addr, addr2); - camel_address_cat(CAMEL_ADDRESS(addr2), CAMEL_ADDRESS(addr)); - check(camel_address_length(CAMEL_ADDRESS(addr)) == 10); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 20); - camel_address_copy(CAMEL_ADDRESS(addr2), CAMEL_ADDRESS(addr)); - test_address_compare(addr, addr2); - check_unref(addr2, 1); - pull(); - - push("copy"); - addr2 = camel_internet_address_new(); - camel_address_copy(CAMEL_ADDRESS(addr2), CAMEL_ADDRESS(addr)); - test_address_compare(addr, addr2); - check_unref(addr2, 1); - pull(); - - pull(); - - check_unref(addr, 1); - - camel_test_end(); - - camel_test_start("CamelInternetAddress, I18N"); - - for (i=0;i<ARRAY_LEN(test_lines);i++) { - push("Testing text line %d (%s) '%s'", i, test_lines[i].type, test_lines[i].line); - - addr = camel_internet_address_new(); - - /* first, convert to api format (utf-8) */ - charset = test_lines[i].type; - name = to_utf8(test_lines[i].line, charset); - - push("Address setup"); - camel_internet_address_add(addr, name, "nobody@nowhere.com"); - check(camel_internet_address_get(addr, 0, &real, &where) == TRUE); - check_msg(string_equal(name, real), "name = '%s' real = '%s'", name, real); - check(strcmp(where, "nobody@nowhere.com") == 0); - test_free(name); - - check(camel_internet_address_get(addr, 1, &real, &where) == FALSE); - check(camel_address_length(CAMEL_ADDRESS(addr)) == 1); - pull(); - - push("Address encode/decode"); - enc = camel_address_encode(CAMEL_ADDRESS(addr)); - - addr2 = camel_internet_address_new(); - check(camel_address_decode(CAMEL_ADDRESS(addr2), enc) == 1); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 1); - - enc2 = camel_address_encode(CAMEL_ADDRESS(addr2)); - check_msg(string_equal(enc, enc2), "enc = '%s' enc2 = '%s'", enc, enc2); - test_free(enc2); - - push("Compare addresses"); - test_address_compare(addr, addr2); - pull(); - check_unref(addr2, 1); - test_free(enc); - pull(); - - /* FIXME: format/unformat arne't guaranteed to be reversible, at least at the moment */ - camel_test_nonfatal("format/unformat not (yet) reversible for all cases"); - - push("Address format/unformat"); - format = camel_address_format(CAMEL_ADDRESS(addr)); - - addr2 = camel_internet_address_new(); - check(camel_address_unformat(CAMEL_ADDRESS(addr2), format) == 1); - check(camel_address_length(CAMEL_ADDRESS(addr2)) == 1); - - format2 = camel_address_format(CAMEL_ADDRESS(addr2)); - check_msg(string_equal(format, format2), "format = '%s\n\tformat2 = '%s'", format, format2); - test_free(format2); - - /* currently format/unformat doesn't handle ,'s and other special chars at all */ - if (camel_address_length(CAMEL_ADDRESS(addr2)) == 1) { - push("Compare addresses"); - test_address_compare(addr, addr2); - pull(); - } - - test_free(format); - pull(); - - camel_test_fatal(); - - check_unref(addr2, 1); - - check_unref(addr, 1); - pull(); - - } - - camel_test_end(); - - camel_test_start("CamelInternetAddress, I18N decode"); - - for (i=0;i<ARRAY_LEN(test_address);i++) { - push("Testing address line %d '%s'", i, test_address[i].addr); - - addr = camel_internet_address_new(); - push("checking decoded"); - check(camel_address_decode(CAMEL_ADDRESS(addr), test_address[i].addr) == test_address[i].count); - format = camel_address_format(CAMEL_ADDRESS(addr)); - check(strcmp(format, test_address[i].utf8) == 0); - test_free(format); - pull(); - - push("Comparing re-encoded output"); - addr2 = CAMEL_INTERNET_ADDRESS(camel_internet_address_new()); - enc = camel_address_encode(CAMEL_ADDRESS(addr)); - check_msg(camel_address_decode(CAMEL_ADDRESS(addr2), enc) == test_address[i].count, "enc = '%s'", enc); - test_free(enc); - test_address_compare(addr, addr2); - check_unref(addr2, 1); - pull(); - - check_unref(addr, 1); - - pull(); - } - - camel_test_end(); - - /* FIXME: Add test of decoding of broken addresses */ - - return 0; -} - - diff --git a/camel/tests/message/test3.c b/camel/tests/message/test3.c deleted file mode 100644 index 0a9683d146..0000000000 --- a/camel/tests/message/test3.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - Multipart. -*/ - -#include "camel-test.h" -#include "messages.h" - -/* for stat */ -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> - -#include <camel/camel-mime-message.h> -#include <camel/camel-stream-fs.h> -#include <camel/camel-stream-mem.h> -#include "camel/camel-multipart.h" - -int main(int argc, char **argv) -{ - CamelMimeMessage *msg, *msg2, *msg3; - CamelMultipart *mp, *mp2; - CamelMimePart *part, *part2, *part3; - - camel_test_init(argc, argv); - - camel_test_start("multipart message"); - - push("building message"); - msg = test_message_create_simple(); - mp = camel_multipart_new(); - - /* Hrm, this should be able to set its own boundary, no? */ - camel_multipart_set_boundary(mp, "_=,.XYZ_Kangaroo_Meat_is_!_ABADF00D"); - check(strcmp(camel_multipart_get_boundary(mp), "_=,.XYZ_Kangaroo_Meat_is_!_ABADF00D") == 0); - - camel_medium_set_content_object((CamelMedium *)msg, (CamelDataWrapper *)mp); - check(camel_multipart_get_number(mp) == 0); - check(camel_multipart_get_part(mp, 0) == NULL); - check(camel_multipart_get_part(mp, 1) == NULL); - - push("adding/removing parts"); - part = camel_mime_part_new(); - test_message_set_content_simple(part, 0, "text/plain", "content part 1", strlen("content part 1")); - camel_multipart_add_part(mp, part); - check(CAMEL_OBJECT(part)->ref_count == 2); - check(camel_multipart_get_number(mp) == 1); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == NULL); - - camel_multipart_remove_part(mp, part); - check(CAMEL_OBJECT(part)->ref_count == 1); - check(camel_multipart_get_number(mp) == 0); - check(camel_multipart_get_part(mp, 0) == NULL); - check(camel_multipart_get_part(mp, 1) == NULL); - - camel_multipart_add_part_at(mp, part, 0); - check(CAMEL_OBJECT(part)->ref_count == 2); - check(camel_multipart_get_number(mp) == 1); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == NULL); - - check(camel_multipart_remove_part_at(mp, 1) == NULL); - check(CAMEL_OBJECT(part)->ref_count == 2); - check(camel_multipart_get_number(mp) == 1); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == NULL); - - check(camel_multipart_remove_part_at(mp, 0) == part); - check(CAMEL_OBJECT(part)->ref_count == 1); - check(camel_multipart_get_number(mp) == 0); - check(camel_multipart_get_part(mp, 0) == NULL); - check(camel_multipart_get_part(mp, 1) == NULL); - - camel_multipart_add_part(mp, part); - check(CAMEL_OBJECT(part)->ref_count == 2); - check(camel_multipart_get_number(mp) == 1); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == NULL); - - part2 = camel_mime_part_new(); - test_message_set_content_simple(part2, 0, "text/plain", "content part 2", strlen("content part 2")); - camel_multipart_add_part(mp, part2); - check(CAMEL_OBJECT(part2)->ref_count == 2); - check(camel_multipart_get_number(mp) == 2); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == part2); - - part3 = camel_mime_part_new(); - test_message_set_content_simple(part3, 0, "text/plain", "content part 3", strlen("content part 3")); - camel_multipart_add_part_at(mp, part3, 1); - check(CAMEL_OBJECT(part3)->ref_count == 2); - check(camel_multipart_get_number(mp) == 3); - check(camel_multipart_get_part(mp, 0) == part); - check(camel_multipart_get_part(mp, 1) == part3); - check(camel_multipart_get_part(mp, 2) == part2); - pull(); - - push("save message to test3.msg"); - unlink("test3.msg"); - test_message_write_file(msg, "test3.msg"); - pull(); - - push("read from test3.msg"); - msg2 = test_message_read_file("test3.msg"); - pull(); - - push("compre content of multipart"); - mp2 = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)msg2); - check(mp2 != NULL); - check(CAMEL_IS_MULTIPART(mp2)); - check(camel_multipart_get_number(mp2) == 3); - - check(strcmp(camel_multipart_get_boundary(mp2), "_=,.XYZ_Kangaroo_Meat_is_!_ABADF00D") == 0); - check(mp2->preface == NULL || strlen(mp2->preface) == 0); - - /* FIXME */ - camel_test_nonfatal("postface may gain a single \\n?"); - check_msg(mp2->postface == NULL || strlen(mp2->postface) == 0, "postface: '%s'", mp2->postface); - camel_test_fatal(); - - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 0))), - "content part 1", strlen("content part 1")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 1))), - "content part 3", strlen("content part 3")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 2))), - "content part 2", strlen("content part 2")); - pull(); - - push("writing again, & re-reading"); - unlink("test3-2.msg"); - test_message_write_file(msg2, "test3-2.msg"); - msg3 = test_message_read_file("test3-2.msg"); - - push("comparing again"); - mp2 = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)msg3); - check(mp2 != NULL); - check(CAMEL_IS_MULTIPART(mp2)); - check(camel_multipart_get_number(mp2) == 3); - - check(strcmp(camel_multipart_get_boundary(mp2), "_=,.XYZ_Kangaroo_Meat_is_!_ABADF00D") == 0); - check(mp2->preface == NULL || strlen(mp2->preface) == 0); - - /* FIXME */ - camel_test_nonfatal("postface may gain a single \\n?"); - check_msg(mp2->postface == NULL || strlen(mp2->postface) == 0, "postface: '%s'", mp2->postface); - camel_test_fatal(); - - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 0))), - "content part 1", strlen("content part 1")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 1))), - "content part 3", strlen("content part 3")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 2))), - "content part 2", strlen("content part 2")); - pull(); - pull(); - - check_unref(msg2, 1); - check_unref(msg3, 1); - - push("testing pre/post text"); - camel_multipart_set_preface(mp, "pre-text\nLines."); - camel_multipart_set_postface(mp, "post-text, no lines.\nOne line.\n"); - - check(strcmp(mp->preface, "pre-text\nLines.") == 0); - check(strcmp(mp->postface, "post-text, no lines.\nOne line.\n") == 0); - - push("writing /re-reading"); - unlink("test3-3.msg"); - test_message_write_file(msg, "test3-3.msg"); - msg2 = test_message_read_file("test3-3.msg"); - - mp2 = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)msg2); - check(mp2 != NULL); - check(CAMEL_IS_MULTIPART(mp2)); - check(camel_multipart_get_number(mp2) == 3); - - check(strcmp(camel_multipart_get_boundary(mp2), "_=,.XYZ_Kangaroo_Meat_is_!_ABADF00D") == 0); - check(strcmp(mp2->preface, "pre-text\nLines.") == 0); - check(strcmp(mp2->postface, "post-text, no lines.\nOne line.\n") == 0); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 0))), - "content part 1", strlen("content part 1")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 1))), - "content part 3", strlen("content part 3")); - test_message_compare_content(camel_medium_get_content_object(CAMEL_MEDIUM(camel_multipart_get_part(mp2, 2))), - "content part 2", strlen("content part 2")); - pull(); - check_unref(msg2, 1); - pull(); - - check_unref(msg, 1); - check_unref(mp, 1); - check_unref(part, 1); - check_unref(part2, 1); - check_unref(part3, 1); - - camel_test_end(); - - return 0; -} |