test: Test buttonization of id: links

This matches the current behavior of the buttonizer, so it passes, but
many of these cases are not what you'd want (and some of them aren't
even valid Xapian queries).  The next patch will fix the handling of
these cases and update the test.
This commit is contained in:
Austin Clements 2012-11-15 14:49:52 -05:00 committed by David Bremner
parent b173037398
commit 65801835ee
2 changed files with 64 additions and 0 deletions

View file

@ -106,5 +106,55 @@ test_emacs '(notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir st
(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:
c<<id:xxx>>
EOF
test_expect_equal_file OUTPUT EXPECTED
test_done

View file

@ -107,6 +107,20 @@ nothing."
(ad-set-arg 1 (char-to-string char))
ad-do-it))))
(defun notmuch-test-mark-links ()
"Enclose links in the current buffer with << and >>."
;; Links are often created by jit-lock functions
(jit-lock-fontify-now)
(save-excursion
(let ((inhibit-read-only t))
(goto-char (point-min))
(let ((button))
(while (setq button (next-button (point)))
(goto-char (button-start button))
(insert "<<")
(goto-char (button-end button))
(insert ">>"))))))
(defmacro notmuch-test-run (&rest body)
"Evaluate a BODY of test expressions and output the result."
`(with-temp-buffer