[PATCH 2/3] test: Add a test for HTML email with inline images

Austin Clements amdragon at MIT.EDU
Wed Oct 3 07:28:34 PDT 2012


Quoth Dmitry Kurochkin on Oct 03 at  1:35 pm:
> Hi Austin.
> 
> Austin Clements <amdragon at MIT.EDU> writes:
> 
> > Currently this test passes in Emacs 23 but fails in Emacs 24 (at least
> > on some Linux distributions).
> 
> The test fails for me on Emacs 23.4.1 (Debian unstable):
> 
>  FAIL   Rendering HTML mail with images
> 	--- emacs.51.OUTPUT	2012-10-03 09:31:33.383529764 +0000
> 	+++ emacs.51.EXPECTED	2012-10-03 09:31:33.383529764 +0000
> 	@@ -6,4 +6,3 @@
> 	 [ multipart/related ]
> 	 [ text/html ]
> 	 *
> 	-
> 
> Did not look into details.

Yes.  This test is (in hindsight, unsurprisingly) sensitive to
whatever HTML renderer Emacs chooses.  It looks like you're probably
using html2text, which outputs nothing for an image.  Unfortunately,
none of the built-in renderers in Emacs 23 are aware of content
references, which makes this test rather pointless on Emacs 23 unless
we depend on an external renderer.

The best solution I can think of dynamically chooses shr on Emacs 24
(since that's really what we're trying to test) and gives up on Emacs
23 and forcibly selects html2text (test patch below).  Alternatively,
we could cycle through all of the available renderers, test everything
that we can, and just ignore everything that we can't run, though that
would make the test environment-sensitive.

diff --git a/test/emacs b/test/emacs
index 1f84b91..2ef78bf 100755
--- a/test/emacs
+++ b/test/emacs
@@ -756,7 +756,7 @@ add_message '[subject]="HTML mail with images"' \
     '[body]="--abcd
 Content-Type: text/html
 
-<img src="cid:330 at goomoji.gmail">
+<img src="cid:330 at goomoji.gmail"> smiley
 
 --abcd
 Content-Type: image/gif
@@ -766,10 +766,13 @@ Content-ID: <330 at goomoji.gmail>
 R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMl
 WLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7
 --abcd--"'
-test_emacs "(notmuch-show \"id:${gen_msg_id}\")
+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)"
 # Normalize output for Emacs 23 and Emacs 24
-sed -i 's/\[cid\]/*/' OUTPUT
+sed -i 's/^ smiley/* smiley/' OUTPUT
 cat <<EOF >EXPECTED
 Notmuch Test Suite <test_suite at notmuchmail.org> (2001-01-05) (inbox)
 Subject: HTML mail with images
@@ -778,7 +781,7 @@ Date: Fri, 05 Jan 2001 15:43:57 +0000
 
 [ multipart/related ]
 [ text/html ]
-*
+* smiley
 EOF
 test_expect_equal_file OUTPUT EXPECTED
 



More information about the notmuch mailing list