The test suite doesn't yet cover --format=json output nor UTF-8 in
subject or body.
This patch starts with test cases for 'search --format=json' and
'show --format=json'.
Furthermore, it has test cases for a search for a UTF-8 string in a mail
body for a UTF-8 string in a mail subject.
Finally, it has a test case for --format=json with UTF-8 messages,
demonstrating the fix in 1267697893-sup-4538 at sam.mediasupervision.de.
---
test/notmuch-test | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/test/notmuch-test b/test/notmuch-test
index 1c5191b..b2a0756 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -146,7 +146,7 @@ add_message ()
}
NOTMUCH_IGNORED_OUTPUT_REGEXP='^Processed [0-9]*( total)? file|Found [0-9]*
total file'
-NOTMUCH_THREAD_ID_SQUELCH='s/thread:................/thread:XXX/'
+NOTMUCH_THREAD_ID_SQUELCH='s/thread:................/thread:XXX/;s/"thread":
"................",/"thread": "XXX",/'
execute_expecting ()
{
args=$1
@@ -348,6 +348,42 @@ add_message '[subject]="body search (phrase)"'
'[date]="Sat, 01 Jan 2000 12:00:0
add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00
-0000"' '[body]="This phrase should not match the body search"'
execute_expecting "search '\"body search (phrase)\"'" "thread:XXX 2000-01-01
[1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
+printf " Show message: json...\t\t"
+add_message '[subject]="json-show-subject"' '[date]="Sat, 01 Jan 2000 12:00:00
-0000"' '[body]="json-show-message"'
+execute_expecting "show --format=json 'json-show-message'" '[[[{"id":
"'${gen_msg_id}'", "match": true, "filename": "'${gen_msg_filename}'",
"date_unix": 946728000, "date_relative": "2000-01-01", "tags":
["inbox","unread"], "headers": {"Subject": "json-show-subject", "From":
"Notmuch Test Suite <test_suite at notmuchmail.org>", "To": "Notmuch Test Suite
<test_suite at notmuchmail.org>", "Cc": "", "Bcc": "", "Date": "Sat, 01 Jan
2000 12:00:00 -0000"}, "body": [{"id": 1, "content-type": "text/plain",
"content": "json-show-message\n"}]}, []]]]'
+
+printf " Search message: json...\t"
+add_message '[subject]="json-search-subject"' '[date]="Sat, 01 Jan 2000
12:00:00 -0000"' '[body]="json-search-message"'
+execute_expecting "search --format=json 'json-search-message'" '[{"thread":
"XXX",
+"timestamp": 946724400,
+"matched": 1,
+"total": 1,
+"authors": "Notmuch Test Suite",
+"subject": "json-search-subject",
+"tags": ["inbox", "unread"]}]'
+
+printf " Search by subject (utf-8):...\t"
+add_message [subject]=utf8-s?bj?ct '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
+execute_expecting "search subject:utf8-s?bj?ct" "thread:XXX 2000-01-01 [1/1]
Notmuch Test Suite; utf8-s?bj?ct (inbox unread)"
+
+printf " Search body (utf-8):...\t"
+add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000
12:00:00 -0000"' '[body]="message body utf8: b?d?"'
+execute_expecting "search 'b?d?'" "thread:XXX 2000-01-01 [1/1] Notmuch Test
Suite; utf8-message-body-subject (inbox unread)"
+
+printf " Show message: json, utf-8...\t"
+add_message '[subject]="json-show-utf8-body-s?bj?ct"' '[date]="Sat, 01 Jan
2000 12:00:00 -0000"' '[body]="js?n-show-m?ssage"'
+execute_expecting "show --format=json 'js?n-show-m?ssage'" '[[[{"id":
"'${gen_msg_id}'", "match": true, "filename": "'${gen_msg_filename}'",
"date_unix": 946728000, "date_relative": "2000-01-01", "tags":
["inbox","unread"], "headers": {"Subject": "json-show-utf8-body-s?bj?ct",
"From": "Notmuch Test Suite <test_suite at notmuchmail.org>", "To": "Notmuch
Test Suite <test_suite at notmuchmail.org>", "Cc": "", "Bcc": "", "Date": "Sat,
01 Jan 2000 12:00:00 -0000"}, "body": [{"id": 1, "content-type": "text/plain",
"content": "js?n-show-m?ssage\n"}]}, []]]]'
+
+printf " Search message: json, utf-8...\t"
+add_message '[subject]="json-search-utf8-body-s?bj?ct"' '[date]="Sat, 01 Jan
2000 12:00:00 -0000"' '[body]="js?n-search-m?ssage"'
+execute_expecting "search --format=json 'js?n-search-m?ssage'" '[{"thread":
"XXX",
+"timestamp": 946724400,
+"matched": 1,
+"total": 1,
+"authors": "Notmuch Test Suite",
+"subject": "json-search-utf8-body-s?bj?ct",
+"tags": ["inbox", "unread"]}]'
+
printf " Search by from: (address)...\t"
add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000
12:00:00 -0000"' [from]=searchbyfrom at example.com
execute_expecting "search from:searchbyfrom at example.com" "thread:XXX
2000-01-01 [1/1] searchbyfrom at example.com; search by from (address) (inbox
unread)"