[PATCH 3/4] test: sanitize dates in emacs, raw, and text output
authorDavid Bremner <david@tethera.net>
Sun, 8 Dec 2013 15:52:25 +0000 (23:52 +0800)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:58:39 +0000 (09:58 -0800)
c9/427513157bf2133664e413c2498dff9dfd5048 [new file with mode: 0644]

diff --git a/c9/427513157bf2133664e413c2498dff9dfd5048 b/c9/427513157bf2133664e413c2498dff9dfd5048
new file mode 100644 (file)
index 0000000..894dc3e
--- /dev/null
@@ -0,0 +1,258 @@
+Return-Path: <bremner@tesseract.cs.unb.ca>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 1D098431E62\r
+       for <notmuch@notmuchmail.org>; Sun,  8 Dec 2013 07:53:10 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id Y5-EOqazru8s for <notmuch@notmuchmail.org>;\r
+       Sun,  8 Dec 2013 07:53:04 -0800 (PST)\r
+Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155])\r
+       (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id 22398431E64\r
+       for <notmuch@notmuchmail.org>; Sun,  8 Dec 2013 07:52:55 -0800 (PST)\r
+Received: from remotemail by yantan.tethera.net with local (Exim 4.80)\r
+       (envelope-from <bremner@tesseract.cs.unb.ca>)\r
+       id 1Vpgf8-0006AO-QH; Sun, 08 Dec 2013 11:52:54 -0400\r
+Received: (nullmailer pid 22782 invoked by uid 1000); Sun, 08 Dec 2013\r
+       15:52:31 -0000\r
+From: David Bremner <david@tethera.net>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 3/4] test: sanitize dates in emacs, raw, and text output\r
+Date: Sun,  8 Dec 2013 23:52:25 +0800\r
+Message-Id: <1386517946-22054-4-git-send-email-david@tethera.net>\r
+X-Mailer: git-send-email 1.8.4.3\r
+In-Reply-To: <1386517946-22054-1-git-send-email-david@tethera.net>\r
+References: <1386517946-22054-1-git-send-email-david@tethera.net>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=UTF-8\r
+Content-Transfer-Encoding: 8bit\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sun, 08 Dec 2013 15:53:10 -0000\r
+\r
+add a new function notmuch_date_sanitize for rfc822-ish things. Add\r
+date sanitization to notmuch_show_sanitize_all and use it more places.\r
+\r
+This is all in aid of a transition to unique timestamps on messages.\r
+---\r
+ test/emacs       | 12 +++++++-----\r
+ test/emacs-show  | 10 ++++++----\r
+ test/encoding    |  8 ++++----\r
+ test/raw         |  8 ++++----\r
+ test/test-lib.sh |  9 ++++++++-\r
+ 5 files changed, 29 insertions(+), 18 deletions(-)\r
+\r
+diff --git a/test/emacs b/test/emacs\r
+index 456435c..1b1ebe3 100755\r
+--- a/test/emacs\r
++++ b/test/emacs\r
+@@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \\r
+           "[from]=\"\\\"Invalid \\\" From\\\" <test_suite@notmuchmail.org>\""\r
+ thread=$(notmuch search --output=threads subject:message-with-invalid-from)\r
+ test_emacs "(notmuch-show \"$thread\")\r
+-          (test-output)"\r
++          (test-output \"OUTPUT.raw\")"\r
+ cat <<EOF >EXPECTED\r
+ "Invalid " (2001-01-05) (inbox)\r
+ Subject: message-with-invalid-from\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ This is just a test message (#1)\r
+ EOF\r
++notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+ test_expect_equal_file OUTPUT EXPECTED\r
\r
+ test_begin_subtest "Navigation of notmuch-search to thread view"\r
+@@ -605,11 +606,11 @@ Q: Why is top-posting such a bad thing?\r
+ A: Top-posting.\r
+ Q: What is the most annoying thing in e-mail?"'\r
+ test_emacs "(notmuch-show \"top-posting\")\r
+-          (test-visible-output)"\r
++          (test-visible-output \"OUTPUT.raw\")"\r
+ echo "Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+ Subject: The problem with top-posting\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ A: Because it messes up the order in which people normally read text.\r
+ Q: Why is top-posting such a bad thing?\r
+@@ -618,13 +619,14 @@ Q: What is the most annoying thing in e-mail?\r
+ Top Poster <top@poster.com> (2001-01-05) (inbox unread)\r
+ Subject: Re: The problem with top-posting\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ Thanks for the advice! I will be sure to put it to good use.\r
\r
+ -Top Poster\r
\r
+ [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED\r
++notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+ test_expect_equal_file OUTPUT EXPECTED\r
\r
+ test_begin_subtest "Hiding message in notmuch-show view"\r
+diff --git a/test/emacs-show b/test/emacs-show\r
+index ec86333..2a3a535 100755\r
+--- a/test/emacs-show\r
++++ b/test/emacs-show\r
+@@ -19,13 +19,14 @@ cat <<EOF >EXPECTED\r
+ Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+ Subject: Hiding Original Message region at beginning of a message\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ [ 2-line hidden original message. Click/Enter to show. ]\r
+ EOF\r
\r
+ test_emacs "(notmuch-show \"id:$message_id\")\r
+-          (test-visible-output)"\r
++          (test-visible-output \"OUTPUT.raw\")"\r
++notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+ test_expect_equal_file OUTPUT EXPECTED\r
\r
+ test_begin_subtest "Bare subject #1"\r
+@@ -130,12 +131,12 @@ mid:abc%20def\r
+ mid:abc. mid:abc, mid:abc;"'\r
+ test_emacs '(notmuch-show "id:'$gen_msg_id'")\r
+       (notmuch-test-mark-links)\r
+-      (test-visible-output)'\r
++      (test-visible-output "OUTPUT.raw")'\r
+ cat <<EOF >EXPECTED\r
+ Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)\r
+ Subject: id buttonization\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ <<id:abc>>\r
+ <<id:abc.def>>. <<id:abc,def>>, <<id:abc;def>>; <<id:abc:def>>:\r
+@@ -159,6 +160,7 @@ cid:xxx\r
+ <<mid:abc%20def>>\r
+ <<mid:abc>>. <<mid:abc>>, <<mid:abc>>;\r
+ EOF\r
++notmuch_date_sanitize < OUTPUT.raw > OUTPUT\r
+ test_expect_equal_file OUTPUT EXPECTED\r
\r
\r
+diff --git a/test/encoding b/test/encoding\r
+index 8609652..b6c86bf 100755\r
+--- a/test/encoding\r
++++ b/test/encoding\r
+@@ -5,14 +5,14 @@ test_description="encoding issues"\r
+ test_begin_subtest "Message with text of unknown charset"\r
+ add_message '[content-type]="text/plain; charset=unknown-8bit"' \\r
+           "[body]=irrelevant"\r
+-output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize)\r
+-test_expect_equal "$output" "\f\r
+message{ id:msg-001@notmuch-test-suite depth:0 match:1 excluded:0 filename:/XXX/mail/msg-001\r
++output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize_all)\r
++test_expect_equal "$output" "\f\r
+message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX\r
\f\r
+header{\r
+ Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread)\r
+ Subject: Message with text of unknown charset\r
+ From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\f\r
+header}\r
\f\r
+body{\r
\f\r
+part{ ID: 1, Content-type: text/plain\r
+@@ -26,7 +26,7 @@ add_message '[content-type]="text/plain; charset=iso-8859-2"' \\r
+             '[content-transfer-encoding]=8bit' \\r
+             '[subject]="ISO-8859-2 encoded message"' \\r
+             "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences\r
+-output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize)\r
++output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize_all)\r
+ test_expect_equal "$output" "thread:0000000000000002   2001-01-05 [1/1] Notmuch Test Suite; ISO-8859-2 encoded message (inbox unread)"\r
\r
+ test_begin_subtest "RFC 2047 encoded word with spaces"\r
+diff --git a/test/raw b/test/raw\r
+index de0b867..daf5735 100755\r
+--- a/test/raw\r
++++ b/test/raw\r
+@@ -11,22 +11,22 @@ output=$(notmuch show --format=raw "*" 2>&1)\r
+ test_expect_equal "$output" "Error: search term did not match precisely one message."\r
\r
+ test_begin_subtest "Show a raw message"\r
+-output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite)\r
++output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize)\r
+ test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+ Message-Id: <msg-001@notmuch-test-suite>\r
+ Subject: Test message #1\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ This is just a test message (#1)"\r
\r
+ test_begin_subtest "Show another raw message"\r
+-output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite)\r
++output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize)\r
+ test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+ To: Notmuch Test Suite <test_suite@notmuchmail.org>\r
+ Message-Id: <msg-002@notmuch-test-suite>\r
+ Subject: Test message #2\r
+-Date: Fri, 05 Jan 2001 15:43:57 +0000\r
++Date: GENERATED_DATE\r
\r
+ This is just a test message (#2)"\r
\r
+diff --git a/test/test-lib.sh b/test/test-lib.sh\r
+index 9d2f805..d238c66 100644\r
+--- a/test/test-lib.sh\r
++++ b/test/test-lib.sh\r
+@@ -618,7 +618,8 @@ notmuch_show_sanitize_all ()\r
+ {\r
+     sed \\r
+       -e 's| filename:.*| filename:XXXXX|' \\r
+-      -e 's| id:[^ ]* | id:XXXXX |'\r
++      -e 's| id:[^ ]* | id:XXXXX |' \\r
++      -e 's|Date: Fri, 05 Jan 2001.*|Date: GENERATED_DATE|'\r
+ }\r
\r
+ notmuch_json_show_sanitize ()\r
+@@ -641,6 +642,12 @@ notmuch_emacs_error_sanitize ()\r
+       -e 's/^\[.*\]$/[XXX]/' \\r
+       -e "s|^\(command: \)\{0,1\}/.*/$command|\1YYY/$command|"\r
+ }\r
++\r
++notmuch_date_sanitize ()\r
++{\r
++    sed \\r
++      -e 's/^Date: Fri, 05 Jan 2001 .*/Date: GENERATED_DATE/'\r
++}\r
+ # End of notmuch helper functions\r
\r
+ # Use test_set_prereq to tell that a particular prerequisite is available.\r
+-- \r
+1.8.4.3\r
+\r