From 65801835ee47dc4cada82c8a3ae16e8177a7919a Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 15 Nov 2012 14:49:52 -0500 Subject: [PATCH] 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. --- test/emacs-show | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ test/test-lib.el | 14 ++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/test/emacs-show b/test/emacs-show index 64c38d30..5d7151b5 100755 --- a/test/emacs-show +++ b/test/emacs-show @@ -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 <EXPECTED +Notmuch Test Suite (2001-01-05) (inbox) +Subject: id buttonization +To: Notmuch Test Suite +Date: Fri, 05 Jan 2001 15:43:57 +0000 + +<> +<> <> <> <> +<> <> +(<> [<> +<> +<> +<> +<> +<>"c def +<>def +<>"c"def +id:"ab c"def +<>.def +id:"abc +" +<> +id: +c<> +EOF +test_expect_equal_file OUTPUT EXPECTED + test_done diff --git a/test/test-lib.el b/test/test-lib.el index fa3380cf..dece811e 100644 --- a/test/test-lib.el +++ b/test/test-lib.el @@ -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