diff -r b8bd0ecced2e -r eeedb3575d25 test/unittest_uilib.py --- a/test/unittest_uilib.py Fri Nov 05 14:28:22 2010 +0100 +++ b/test/unittest_uilib.py Fri Oct 22 16:14:48 2010 +0200 @@ -20,10 +20,16 @@ __docformat__ = "restructuredtext en" + +import pkg_resources from logilab.common.testlib import TestCase, unittest_main +from unittest2 import skipIf from cubicweb import uilib +lxml_version = pkg_resources.get_distribution('lxml').version.split('.') + + class UILIBTC(TestCase): def test_remove_tags(self): @@ -91,7 +97,15 @@ got = uilib.text_cut(text, 30) self.assertEqual(got, expected) + def test_soup2xhtml_0(self): + self.assertEqual(uilib.soup2xhtml('hop\r\nhop', 'ascii'), + 'hop\nhop') + def test_soup2xhtml_1_1(self): + self.assertEqual(uilib.soup2xhtml('hop', 'ascii'), + 'hop') + self.assertEqual(uilib.soup2xhtml('hop
', 'ascii'), + 'hop
') self.assertEqual(uilib.soup2xhtml('hop
', 'ascii'), 'hop
') self.assertEqual(uilib.soup2xhtml('
hop', 'ascii'), @@ -115,11 +129,14 @@ self.assertEqual(uilib.soup2xhtml('hop hop', 'ascii'), 'hop hop') - def test_soup2xhtml_2_2(self): + def test_soup2xhtml_2_2a(self): self.assertEqual(uilib.soup2xhtml('hop ', 'ascii'), 'hop ') self.assertEqual(uilib.soup2xhtml(' hop', 'ascii'), ' hop') + + @skipIf(lxml_version < ['2', '2'], 'expected behaviour on recent version of lxml only') + def test_soup2xhtml_2_2b(self): self.assertEqual(uilib.soup2xhtml('hop hop', 'ascii'), 'hop hop') @@ -139,6 +156,10 @@ self.assertEqual(uilib.soup2xhtml('hop hop', 'ascii'), 'hop hop') + def test_soup2xhtml_3_3(self): + self.assertEqual(uilib.soup2xhtml(' hop ', 'ascii'), + ' hop ') + def test_js(self): self.assertEqual(str(uilib.js.pouet(1, "2")), 'pouet(1,"2")') @@ -147,6 +168,23 @@ self.assertEqual(str(uilib.js.cw.pouet(1, "2").pouet(None)), 'cw.pouet(1,"2").pouet(null)') + def test_embedded_css(self): + incoming = u"""voir le ticket

text

""" + expected = 'voir le ticket

text

' + self.assertMultiLineEqual(uilib.soup2xhtml(incoming, 'ascii'), expected) + + def test_unknown_namespace(self): + incoming = ''' + + +
XXXXXXX
''' + expected = '''\ +\ +\ +
XXXXXXX
''' + self.assertMultiLineEqual(uilib.soup2xhtml(incoming, 'ascii'), expected) + + if __name__ == '__main__': unittest_main()