X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/f902253a124bd45a5011204ea4f9e6226b12d561..a1bedb6db8934e6788075a1e1cda001356cf1d8b:/lib/t-mime.c diff --git a/lib/t-mime.c b/lib/t-mime.c index 05ae8b5..eb5ee7c 100644 --- a/lib/t-mime.c +++ b/lib/t-mime.c @@ -38,7 +38,7 @@ void test_mime(void) { char *t, *n, *v; struct vector parts[1]; struct kvp *k; - const char *s; + const char *s, *cs, *enc; hash *h; fprintf(stderr, "test_mime\n"); @@ -308,6 +308,31 @@ void test_mime(void) { check_string(*(char **)hash_find(h, "content-type"), "text/plain"); check_string(*(char **)hash_find(h, "content-transfer-encoding"), "BASE64"); check_string(s, "wibble\r\n"); + +#define CHECK_QUOTE(INPUT, EXPECT) do { \ + s = quote822(INPUT, 0); \ + insist(s != 0); \ + check_string(s, EXPECT); \ + s = mime_parse_word(s, &t, mime_http_separator); \ + check_string(t, INPUT); \ +} while(0) + CHECK_QUOTE("wibble", "wibble"); + CHECK_QUOTE("wibble spong", "\"wibble spong\""); + CHECK_QUOTE("wibble\\spong", "\"wibble\\\\spong\""); + CHECK_QUOTE("wibble\"spong", "\"wibble\\\"spong\""); + CHECK_QUOTE("(wibble)", "\"(wibble)\""); + + s = mime_encode_text("wibble\n", &cs, &enc); + insist(s != 0); + check_string(s, "wibble\n"); + check_string(cs, "us-ascii"); + check_string(enc, "7bit"); + + s = mime_encode_text("wibble\xC3\xB7\n", &cs, &enc); + insist(s != 0); + check_string(s, "wibble=C3=B7\n"); + check_string(cs, "utf-8"); + check_string(enc, "quoted-printable"); } /*