test: add emacs test for hiding a message following an HTML part
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Mon, 4 Jul 2011 04:07:21 +0000 (08:07 +0400)
committerDavid Bremner <bremner@debian.org>
Sat, 10 Sep 2011 13:13:40 +0000 (10:13 -0300)
Human-friendly scenario:

* open a thread where a message which ends with an HTML part is
  followed by another message

* make the first message visible

* goto the beginning of the second message (first line, first colon)

* hit "RET"

Result: nothing happens except for "No URL at point" message

Expected result: the second message is shown/hidden

The root cause is that the HTML part has `keymap' text property set.
In particular, "RET" is bound to visit a URL at point.  The problem is
that `keymap' property affects the next character following the region
it is set to (see elisp manual [1]).  Hence, the first character of
the next message has a keymap inherited from the HTML part.

[1] http://www.gnu.org/software/emacs/elisp/html_node/Special-Properties.html

test/emacs

index f465e2b69d42b594abecede69694707e9e40fb52..8b627c7901050dc044ecb8c14b013de4732fbde9 100755 (executable)
@@ -342,4 +342,30 @@ test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.
            (test-visible-output)'
 test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages
 
+test_begin_subtest 'Hiding message following HTML part'
+test_subtest_known_broken
+id='html-message@notmuchmail.org'
+emacs_deliver_message \
+    'HTML message' \
+    '' \
+    "(message-goto-eoh)
+     (insert \"Message-ID: <$id>\n\")
+     (message-goto-body)
+     (mml-insert-part \"text/html\")
+     (insert \"<body>This is a test HTML message</body>\")"
+emacs_deliver_message \
+    'Reply to HTML message' \
+    'This is a reply to the test HTML message' \
+    "(message-goto-eoh)
+     (insert \"In-Reply-To: <$id>\n\")"
+test_emacs "(notmuch-show \"id:$id\") \
+            (notmuch-show-next-message) \
+            (command-execute (key-binding (kbd \"RET\"))) \
+            (test-visible-output)"
+test_emacs "(notmuch-show \"id:$id\") \
+            (notmuch-show-next-message) \
+            (notmuch-show-toggle-message) \
+            (test-visible-output \"EXPECTED\")"
+test_expect_equal_file OUTPUT EXPECTED
+
 test_done