From a8aa437bbcd9df6ba739ddd4d0ba402d65847d01 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 22 Oct 2010 17:02:07 -0700 Subject: [PATCH] test: Add simple tests for navigating notmuch-hello and notmuch-search views 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 | 11 ++++++++++- test/test-lib.sh | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/test/emacs b/test/emacs index 228ea565..95f6b592 100755 --- a/test/emacs +++ b/test/emacs @@ -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 diff --git a/test/test-lib.sh b/test/test-lib.sh index 6c9c93eb..d9bb2541 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -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})" }