예제 #1
0
 def test_format_text_autolink(self):
     from fanboi2.helpers.formatters import format_text
     from markupsafe import Markup
     text = ('Hello from autolink:\n\n'
             'Boom: http://example.com/"<script>alert("Hi")</script><a\n'
             'http://www.example.com/ほげ\n'
             'http://www.example.com/%E3%81%BB%E3%81%92\n'
             'https://www.example.com/test foobar')
     self.assertEqual(
         format_text(text),
         Markup('<p>Hello from autolink:</p>\n'
                '<p>Boom: <a href="http://example.com/%22%3Cscript'
                '%3Ealert%28%22Hi%22%29%3C/script%3E%3Ca" '
                'class="link" target="_blank" rel="nofollow">'
                'http://example.com/&quot;&lt;script&gt;alert(&quot;'
                'Hi&quot;)&lt;/script&gt;&lt;a</a><br>'
                '<a href="http://www.example.com/%E3%81%BB%E3%81%92" '
                'class="link" target="_blank" rel="nofollow">'
                'http://www.example.com/ほげ</a><br>'
                '<a href="http://www.example.com/%E3%81%BB%E3%81%92" '
                'class="link" target="_blank" rel="nofollow">'
                'http://www.example.com/ほげ</a><br>'
                '<a href="https://www.example.com/test" '
                'class="link" target="_blank" rel="nofollow">'
                'https://www.example.com/test</a> foobar</p>'))
예제 #2
0
 def test_format_text_thumbnail(self):
     from fanboi2.helpers.formatters import format_text
     from markupsafe import Markup
     text = ("New product! https://imgur.com/foobar1\n\n"
             "http://i.imgur.com/foobar2.png\n"
             "http://imgur.com/foobar3.jpg\n"
             "http://youtu.be/test1\n"
             "http://www.youtube.com/watch?v=test2\n"
             "Buy today get TWO for FREE!!1")
     self.assertEqual(
         format_text(text),
         Markup('<p>New product! <a href="https://imgur.com/foobar1" '
                'class="link" target="_blank" rel="nofollow">'
                'https://imgur.com/foobar1</a></p>\n'
                '<p><a href="http://i.imgur.com/foobar2.png" '
                'class="link" target="_blank" rel="nofollow">'
                'http://i.imgur.com/foobar2.png</a><br>'
                '<a href="http://imgur.com/foobar3.jpg" class="link" '
                'target="_blank" rel="nofollow">'
                'http://imgur.com/foobar3.jpg</a><br>'
                '<a href="http://youtu.be/test1" class="link" '
                'target="_blank" rel="nofollow">'
                'http://youtu.be/test1</a><br>'
                '<a href="http://www.youtube.com/watch?v=test2" '
                'class="link" target="_blank" rel="nofollow">'
                'http://www.youtube.com/watch?v=test2</a><br>'
                'Buy today get TWO for FREE!!1</p>\n'
                '<p class="thumbnails"><a href="//imgur.com/foobar1" '
                'class="thumbnail" target="_blank">'
                '<img src="//i.imgur.com/foobar1b.jpg">'
                '</a>'
                '<a href="//imgur.com/foobar2" '
                'class="thumbnail" target="_blank">'
                '<img src="//i.imgur.com/foobar2b.jpg">'
                '</a>'
                '<a href="//imgur.com/foobar3" '
                'class="thumbnail" target="_blank">'
                '<img src="//i.imgur.com/foobar3b.jpg">'
                '</a>'
                '<a href="//www.youtube.com/watch?v=test2" '
                'class="thumbnail" target="_blank">'
                '<img src="//i1.ytimg.com/vi/test2/mqdefault.jpg">'
                '</a>'
                '<a href="//www.youtube.com/watch?v=test1" '
                'class="thumbnail" target="_blank">'
                '<img src="//i1.ytimg.com/vi/test1/mqdefault.jpg">'
                '</a>'
                '</p>'))
예제 #3
0
 def test_format_text_shorten(self):
     from fanboi2.helpers.formatters import format_text
     from fanboi2.helpers.formatters import PostMarkup
     from markupsafe import Markup
     tests = (
         ('Hello, world!', '<p>Hello, world!</p>', 13, False),
         ('Hello\nworld!', '<p>Hello</p>', 5, True),
         ('Hello, world!\nFoobar', '<p>Hello, world!</p>', 13, True),
         ('Hello', '<p>Hello</p>', 5, False),
     )
     for source, target, length, shortened in tests:
         result = format_text(source, shorten=5)
         self.assertIsInstance(result, PostMarkup)
         self.assertEqual(result, Markup(target))
         self.assertEqual(result.length, length)
         self.assertEqual(result.shortened, shortened)
예제 #4
0
 def test_format_text(self):
     from fanboi2.helpers.formatters import format_text
     from markupsafe import Markup
     tests = [
         ('Hello, world!', '<p>Hello, world!</p>'),
         ('H\n\n\nello\nworld', '<p>H</p>\n<p>ello<br>world</p>'),
         ('Foo\r\n\r\n\r\n\nBar', '<p>Foo</p>\n<p>Bar</p>'),
         ('Newline at the end\n', '<p>Newline at the end</p>'),
         ('STRIP ME!!!1\n\n', '<p>STRIP ME!!!1</p>'),
         ('ほげ\n\nほげ', '<p>ほげ</p>\n<p>ほげ</p>'),
         ('Foo\n \n Bar', '<p>Foo</p>\n<p>Bar</p>'),
         ('ไก่จิกเด็ก\n\nตายบนปากโอ่ง',
          '<p>ไก่จิกเด็ก</p>\n<p>ตายบนปากโอ่ง</p>'),
         ('<script></script>', '<p>&lt;script&gt;&lt;/script&gt;</p>'),
     ]
     for source, target in tests:
         self.assertEqual(format_text(source), Markup(target))