aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2012-07-09 17:42:39 -0400
committerGravatar David Bremner <bremner@debian.org>2012-07-12 17:39:18 -0600
commitf94a50d80af8c2a5513e58db954dd0b1910eb4a8 (patch)
treef3b4577d7f3cead5059fad648c4cb27ace18d333
parent1a5bcdf6c161746269f64599328ed6b616859760 (diff)
test: New test for incremental search output parsing
This advises the search process filter to make it process one character at a time in order to test the pessimal case for incremental search output parsing. The text parser fails this test because it gets tricked into thinking a parenthetical remark in a subject is the tag list.
-rwxr-xr-xtest/emacs11
-rw-r--r--test/test-lib.el8
2 files changed, 19 insertions, 0 deletions
diff --git a/test/emacs b/test/emacs
index e9f954c3..293b12aa 100755
--- a/test/emacs
+++ b/test/emacs
@@ -35,6 +35,17 @@ test_emacs '(notmuch-search "tag:inbox")
(test-output)'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-search-tag-inbox
+test_begin_subtest "Incremental parsing of search results"
+test_subtest_known_broken
+test_emacs "(ad-enable-advice 'notmuch-search-process-filter 'around 'pessimal)
+ (ad-activate 'notmuch-search-process-filter)
+ (notmuch-search \"tag:inbox\")
+ (notmuch-test-wait)
+ (ad-disable-advice 'notmuch-search-process-filter 'around 'pessimal)
+ (ad-activate 'notmuch-search-process-filter)
+ (test-output)"
+test_expect_equal_file OUTPUT $EXPECTED/notmuch-search-tag-inbox
+
test_begin_subtest "Navigation of notmuch-hello to search results"
test_emacs '(notmuch-hello)
(goto-char (point-min))
diff --git a/test/test-lib.el b/test/test-lib.el
index 6271da22..5dd6271c 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -89,6 +89,14 @@ nothing."
(add-hook-counter 'notmuch-hello-mode-hook)
(add-hook-counter 'notmuch-hello-refresh-hook)
+(defadvice notmuch-search-process-filter (around pessimal activate disable)
+ "Feed notmuch-search-process-filter one character at a time."
+ (let ((string (ad-get-arg 1)))
+ (loop for char across string
+ do (progn
+ (ad-set-arg 1 (char-to-string char))
+ ad-do-it))))
+
(defmacro notmuch-test-run (&rest body)
"Evaluate a BODY of test expressions and output the result."
`(with-temp-buffer