X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Femacs;h=6b1896882a42052cdcbc17828bc83aaed0f76d3b;hp=44f641ebf25192e6b3fdc1b2c23c8e0e9d36bce2;hb=2cdb3f54f71e5e415a930aaa36452ffe1db04d06;hpb=1a4cb8fd29c52445fc3de70e92de377f00cdc4a7 diff --git a/test/emacs b/test/emacs index 44f641eb..6b189688 100755 --- a/test/emacs +++ b/test/emacs @@ -1,7 +1,7 @@ #!/usr/bin/env bash test_description="emacs interface" -. test-lib.sh +. ./test-lib.sh EXPECTED=$TEST_DIRECTORY/emacs.expected-output @@ -122,18 +122,30 @@ test_emacs "(notmuch-search \"$os_x_darwin_thread\") output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" -test_begin_subtest "Add tag from notmuch-show view" +test_begin_subtest "notmuch-show: add single tag to single message" test_emacs "(notmuch-show \"$os_x_darwin_thread\") (execute-kbd-macro \"+tag-from-show-view\")" output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag-from-show-view unread)" -test_begin_subtest "Remove tag from notmuch-show view" +test_begin_subtest "notmuch-show: remove single tag from single message" test_emacs "(notmuch-show \"$os_x_darwin_thread\") (execute-kbd-macro \"-tag-from-show-view\")" output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" +test_begin_subtest "notmuch-show: add multiple tags to single message" +test_emacs "(notmuch-show \"$os_x_darwin_thread\") + (execute-kbd-macro \"+tag1-from-show-view +tag2-from-show-view\")" +output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox tag1-from-show-view tag2-from-show-view unread)" + +test_begin_subtest "notmuch-show: remove multiple tags from single message" +test_emacs "(notmuch-show \"$os_x_darwin_thread\") + (execute-kbd-macro \"-tag1-from-show-view -tag2-from-show-view\")" +output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)" + test_begin_subtest "Message with .. in Message-Id:" add_message [id]=123..456@example '[subject]="Message with .. in Message-Id"' test_emacs '(notmuch-search "id:\"123..456@example\"") @@ -516,6 +528,32 @@ test_emacs '(let ((standard-input "\"attachment2.gz\"")) (notmuch-show-save-part "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com" 5))' test_expect_equal_file attachment2.gz "$EXPECTED/attachment" +test_begin_subtest "Save 8bit attachment from within emacs using notmuch-show-save-attachments" + +add_message '[subject]="Attachment with 8bit chars"' \ + '[header]="MIME-Version: 1.0"' \ + '[content-type]="multipart/mixed; boundary=\"abcd\""' \ + '[body]="--abcd +Content-Type: text/plain + +Attachment follows: + +--abcd +Content-Type: application/octet-stream; name=\"sample\" +Content-Transfer-Encoding: 8bit +Content-Disposition: attachment; filename=\"sample\" + +“¡ Hey ! It compiles ¡ Ship it !” + +--abcd-- +"' +test_emacs '(notmuch-show "id:'"${gen_msg_id}"'") + (delete-file "OUTPUT") + (let ((standard-input "\"OUTPUT\"")) + (notmuch-show-save-attachments))' + +test_expect_equal "$(cat OUTPUT)" '“¡ Hey ! It compiles ¡ Ship it !”' + test_begin_subtest "View raw message within emacs" test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") (notmuch-show-view-raw-message) @@ -788,13 +826,12 @@ counter=$(test_emacs \ test_expect_equal "$counter" 2 -test_begin_subtest "Rendering HTML mail with images" add_message '[subject]="HTML mail with images"' \ '[content-type]="multipart/related; boundary=abcd"' \ '[body]="--abcd Content-Type: text/html - + smiley --abcd Content-Type: image/gif @@ -804,21 +841,39 @@ Content-ID: <330@goomoji.gmail> R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMl WLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7 --abcd--"' -test_emacs "(notmuch-show \"id:${gen_msg_id}\") - (test-output)" -# Normalize output for Emacs 23 and Emacs 24 -sed -i 's/\[cid\]/*/' OUTPUT -cat <EXPECTED -Notmuch Test Suite (2001-01-05) (inbox) -Subject: HTML mail with images -To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 - -[ multipart/related ] -[ text/html ] -* +test_emacs "(let ((mm-text-html-renderer + (if (assq 'shr mm-text-html-renderer-alist) + 'shr 'html2text))) + (notmuch-show \"id:${gen_msg_id}\")) + (test-output)" > /dev/null +# Different Emacs versions and renderers give very different results, +# so just check that something reasonable showed up. We first cat the +# output so the test framework will print it if the test fails. +test_expect_success "Rendering HTML mail with images" \ + 'cat OUTPUT && grep -q smiley OUTPUT' + + +test_begin_subtest "Search handles subprocess errors" +cat > notmuch_fail <&2 +exit 1 EOF -test_expect_equal_file OUTPUT EXPECTED +chmod a+x notmuch_fail +test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\")) + (notmuch-search \"tag:inbox\") + (notmuch-test-wait) + (test-output) + (with-current-buffer \"*Notmuch errors*\" + (test-output \"ERROR\")))" +test_expect_equal "$(cat OUTPUT ERROR)" "\ +Error: Unexpected output from notmuch search: +This is output +Error: Unexpected output from notmuch search: +This is an error +End of search results. +Error invoking notmuch. $PWD/notmuch_fail search --format=json --format-version=1 --sort=newest-first tag:inbox exited with status 1." test_done