diff -r 934e758a73ef -r eae23c40627a test/unittest_uilib.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unittest_uilib.py Tue Dec 08 10:58:56 2009 +0100 @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +"""unittests for cubicweb.uilib + +:organization: Logilab +:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr +:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses +""" + +__docformat__ = "restructuredtext en" + +from logilab.common.testlib import TestCase, unittest_main +from logilab.common.tree import Node + +from cubicweb import uilib + +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.assertEquals(got, expected) + + def test_fallback_safe_cut(self): + self.assertEquals(uilib.fallback_safe_cut(u'ab cd', 4), u'ab c...') + self.assertEquals(uilib.fallback_safe_cut(u'ab cd', 5), u'ab cd') + self.assertEquals(uilib.fallback_safe_cut(u'ab &d', 4), u'ab &...') + self.assertEquals(uilib.fallback_safe_cut(u'ab &d ef', 5), u'ab &d...') + self.assertEquals(uilib.fallback_safe_cut(u'ab ìd', 4), u'ab ì...') + self.assertEquals(uilib.fallback_safe_cut(u'& &d ef', 4), u'& &d...') + + def test_lxml_safe_cut(self): + self.assertEquals(uilib.safe_cut(u'aaa
aaad
ef', 4), u'

aaa

a...
') + self.assertEquals(uilib.safe_cut(u'aaa
aaad
ef', 7), u'

aaa

aaad
...') + self.assertEquals(uilib.safe_cut(u'aaa
aaad
', 7), u'

aaa

aaad
') + # Missing ellipsis due to space management but we don't care + self.assertEquals(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.assertEquals(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.assertEquals(got, expected) + +if __name__ == '__main__': + unittest_main() +