sharky93 avatar sharky93 committed 11ba582

Fixes #360, svg now handled by <img> instead of <object>, added tests

Comments (0)

Files changed (2)


+# Copyright: 2013 MoinMoin:RishabhRaj
+# License: GNU GPL v2 (or any later version), see LICENSE.txt for details.
+MoinMoin - Tests for MoinMoin.converter for different imagetypes
+import pytest
+from emeraldtree import tree as ET
+from MoinMoin.converter.html_out import ConverterPage
+class TestImg(object):
+    def setup_class(self):
+        self.converter = ConverterPage()
+    def testImage(self):
+        tree_xml = ('<ns0:page ns0:page-href="wiki:///Home" xmlns:ns0="" '
+                    'xmlns:ns1="" xmlns:ns2="" '
+                    'xmlns:ns3=""><ns0:body><ns0:p ns2:data-lineno="1">'
+                    '<ns0:page ns2:class="moin-transclusion" ns0:page-href="wiki:///imagetest" ns2:data-href="/imagetest">'
+                    '<ns0:body><ns0:object ns3:href="/+get/+2882c905b2ab409fbf79cd05637a112d/imagetest" ns0:type="{0}" />'
+                    '</ns0:body></ns0:page></ns0:p></ns0:body></ns0:page>')
+        tests = [
+            ('image/jpeg', 'img'),
+            ('image/svg+xml', 'img'),
+            ('image/png', 'img'),
+            ('image/gif', 'img'),
+        ]
+        for imagetype, tag_expected in tests:
+            self.runTest(tree_xml.format(imagetype), tag_expected)
+    def runTest(self, tree_xml, tag_expected):
+        tree = ET.XML(tree_xml)
+        tree = self.converter(tree)
+        assert len(tree) and len(tree[0]) and len(tree[0][0]) == 1
+        assert tree[0][0][0] == tag_expected


         Return value is an str, one of the following:
             image, video, audio, object
-        if Type('image/').issupertype(mimetype) and not Type('image/svg+xml').issupertype(mimetype):
-            # Firefox fails completely to show svg in img tags (displays: nothing).
-            # Firefox displays them with on object tag (but sometimes displays scrollbars without need).
+        if Type('image/').issupertype(mimetype):
             return "img"
         elif Type('video/').issupertype(mimetype):
             return "video"
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.