notmuch/test/emacs-show
Austin Clements 580997252f emacs: Improve the regexp used to match id:'s in messages
This regexp agrees with Xapian query syntax much more closely, though
we specifically disallow various cases that would be confusing in the
context of an email body (e.g., punctuation at the end of an id: link
is not considered part of the id: link because it's probably part of
the surrounding text).

In particular, this handles id: links that are not surrounded by
quotes much better, which stash is much more likely to generate now
that we don't quote id's that don't need to be quoted.  It also
handles quoted id: links better.

We update the buttonization test to reflect the new pattern.
2012-11-15 18:11:07 -04:00

160 lines
5.3 KiB
Bash
Executable file

#!/usr/bin/env bash
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'
add_message \
[id]="$message_id" \
'[subject]="Hiding Original Message region at beginning of a message"' \
'[body]="-----Original Message-----
Text here."'
cat <<EOF >EXPECTED
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)
Subject: Hiding Original Message region at beginning of a message
To: Notmuch Test Suite <test_suite@notmuchmail.org>
Date: Fri, 05 Jan 2001 15:43:57 +0000
[ 2-line hidden original message. Click/Enter to show. ]
EOF
test_emacs "(notmuch-show \"id:$message_id\")
(test-visible-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)
(let ((current-prefix-arg t))
(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: 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"'
test_emacs '(notmuch-show "id:'$gen_msg_id'")
(notmuch-test-mark-links)
(test-visible-output)'
cat <<EOF >EXPECTED
Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox)
Subject: id buttonization
To: Notmuch Test Suite <test_suite@notmuchmail.org>
Date: Fri, 05 Jan 2001 15:43:57 +0000
<<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
EOF
test_expect_equal_file OUTPUT EXPECTED
test_done