From 72ff135ac3e79be548bf5b82b63d15ba278ef4ce Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 22:52:41 +0800 Subject: [PATCH] test: sanitize dates in emacs, raw, and text output add a new function notmuch_date_sanitize for rfc822-ish things. Add date sanitization to notmuch_show_sanitize_all and use it more places. This is all in aid of a transition to unique timestamps on messages. --- test/emacs | 12 +++++++----- test/emacs-show | 10 ++++++---- test/encoding | 8 ++++---- test/raw | 8 ++++---- test/test-lib.sh | 9 ++++++++- 5 files changed, 29 insertions(+), 18 deletions(-) diff --git a/test/emacs b/test/emacs index 456435c1..1b1ebe31 100755 --- a/test/emacs +++ b/test/emacs @@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \ "[from]=\"\\\"Invalid \\\" From\\\" \"" thread=$(notmuch search --output=threads subject:message-with-invalid-from) test_emacs "(notmuch-show \"$thread\") - (test-output)" + (test-output \"OUTPUT.raw\")" cat <EXPECTED "Invalid " (2001-01-05) (inbox) Subject: message-with-invalid-from To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#1) EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Navigation of notmuch-search to thread view" @@ -605,11 +606,11 @@ Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail?"' test_emacs "(notmuch-show \"top-posting\") - (test-visible-output)" + (test-visible-output \"OUTPUT.raw\")" echo "Notmuch Test Suite (2001-01-05) (inbox) Subject: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? @@ -618,13 +619,14 @@ Q: What is the most annoying thing in e-mail? Top Poster (2001-01-05) (inbox unread) Subject: Re: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE Thanks for the advice! I will be sure to put it to good use. -Top Poster [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Hiding message in notmuch-show view" diff --git a/test/emacs-show b/test/emacs-show index ec863334..2a3a5356 100755 --- a/test/emacs-show +++ b/test/emacs-show @@ -19,13 +19,14 @@ cat <EXPECTED Notmuch Test Suite (2001-01-05) (inbox) Subject: Hiding Original Message region at beginning of a message To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE [ 2-line hidden original message. Click/Enter to show. ] EOF test_emacs "(notmuch-show \"id:$message_id\") - (test-visible-output)" + (test-visible-output \"OUTPUT.raw\")" +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Bare subject #1" @@ -130,12 +131,12 @@ mid:abc%20def mid:abc. mid:abc, mid:abc;"' test_emacs '(notmuch-show "id:'$gen_msg_id'") (notmuch-test-mark-links) - (test-visible-output)' + (test-visible-output "OUTPUT.raw")' cat <EXPECTED Notmuch Test Suite (2001-01-05) (inbox) Subject: id buttonization To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE <> <>. <>, <>; <>: @@ -159,6 +160,7 @@ cid:xxx <> <>. <>, <>; EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED diff --git a/test/encoding b/test/encoding index 8609652c..b6c86bf0 100755 --- a/test/encoding +++ b/test/encoding @@ -5,14 +5,14 @@ test_description="encoding issues" test_begin_subtest "Message with text of unknown charset" add_message '[content-type]="text/plain; charset=unknown-8bit"' \ "[body]=irrelevant" -output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) -test_expect_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 excluded:0 filename:/XXX/mail/msg-001 +output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize_all) +test_expect_equal "$output" " message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX header{ Notmuch Test Suite (2001-01-05) (inbox unread) Subject: Message with text of unknown charset From: Notmuch Test Suite To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE header} body{ part{ ID: 1, Content-type: text/plain @@ -26,7 +26,7 @@ add_message '[content-type]="text/plain; charset=iso-8859-2"' \ '[content-transfer-encoding]=8bit' \ '[subject]="ISO-8859-2 encoded message"' \ "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences -output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize) +output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize_all) test_expect_equal "$output" "thread:0000000000000002 2001-01-05 [1/1] Notmuch Test Suite; ISO-8859-2 encoded message (inbox unread)" test_begin_subtest "RFC 2047 encoded word with spaces" diff --git a/test/raw b/test/raw index de0b8677..daf5735c 100755 --- a/test/raw +++ b/test/raw @@ -11,22 +11,22 @@ output=$(notmuch show --format=raw "*" 2>&1) test_expect_equal "$output" "Error: search term did not match precisely one message." test_begin_subtest "Show a raw message" -output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite) +output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize) test_expect_equal "$output" "From: Notmuch Test Suite To: Notmuch Test Suite Message-Id: Subject: Test message #1 -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#1)" test_begin_subtest "Show another raw message" -output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite) +output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize) test_expect_equal "$output" "From: Notmuch Test Suite To: Notmuch Test Suite Message-Id: Subject: Test message #2 -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#2)" diff --git a/test/test-lib.sh b/test/test-lib.sh index 8f18e735..d22408d8 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -618,7 +618,8 @@ notmuch_show_sanitize_all () { sed \ -e 's| filename:.*| filename:XXXXX|' \ - -e 's| id:[^ ]* | id:XXXXX |' + -e 's| id:[^ ]* | id:XXXXX |' | \ + notmuch_date_sanitize } notmuch_json_show_sanitize () @@ -641,6 +642,12 @@ notmuch_emacs_error_sanitize () -e 's/^\[.*\]$/[XXX]/' \ -e "s|^\(command: \)\{0,1\}/.*/$command|\1YYY/$command|" } + +notmuch_date_sanitize () +{ + sed \ + -e 's/^Date: Fri, 05 Jan 2001 .*0000/Date: GENERATED_DATE/' +} # End of notmuch helper functions # Use test_set_prereq to tell that a particular prerequisite is available. -- 2.43.0