from HTMLParser import HTMLParseError
import unittest
from trac.util import Markup, unescape
class MarkupTestCase(unittest.TestCase):
def test_escape(self):
markup = Markup.escape('"&"')
assert isinstance(markup, Markup)
self.assertEquals('<b>"&"</b>', markup)
def test_escape_noquotes(self):
markup = Markup.escape('"&"', quotes=False)
assert isinstance(markup, Markup)
self.assertEquals('<b>"&"</b>', markup)
def test_unescape_markup(self):
string = '"&"'
markup = Markup.escape(string)
assert isinstance(markup, Markup)
self.assertEquals(string, unescape(markup))
def test_add_str(self):
markup = Markup('foo') + '
'
assert isinstance(markup, Markup)
self.assertEquals('foo<br/>', markup)
def test_add_markup(self):
markup = Markup('foo') + Markup('
')
assert isinstance(markup, Markup)
self.assertEquals('foo
', markup)
def test_add_reverse(self):
markup = 'foo' + Markup('bar')
assert isinstance(markup, str)
self.assertEquals('foobar', markup)
def test_mul(self):
markup = Markup('foo') * 2
assert isinstance(markup, Markup)
self.assertEquals('foofoo', markup)
def test_join(self):
markup = Markup('
').join(['foo', '
<bar />
').striptags()
assert isinstance(markup, Markup)
self.assertEquals('', markup)
def test_striptags_mid(self):
markup = Markup('fo
o').striptags()
assert isinstance(markup, Markup)
self.assertEquals('foo', markup)
def test_sanitize_unchanged(self):
markup = Markup('fo
o')
self.assertEquals('fo
o', markup.sanitize())
def test_sanitize_escape_text(self):
markup = Markup('fo&')
self.assertEquals('fo&', markup.sanitize())
markup = Markup('<foo>')
self.assertEquals('<foo>', markup.sanitize())
def test_sanitize_entityref_text(self):
markup = Markup('foö')
self.assertEquals('fo\xc3\xb6', markup.sanitize())
def test_sanitize_escape_attr(self):
markup = Markup('