aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/notmuch-test
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-06-05 08:40:26 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-06-05 08:40:26 -0700
commit9c7668bdb51e4739eecda83b6452ef668ed0efa3 (patch)
tree4a8139cf7179186245a732f0df9b2ba1fc753a5a /test/notmuch-test
parent42e146a3a20c1ca2e1a9d6fd2d5e5e9d03a06641 (diff)
Avoid giving GMime a NULL MIME-stream filter.
Micah Anderson reported an issue where a message failed to display in the emacs interface, (it instead gave an error, "json-read-string: Bad string format"). Micah tracked this down to the json output from "notmuch show" being interrupted by a GMime error message: gmime-CRITICAL **: g_mime_stream_filter_add: assertion `GMIME_IS_FILTER (filter) I tracked this down further to notmuch passing a NULL value to g_mime_stream_filter_add. And this was due to calling g_mime_filter_charset_new with a value of "unknown-8bit". So we add a test message withe a Conten-Type of "text/plain; charset=unknown-8bit" from Micah's message. Then we fix "notmuch show" to test for NULL before calling g_mime_stream_filter_add. Bug fixed.
Diffstat (limited to 'test/notmuch-test')
-rwxr-xr-xtest/notmuch-test27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/notmuch-test b/test/notmuch-test
index eaaaf89b..00ac6b0e 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -67,6 +67,7 @@ increment_mtime ()
# [reply-to]=some-address
# [in-reply-to]=<message-id>
# [references]=<message-id>
+# [content-type]=content-type-specification
# '[header]=full header line, including keyword'
#
# Additional values for email headers. If these are not provided
@@ -147,6 +148,11 @@ ${additional_headers}"
${additional_headers}"
fi
+ if [ ! -z "${template[content-type]}" ]; then
+ additional_headers="Content-Type: ${template[content-type]}
+${additional_headers}"
+ fi
+
cat <<EOF >$gen_msg_filename
From: ${template[from]}
@@ -1147,6 +1153,27 @@ printf " Ensure all messages were threaded together...\t"
output=$($NOTMUCH search 'subject:"a ridiculously-long message ID"' | notmuch_search_sanitize)
pass_if_equal "$output" "thread:XXX 2001-01-05 [1/3] Notmuch Test Suite; A ridiculously-long message ID (inbox unread)"
+printf "\nTesting encoding issues...\n"
+printf " Message with text of unknown charset...\t"
+add_message '[content-type]="text/plain; charset=unknown-8bit"' \
+ '[body]=irrelevant'
+
+output=$($NOTMUCH show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize)
+pass_if_equal "$output" " message{ id:msg-074@notmuch-test-suite depth:0 match:1 filename:/XXX/mail/msg-074
+ header{
+Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)
+Subject: Test message #74
+From: Notmuch Test Suite <test_suite@notmuchmail.org>
+To: Notmuch Test Suite <test_suite@notmuchmail.org>
+Date: Tue, 05 Jan 2001 15:43:57 -0800
+ header}
+ body{
+ part{ ID: 1, Content-type: text/plain
+irrelevant
+ part}
+ body}
+ message}"
+
echo ""
echo "Notmuch test suite complete."