common/test/unittest_uilib.py
changeset 350 f34ef2c64605
parent 343 50073bc6df5e
child 362 a6a319f000c3
equal deleted inserted replaced
348:ebe40a8c7cc9 350:f34ef2c64605
    20             ]
    20             ]
    21         for text, expected in data:
    21         for text, expected in data:
    22             got = uilib.remove_html_tags(text)
    22             got = uilib.remove_html_tags(text)
    23             self.assertEquals(got, expected)
    23             self.assertEquals(got, expected)
    24        
    24        
    25     def test_safe_cut(self):
    25     def test_fallback_safe_cut(self):
    26         """ tests uilib.safe_cut() behaviour with very long text"""
    26         self.assertEquals(uilib.fallback_safe_cut(u'ab <a href="hello">cd</a>', 4), u'ab c...')
       
    27         self.assertEquals(uilib.fallback_safe_cut(u'ab <a href="hello">cd</a>', 5), u'ab <a href="hello">cd</a>')
       
    28         self.assertEquals(uilib.fallback_safe_cut(u'ab <a href="hello">&amp;d</a>', 4), u'ab &amp;...')
       
    29         self.assertEquals(uilib.fallback_safe_cut(u'ab <a href="hello">&amp;d</a> ef', 5), u'ab &amp;d...')
       
    30         self.assertEquals(uilib.fallback_safe_cut(u'&amp; <a href="hello">&amp;d</a> ef', 4), u'&amp; &amp;d...')
    27         
    31         
    28         data = [
    32     def test_lxml_safe_cut(self):
    29             ('opkolk', '<div><p>opkolk</p></div>'),
    33         self.assertEquals(uilib.safe_cut(u'aaa<div>aaad</div> ef', 4), u'<p>aaa</p><div>a...</div>')
    30             ("""<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    34         self.assertEquals(uilib.safe_cut(u'aaa<div>aaad</div> ef', 7), u'<p>aaa</p><div>aaad</div>...')
    31  tempor incididunt <strong>ut</strong> labore et dolore magna aliqua. Ut enim ad minim veniam,
    35         self.assertEquals(uilib.safe_cut(u'aaa<div>aaad</div>', 7), u'<p>aaa</p><div>aaad</div>')
    32  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    36         # Missing ellipsis due to space management but we don't care
    33  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    37         self.assertEquals(uilib.safe_cut(u'ab <a href="hello">&amp;d</a>', 4), u'<p>ab <a href="hello">&amp;...</a></p>')
    34  cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       
    35  proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       
    36  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
    37  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
       
    38  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
    39  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       
    40  cillum dolore eu fugiat nulla pariatur.</p> ""","""<div><p>Lorem ipsum dolor sit amet, consectetur</p></div>"""),
       
    41             ("""<p>empor incididunt utlabore et dolore magna aliqua. Ut enim ad minim veniam,
       
    42 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
    43 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       
    44 cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       
    45 proident, sunt in culpa qui officia d</p>""","""<div><p>empor incididunt utlabore et dolore magna aliqua.</p></div>"""),
       
    46             ("""empor <strong>incididunt</strong> utlabore et dolore magna aliqua. Ut enim ad minim veniam,
       
    47 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
    48 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       
    49 cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       
    50 proident, sunt in culpa qui officia""","""<div><p>empor <strong>incididunt</strong> utlabore et dolore magna aliqua.</p></div>"""),
       
    51             ("""<p>Lorem <strong>ipsum</strong> dolor <it>sit</it> amet, <strong>consectetur</strong> adipisicing elit, sed do eiusmod
       
    52  tempor incididunt <strong>ut</strong> labore et dolore magna aliqua. Ut enim ad minim veniam,
       
    53  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
    54  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       
    55  cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       
    56  proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       
    57  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
    58  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
       
    59  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
    60  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       
    61  cillum dolore eu fugiat nulla pariatur.</p>""","""<div><p>Lorem <strong>ipsum</strong> dolor <it>sit</it> amet, <strong>consectetur</strong></p></div>"""),
       
    62             ("""&iexcl;""",u"""<div><p>\xa1</p></div>"""),
       
    63             ("""<strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong>""",
       
    64              u"""<div><strong>\xa1 \xa1 \xa1 \xa1</strong></div>"""),
       
    65             ("""<strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong><strong>&iexcl; &iexcl; &iexcl; &iexcl;</strong>""",
       
    66              u"""<div><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong><strong>\xa1 \xa1 \xa1 \xa1</strong></div>"""),
       
    67                       
       
    68                        
       
    69             ]
       
    70         for text, expected in data:
       
    71             got = uilib.safe_cut(text, 30)
       
    72             self.assertEquals(got, expected)
       
    73 
    38 
    74     def test_cut(self):
    39     def test_cut(self):
    75         """tests uilib.cut() behaviour"""
    40         """tests uilib.cut() behaviour"""
    76         data = [
    41         data = [
    77             ('hello', 'hello'),
    42             ('hello', 'hello'),
    78             ('hello world', 'hello...'),
    43             ('hello world', 'hello wo...'),
    79             ("hell<b>O'</b> world", "hell<..."),
    44             ("hell<b>O'</b> world", "hell<b>O..."),
    80             ]
    45             ]
    81         for text, expected in data:
    46         for text, expected in data:
    82             got = uilib.cut(text, 8)
    47             got = uilib.cut(text, 8)
    83             self.assertEquals(got, expected)
    48             self.assertEquals(got, expected)
    84 
    49 
    85     def test_text_cut_no_text(self):
    50     def test_text_cut(self):
    86         """tests uilib.text_cut() behaviour with no text"""
    51         """tests uilib.text_cut() behaviour with no text"""
    87         data = [('','')]
    52         data = [('',''),
    88         for text, expected in data:
    53                 ("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    89             got = uilib.text_cut(text, 8)
       
    90             self.assertEquals(got, expected)
       
    91 
       
    92     def test_text_cut_long_text(self):
       
    93         """tests uilib.text_cut() behaviour with long text"""
       
    94         data = [("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
    95 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    54 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    96 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    55 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    97 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    56 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    98 cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    57 cillum dolore eu fugiat nulla pariatur.""",
    99 proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    58                  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \
   100 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    59 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, \
   101 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    60 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo \
   102 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    61 consequat."),
   103 consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    62                 ("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
   104 cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       
   105 proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       
   106 ""","""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
   107 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
       
   108 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       
   109 consequat.""")]
       
   110         for text, expected in data:
       
   111             got = uilib.text_cut(text, 30)
       
   112             self.assertEquals(got, expected)
       
   113 
       
   114     def  test_text_cut_no_point(self):
       
   115         """tests uilib.text_cut() behaviour with no point"""
       
   116         data = [("""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
   117 tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam,
    63 tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam,
   118 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    64 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
   119 consequat Duis aute irure dolor in reprehenderit in voluptate velit esse
    65 consequat Duis aute irure dolor in reprehenderit in voluptate velit esse
   120 cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non
    66 cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non
   121 proident, sunt in culpa qui officia deserunt mollit anim id est laborum
    67 proident, sunt in culpa qui officia deserunt mollit anim id est laborum
   122 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    68 """,
   123 tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam,
    69                  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \
   124 quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    70 tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam, \
   125 consequat Duis aute irure dolor in reprehenderit in voluptate velit esse
    71 quis nostrud exercitation ullamco laboris nisi"),
   126 cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non
    72                 ]
   127 proident, sunt in culpa qui officia deserunt mollit anim id est laborum
       
   128 ""","""Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       
   129 tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam,
       
   130 quis nostrud exercitation ullamco laboris nisi""")]
       
   131         for text, expected in data:
    73         for text, expected in data:
   132             got = uilib.text_cut(text, 30)
    74             got = uilib.text_cut(text, 30)
   133             self.assertEquals(got, expected)
    75             self.assertEquals(got, expected)
   134 
    76 
   135     def test_ajax_replace_url(self):
    77     def test_ajax_replace_url(self):