[FIX] tools: recognize SVG with explicit namespace
Currently, odoo's mimetype guesser does not recognize SVGs with explicit namespace. closes odoo/odoo#108938 X-original-commit: a1257cad9d5a63d940da041f355c13ea3eba90ce Signed-off-by: Julien Castiaux <juc@odoo.com>
This commit is contained in:
@@ -22,6 +22,9 @@ AA/9oACAECAQE/AX//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAY/An//xAAUEAEAAAAAAAAAAA
|
||||
AE/IX//2gAMAwEAAgADAAAAEB//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAEDAQE/EH//xAAUEQEAAAAAAAAAAAAAAAAAAAAA
|
||||
/9oACAECAQE/EH//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAE/EH//2Q=="""
|
||||
SVG = b"""PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMjAwMDExMDIvL0VOIlxuICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL0NSLVNWRy0yMDAwMTEwMi9EVEQvc3ZnLTIwMDAxMTAyLmR0ZCI+PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCw1MCkiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxNTAiIGhlaWdodD0iNTAiIHN0eWxlPSJmaWxsOnJlZDsiIC8+PC9nPjwvc3ZnPg=="""
|
||||
NAMESPACED_SVG = b"""<svg:svg xmlns:svg="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
||||
<svg:rect x="10" y="10" width="80" height="80" fill="green" />
|
||||
</svg:svg>"""
|
||||
# minimal zip file with an empty `t.txt` file
|
||||
ZIP = b"""UEsDBBQACAAIAGFva1AAAAAAAAAAAAAAAAAFACAAdC50eHRVVA0AB5bgaF6W4GheluBoXnV4CwABBOgDAAAE6AMAAA
|
||||
MAUEsHCAAAAAACAAAAAAAAAFBLAQIUAxQACAAIAGFva1AAAAAAAgAAAAAAAAAFACAAAAAAAAAAAACkgQAAAAB0LnR4dFVUDQAHlu
|
||||
@@ -93,6 +96,9 @@ class test_guess_mimetype(BaseCase):
|
||||
content = base64.b64decode(SVG)
|
||||
mimetype = guess_mimetype(content, default='test')
|
||||
self.assertTrue(mimetype.startswith('image/svg'))
|
||||
|
||||
mimetype = guess_mimetype(NAMESPACED_SVG, default='test')
|
||||
self.assertTrue(mimetype.startswith('image/svg'))
|
||||
# Tests that whitespace padded SVG are not detected as SVG in odoo implementation
|
||||
if not magic:
|
||||
mimetype = guess_mimetype(b" " + content, default='test')
|
||||
|
||||
@@ -107,7 +107,7 @@ def _check_olecf(data):
|
||||
|
||||
def _check_svg(data):
|
||||
"""This simply checks the existence of the opening and ending SVG tags"""
|
||||
if b'<svg' in data and b'/svg>' in data:
|
||||
if b'<svg' in data and b'/svg' in data:
|
||||
return 'image/svg+xml'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user