test: Add simple tests for navigating notmuch-hello and notmuch-search views
authorCarl Worth <cworth@cworth.org>
Sat, 23 Oct 2010 00:02:07 +0000 (17:02 -0700)
committerCarl Worth <cworth@cworth.org>
Sat, 23 Oct 2010 00:02:07 +0000 (17:02 -0700)
We simulate the act of selecting the "inbox" saved search from
notmuch-hello and the act of selecting a desired thread from the
notmuch-search results.

The test for the navigation of notmuch-hello is currently marked as
BROKEN since its output is in the opposite order compared to the
'(notmuch-search "tag:inbox")' test. This question of ordering is a
currently open issue on the notmuch mailing list, so we'll let the
test suite reflect that for now.

Finally, this commit also abstracts some common emacs lisp code,
(waiting for the current buffer's process to complete), into a new
notmuch-test-wait function that is made available to anything calling
test_emacs.

test/emacs
test/test-lib.sh

index 228ea565c4739bf554a5adc786f1d663c25a9757..95f6b592cbabab0d91eaf738346da1509daef792 100755 (executable)
@@ -12,13 +12,22 @@ expected=$(cat $EXPECTED/notmuch-hello)
 test_expect_equal "$output" "$expected"
 
 test_begin_subtest "Basic notmuch-search view in emacs"
-output=$(test_emacs '(notmuch-search "tag:inbox") (while (get-buffer-process (current-buffer)) (sleep-for 0.1)) (message (buffer-string))' 2>&1)
+output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (message (buffer-string))' 2>&1)
 expected=$(cat $EXPECTED/notmuch-search-tag-inbox)
 test_expect_equal "$output" "$expected"
 
+test_begin_subtest "Navigation of notmuch-hello to search results
+       [XXX: Need to decide the correct order of the search results]"
+output=$(test_emacs '(notmuch-hello) (goto-char (point-min)) (re-search-forward "inbox") (widget-button-press (point)) (notmuch-test-wait) (message (buffer-string))' 2>&1)
+test_expect_equal_failure "$output" "$expected"
+
 test_begin_subtest "Basic notmuch-show view in emacs"
 output=$(test_emacs '(notmuch-show "thread:0000000000000009") (message (buffer-string))' 2>&1)
 expected=$(cat $EXPECTED/notmuch-show-thread-9)
 test_expect_equal "$output" "$expected"
 
+test_begin_subtest "Navigation of notmuch-search to thread view"
+output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (goto-char (point-min)) (re-search-forward "Working with Maildir") (notmuch-search-show-thread) (notmuch-test-wait) (message (buffer-string))' 2>&1)
+test_expect_equal "$output" "$expected"
+
 test_done
index 6c9c93eb8a63c425f5f6da28df4048a63fdfb784..d9bb2541bdc907c877162628befc51de1ccc091b 100644 (file)
@@ -735,7 +735,11 @@ test_done () {
 
 test_emacs () {
     emacs_code="$1"
-    emacs --batch --no-site-file --directory ../../emacs --load notmuch.el --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) ${emacs_code})"
+    emacs --batch --no-site-file --directory ../../emacs --load notmuch.el \
+       --eval "(defun notmuch-test-wait ()
+                       (while (get-buffer-process (current-buffer))
+                               (sleep-for 0.1)))" \
+       --eval "(progn (set-frame-width (window-frame (get-buffer-window)) 80) ${emacs_code})"
 }