X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Femacs-show;h=2a3a5356303a89ccfad1efe26f04bb2bf3dbbfe1;hp=5700d2e707a50bdd2ff7fd07fd694976fe517681;hb=84719b08f757a6079f4c3331d0c476d19b265948;hpb=d43f6c00b351424e903c2f2b71c34bc5902b467e diff --git a/test/emacs-show b/test/emacs-show index 5700d2e7..2a3a5356 100755 --- a/test/emacs-show +++ b/test/emacs-show @@ -1,7 +1,11 @@ #!/usr/bin/env bash -test_description="Testing emacs notmuch-show view" -. test-lib.sh +test_description="emacs notmuch-show view" +. ./test-lib.sh + +EXPECTED=$TEST_DIRECTORY/emacs-show.expected-output + +add_email_corpus test_begin_subtest "Hiding Original Message region at beginning of a message" message_id='OriginalMessageHiding.1@notmuchmail.org' @@ -15,13 +19,183 @@ 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" +output=$(test_emacs '(notmuch-show-strip-re "Re: subject")') +test_expect_equal "$output" '"subject"' + +test_begin_subtest "Bare subject #2" +output=$(test_emacs '(notmuch-show-strip-re "re:Re: re: Re: re:subject")') +test_expect_equal "$output" '"subject"' + +test_begin_subtest "Bare subject #3" +output=$(test_emacs '(notmuch-show-strip-re "the cure: fix the regexp")') +test_expect_equal "$output" '"the cure: fix the regexp"' + +test_begin_subtest "don't process cryptographic MIME parts" +test_emacs '(let ((notmuch-crypto-process-mime nil)) + (notmuch-show "id:20091117203301.GV3165@dottiness.seas.harvard.edu") + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-process-crypto-mime-parts-off + +test_begin_subtest "process cryptographic MIME parts" +test_emacs '(let ((notmuch-crypto-process-mime t)) + (notmuch-show "id:20091117203301.GV3165@dottiness.seas.harvard.edu") + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-process-crypto-mime-parts-on + +test_begin_subtest "process cryptographic MIME parts (w/ notmuch-show-toggle-process-crypto)" +test_emacs '(let ((notmuch-crypto-process-mime nil)) + (notmuch-show "id:20091117203301.GV3165@dottiness.seas.harvard.edu") + (notmuch-show-toggle-process-crypto) + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-process-crypto-mime-parts-on + +test_begin_subtest "notmuch-show: don't elide non-matching messages" +test_emacs '(let ((notmuch-show-only-matching-messages nil)) + (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") + (notmuch-test-wait) + (notmuch-search-show-thread) + (notmuch-test-wait) + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-off + +test_begin_subtest "notmuch-show: elide non-matching messages" +test_emacs '(let ((notmuch-show-only-matching-messages t)) + (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") + (notmuch-test-wait) + (notmuch-search-show-thread) + (notmuch-test-wait) + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on + +test_begin_subtest "notmuch-show: elide non-matching messages (w/ notmuch-show-toggle-elide-non-matching)" +test_emacs '(let ((notmuch-show-only-matching-messages nil)) + (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") + (notmuch-test-wait) + (notmuch-search-show-thread) + (notmuch-test-wait) + (notmuch-show-toggle-elide-non-matching) + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on + +test_begin_subtest "notmuch-show: elide non-matching messages (w/ prefix arg to notmuch-show)" +test_emacs '(let ((notmuch-show-only-matching-messages nil)) + (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") + (notmuch-test-wait) + (notmuch-search-show-thread t) + (notmuch-test-wait) + (test-visible-output))' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on + +test_begin_subtest "notmuch-show: disable indentation of thread content (w/ notmuch-show-toggle-thread-indentation)" +test_emacs '(notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") + (notmuch-test-wait) + (notmuch-search-show-thread) + (notmuch-test-wait) + (notmuch-show-toggle-thread-indentation) + (test-visible-output)' +test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-indent-thread-content-off + +test_begin_subtest "id buttonization" +add_message '[body]=" +id:abc +id:abc.def. id:abc,def, id:abc;def; id:abc:def: +id:foo@bar.?baz? id:foo@bar!.baz! +(id:foo@bar.baz) [id:foo@bar.baz] +id:foo@bar.baz... +id:2+2=5 +id:=_-:/.[]@$%+ +id:abc)def +id:ab\"c def +id:\"abc\"def +id:\"ab\"\"c\"def +id:\"ab c\"def +id:\"abc\".def +id:\"abc +\" +id:) +id: +cid:xxx +mid:abc mid:abc/def +mid:abc%20def +mid:abc. mid:abc, mid:abc;"' +test_emacs '(notmuch-show "id:'$gen_msg_id'") + (notmuch-test-mark-links) + (test-visible-output "OUTPUT.raw")' +cat <EXPECTED +Notmuch Test Suite (2001-01-05) (inbox) +Subject: id buttonization +To: Notmuch Test Suite +Date: GENERATED_DATE + +<> +<>. <>, <>; <>: +<>? <>! +(<>) [<>] +<>... +<> +<> +<>)def +<> def +<>def +<>def +<>def +<>.def +id:"abc +" +id:) +id: +cid:xxx +<> <> +<> +<>. <>, <>; +EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED + +test_begin_subtest "Show handles subprocess errors" +cat > notmuch_fail <&2 +exit 1 +EOF +chmod a+x notmuch_fail +test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\")) + (with-current-buffer \"*Messages*\" (erase-buffer)) + (condition-case err + (notmuch-show \"*\") + (error (message \"%s\" (second err)))) + (notmuch-test-wait) + (with-current-buffer \"*Messages*\" + (test-output \"MESSAGES\")) + (with-current-buffer \"*Notmuch errors*\" + (test-output \"ERROR\")) + (test-output))" +test_expect_equal "$(notmuch_emacs_error_sanitize notmuch_fail OUTPUT MESSAGES ERROR)" "\ +=== OUTPUT === +=== MESSAGES === +This is an error (see *Notmuch errors* for more details) +=== ERROR === +[XXX] +This is an error +command: YYY/notmuch_fail show --format\\=sexp --format-version\\=1 --exclude\\=false \\' \\* \\' +exit status: 1 +stderr: +This is an error +stdout: +This is output" + + test_done