From e05291d4533422b8f764b35dd4272f0bf3c638c1 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 23:52:25 +0800 Subject: [PATCH] [PATCH 3/4] test: sanitize dates in emacs, raw, and text output --- c9/427513157bf2133664e413c2498dff9dfd5048 | 258 ++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 c9/427513157bf2133664e413c2498dff9dfd5048 diff --git a/c9/427513157bf2133664e413c2498dff9dfd5048 b/c9/427513157bf2133664e413c2498dff9dfd5048 new file mode 100644 index 000000000..894dc3eb2 --- /dev/null +++ b/c9/427513157bf2133664e413c2498dff9dfd5048 @@ -0,0 +1,258 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 1D098431E62 + for ; Sun, 8 Dec 2013 07:53:10 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Y5-EOqazru8s for ; + Sun, 8 Dec 2013 07:53:04 -0800 (PST) +Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155]) + (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 22398431E64 + for ; Sun, 8 Dec 2013 07:52:55 -0800 (PST) +Received: from remotemail by yantan.tethera.net with local (Exim 4.80) + (envelope-from ) + id 1Vpgf8-0006AO-QH; Sun, 08 Dec 2013 11:52:54 -0400 +Received: (nullmailer pid 22782 invoked by uid 1000); Sun, 08 Dec 2013 + 15:52:31 -0000 +From: David Bremner +To: notmuch@notmuchmail.org +Subject: [PATCH 3/4] test: sanitize dates in emacs, raw, and text output +Date: Sun, 8 Dec 2013 23:52:25 +0800 +Message-Id: <1386517946-22054-4-git-send-email-david@tethera.net> +X-Mailer: git-send-email 1.8.4.3 +In-Reply-To: <1386517946-22054-1-git-send-email-david@tethera.net> +References: <1386517946-22054-1-git-send-email-david@tethera.net> +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sun, 08 Dec 2013 15:53:10 -0000 + +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 456435c..1b1ebe3 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 ec86333..2a3a535 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 8609652..b6c86bf 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 de0b867..daf5735 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 9d2f805..d238c66 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 |' \ ++ -e 's|Date: Fri, 05 Jan 2001.*|Date: GENERATED_DATE|' + } + + 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 .*/Date: GENERATED_DATE/' ++} + # End of notmuch helper functions + + # Use test_set_prereq to tell that a particular prerequisite is available. +-- +1.8.4.3 + -- 2.26.2