diff -r 058bb3dc685f -r 0b59724cb3f2 test/unittest_uilib.py --- a/test/unittest_uilib.py Mon Jan 04 18:40:30 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -# -*- coding: utf-8 -*- -# copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved. -# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr -# -# This file is part of CubicWeb. -# -# CubicWeb is free software: you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free -# Software Foundation, either version 2.1 of the License, or (at your option) -# any later version. -# -# CubicWeb is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with CubicWeb. If not, see . -"""unittests for cubicweb.uilib""" - -__docformat__ = "restructuredtext en" - - -import pkg_resources - -try: - from unittest import skipIf -except ImportError: - from unittest2 import skipIf - -from logilab.common.testlib import DocTest, TestCase, unittest_main - -from cubicweb import uilib, utils as cwutils - -lxml_version = pkg_resources.get_distribution('lxml').version.split('.') - -class UILIBTC(TestCase): - - def test_remove_tags(self): - """make sure remove_tags remove all tags""" - data = [ - ('

Hello

', 'Hello'), - ('

Hello spam

', 'Hello spam'), - ('
Hello', 'Hello'), - ('

', ''), - ] - for text, expected in data: - got = uilib.remove_html_tags(text) - self.assertEqual(got, expected) - - def test_fallback_safe_cut(self): - self.assertEqual(uilib.fallback_safe_cut(u'ab cd', 4), u'ab c...') - self.assertEqual(uilib.fallback_safe_cut(u'ab cd', 5), u'ab cd') - self.assertEqual(uilib.fallback_safe_cut(u'ab &d', 4), u'ab &...') - self.assertEqual(uilib.fallback_safe_cut(u'ab &d ef', 5), u'ab &d...') - self.assertEqual(uilib.fallback_safe_cut(u'ab ìd', 4), u'ab ì...') - self.assertEqual(uilib.fallback_safe_cut(u'& &d ef', 4), u'& &d...') - - def test_lxml_safe_cut(self): - self.assertEqual(uilib.safe_cut(u'aaa
aaad
ef', 4), u'

aaa

a...
') - self.assertEqual(uilib.safe_cut(u'aaa
aaad
ef', 7), u'

aaa

aaad
...') - self.assertEqual(uilib.safe_cut(u'aaa
aaad
', 7), u'

aaa

aaad
') - # Missing ellipsis due to space management but we don't care - self.assertEqual(uilib.safe_cut(u'ab &d', 4), u'

ab &...

') - - def test_cut(self): - """tests uilib.cut() behaviour""" - data = [ - ('hello', 'hello'), - ('hello world', 'hello wo...'), - ("hellO' world", "hellO..."), - ] - for text, expected in data: - got = uilib.cut(text, 8) - self.assertEqual(got, expected) - - def test_text_cut(self): - """tests uilib.text_cut() behaviour with no text""" - data = [('',''), - ("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur.""", - "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \ -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, \ -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo \ -consequat."), - ("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum -""", - "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \ -tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam, \ -quis nostrud exercitation ullamco laboris nisi"), - ] - for text, expected in data: - 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'), - '
hop
') - self.assertEqual(uilib.soup2xhtml('hop
hop', 'ascii'), - 'hop
hop
') - - def test_soup2xhtml_1_2(self): - self.assertEqual(uilib.soup2xhtml('hop
', 'ascii'), - 'hop ') - self.assertEqual(uilib.soup2xhtml('
hop', 'ascii'), - '
hop') - self.assertEqual(uilib.soup2xhtml('hop
hop', 'ascii'), - '
hop
hop') - - def test_soup2xhtml_2_1(self): - self.assertEqual(uilib.soup2xhtml('hop ', 'ascii'), - 'hop ') - self.assertEqual(uilib.soup2xhtml(' hop', 'ascii'), - ' hop') - self.assertEqual(uilib.soup2xhtml('hop hop', 'ascii'), - 'hop hop') - - 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') - - def test_soup2xhtml_3_1(self): - self.assertEqual(uilib.soup2xhtml('hop ', 'ascii'), - 'hop ') - self.assertEqual(uilib.soup2xhtml(' hop', 'ascii'), - ' hop') - self.assertEqual(uilib.soup2xhtml('hop hop', 'ascii'), - 'hop hop') - - def test_soup2xhtml_3_2(self): - self.assertEqual(uilib.soup2xhtml('hop ', 'ascii'), - 'hop ') - self.assertEqual(uilib.soup2xhtml(' hop', 'ascii'), - ' hop') - 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")') - self.assertEqual(str(uilib.js.cw.pouet(1, "2")), - 'cw.pouet(1,"2")') - self.assertEqual(str(uilib.js.cw.pouet(1, "2").pouet(None)), - 'cw.pouet(1,"2").pouet(null)') - self.assertEqual(str(uilib.js.cw.pouet(1, cwutils.JSString("$")).pouet(None)), - 'cw.pouet(1,$).pouet(null)') - self.assertEqual(str(uilib.js.cw.pouet(1, {'callback': cwutils.JSString("cw.cb")}).pouet(None)), - 'cw.pouet(1,{callback: cw.cb}).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) - - -class DocTest(DocTest): - module = uilib - - -if __name__ == '__main__': - unittest_main()