summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_xhtml.py35
1 files changed, 33 insertions, 2 deletions
diff --git a/test/test_xhtml.py b/test/test_xhtml.py
index d81505da..4f0f2b4f 100644
--- a/test/test_xhtml.py
+++ b/test/test_xhtml.py
@@ -4,10 +4,19 @@ Test the functions in the `xhtml` module
import pytest
import xml
-
+import poezio.xhtml
from poezio.xhtml import (poezio_colors_to_html, xhtml_to_poezio_colors,
_parse_css as parse_css, clean_text)
+class ConfigShim(object):
+ def __init__(self):
+ self.value = True
+ def get(self, *args, **kwargs):
+ return self.value
+
+config = ConfigShim()
+poezio.xhtml.config = config
+
def test_clean_text():
example_string = '\x191}Toto \x192,-1}titi\x19b Tata'
assert clean_text(example_string) == 'Toto titi Tata'
@@ -47,10 +56,32 @@ def test_xhtml_to_poezio_colors():
with pytest.raises(xml.sax._exceptions.SAXParseException):
xhtml_to_poezio_colors(b'<p>Invalid xml')
+def test_xhtml_to_poezio_colors_disabled():
+ config.value = False
+ start = b'<body xmlns="http://www.w3.org/1999/xhtml"><p>'
+ end = b'</p></body>'
+ xhtml = start + b'test' + end
+ assert xhtml_to_poezio_colors(xhtml) == 'test'
+
+ xhtml = start + b'<a href="http://perdu.com">salut</a>' + end
+ assert xhtml_to_poezio_colors(xhtml) == '\x19usalut\x19o (http://perdu.com)'
+
+ xhtml = start + b'<a href="http://perdu.com">http://perdu.com</a>' + end
+ assert xhtml_to_poezio_colors(xhtml) == '\x19uhttp://perdu.com\x19o'
+
+ xhtml = b'<div style="font-weight:bold">Allo <div style="color:red">test <div style="color: blue">test2</div></div></div>'
+ assert xhtml_to_poezio_colors(xhtml, force=True) == 'Allo test test2'
+
+ xhtml = (b'<div style="color:blue"><div style="color:yellow">'
+ b'<div style="color:blue">Allo <div style="color:red">'
+ b'test <div style="color: blue">test2</div></div></div></div></div>')
+ assert xhtml_to_poezio_colors(xhtml, force=True) == 'Allo test test2'
+
+ config.value = True
+
def test_parse_css():
example_css = 'text-decoration: underline; color: red;'
assert parse_css(example_css) == '\x19u\x19196}'
example_css = 'text-decoration: underline coucou color: red;'
assert parse_css(example_css) == ''
-