[PATCH 1/1] test: test notmuch show --include-html option

Mark Walters markwalters1009 at gmail.com
Sat Aug 24 14:36:02 PDT 2013


Hi

Thanks for this. The pair of patches
id:notmuch-web-1372724382.450184839 at www.wuzzeb.org and
id:1377358170-20561-1-git-send-email-tomi.ollila at iki.fi LGTM +1

Best wishes

Mark

Tomi Ollila <tomi.ollila at iki.fi> writes:

> Test new --include-html option added to notmuch show command with
> json output message parts containing text in latin1 and utf8 format.
> ---
>
> this is test for id:notmuch-web-1372724382.450184839 at www.wuzzeb.org asked
> by Mark in id:87txifzexo.fsf at qmul.ac.uk
>
>  test/multipart | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 81 insertions(+), 1 deletion(-)
>
> diff --git a/test/multipart b/test/multipart
> index 2033023..b40fa2c 100755
> --- a/test/multipart
> +++ b/test/multipart
> @@ -647,4 +647,84 @@ notmuch show --format=raw --part=3 id:base64-part-with-crlf > crlf.out
>  echo -n -e "\xEF\x0D\x0A" > crlf.expected
>  test_expect_equal_file crlf.out crlf.expected
>  
> -test_done
> \ No newline at end of file
> +
> +# The ISO-8859-1 encoding of U+00BD is a single byte: octal 275
> +# (Portability note: Dollar-Single ($'...', ANSI C-style escape sequences)
> +# quoting works on bash, ksh, zsh, *BSD sh but not on dash, ash nor busybox sh)
> +readonly u_00bd_latin1=$'\275'
> +
> +# The Unicode fraction symbol 1/2 is U+00BD and is encoded
> +# in UTF-8 as two bytes: octal 302 275
> +readonly u_00bd_utf8=$'\302\275'
> +
> +cat <<EOF > ${MAIL_DIR}/include-html
> +From: A <a at example.com>
> +To: B <b at example.com>
> +Subject: html message
> +Date: Sat, 01 January 2000 00:00:00 +0000
> +Message-ID: <htmlmessage>
> +MIME-Version: 1.0
> +Content-Type: multipart/alternative; boundary="==-=="
> +
> +--==-==
> +Content-Type: text/html; charset=UTF-8
> +
> +<p>0.5 equals ${u_00bd_utf8}</p>
> +
> +--==-==
> +Content-Type: text/html; charset=ISO-8859-1
> +
> +<p>0.5 equals ${u_00bd_latin1}</p>
> +
> +--==-==
> +Content-Type: text/plain; charset=UTF-8
> +
> +0.5 equals ${u_00bd_utf8}
> +
> +--==-==--
> +EOF
> +
> +notmuch new > /dev/null
> +
> +cat_expected_head ()
> +{
> +        cat <<EOF
> +[[[{"id": "htmlmessage", "match":true, "excluded": false, "date_relative":"2000-01-01",
> +   "timestamp": 946684800,
> +   "filename": "${MAIL_DIR}/include-html",
> +   "tags": ["inbox", "unread"],
> +   "headers": { "Date": "Sat, 01 Jan 2000 00:00:00 +0000", "From": "A <a at example.com>",
> +                "Subject": "html message", "To": "B <b at example.com>"},
> +   "body": [{
> +     "content-type": "multipart/alternative", "id": 1,
> +EOF
> +}
> +
> +cat_expected_head > EXPECTED.nohtml
> +cat <<EOF >> EXPECTED.nohtml
> +"content": [
> +  { "id": 2, "content-charset": "UTF-8", "content-length": 21, "content-type": "text/html"},
> +  { "id": 3, "content-charset": "ISO-8859-1", "content-length": 20, "content-type": "text/html"},
> +  { "id": 4, "content-type": "text/plain", "content": "0.5 equals \\u00bd\\n"}
> +]}]},[]]]]
> +EOF
> +
> +# Both the UTF-8 and ISO-8859-1 part should have U+00BD
> +cat_expected_head > EXPECTED.withhtml
> +cat <<EOF >> EXPECTED.withhtml
> +"content": [
> +  { "id": 2, "content-type": "text/html", "content": "<p>0.5 equals \\u00bd</p>\\n"},
> +  { "id": 3, "content-type": "text/html", "content": "<p>0.5 equals \\u00bd</p>\\n"},
> +  { "id": 4, "content-type": "text/plain", "content": "0.5 equals \\u00bd\\n"}
> +]}]},[]]]]
> +EOF
> +
> +test_begin_subtest "html parts excluded by default"
> +notmuch show --format=json id:htmlmessage > OUTPUT
> +test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED.nohtml)"
> +
> +test_begin_subtest "html parts included"
> +notmuch show --format=json --include-html id:htmlmessage > OUTPUT
> +test_expect_equal_json "$(cat OUTPUT)" "$(cat EXPECTED.withhtml)"
> +
> +test_done
> -- 
> 1.8.0
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list