def test_block_code(self): self.assertEqual( l('```\ncode block\nline2\n```'), '<pre><code>code block\nline2</code></pre>') self.assertEqual( l('```javascript\na = 1\nb = a + 1\n```'), '<pre><code class="language-javascript">a = 1\nb = a + 1</code></pre>')
def test_escaping_in_links(self): self.assertEqual( l('Bad: <http://nyan.ru/&&&>'), 'Bad: <a href="http://nyan.ru/&&&">http://nyan.ru/&&&</a>') self.assertEqual( l('Look at this: ![Cool image](http://example.com/<bad>&)'), 'Look at this: <a href="http://example.com/<bad>&amp;">http://example.com/<bad>&amp;</a>')
def test_escaping_in_header(self): self.assertEqual( l('#<bad>&'), '<h1><bad>&amp</h1>') self.assertEqual( l('####<bad>&'), '<h4><bad>&amp</h4>')
def test_user_link(self): self.assertEqual( l('test: @nyashka'), 'test: <a href="/u/nyashka">@nyashka</a>') self.assertEqual( l('Look at this nyashka:\n\n@nyashka\n\nNyak'), 'Look at this nyashka:\n\n<a href="/u/nyashka">@nyashka</a>\n\nNyak') self.assertEqual( l('How about this:\n@super-&bad-nyashka\nNyak'), 'How about this:\n<a href="/u/super-">@super-</a>&bad-nyashka\nNyak')
def test_msg_link(self): self.assertEqual( l('test: #0XYNTA'), 'test: <a href="/p/0XYNTA">#0XYNTA</a>') self.assertEqual( l('test: #0XYNTA/123'), 'test: <a href="/p/0XYNTA#123">#0XYNTA/123</a>') self.assertEqual( l('#0XY>NTA\n\nNyak'), '<a href="/p/0XY">#0XY</a>>NTA\n\nNyak')
def test_escaping_in_code(self): self.assertEqual( l('some\ncode: `simple <&bad code>` <- code'), 'some\ncode: <code>simple <&bad code></code> <- code') self.assertEqual( l('code:\n\n```\n<bad code &&&>&">\n```'), 'code:\n\n<pre><code><bad code &&&>&"></code></pre>') self.assertEqual( l('```<bad&language>\n<bad code>\n```'), '<pre><code class="language-<bad&language>"><bad code></code></pre>')
def test_msg_link_anchors(self): self.assertEqual( l('http://example.com/#anchor'), '<a href="http://example.com/#anchor">http://example.com/#anchor</a>')
def test_escaping(self): self.assertEqual( l('Test <html><body><&"\'></body></html>'), 'Test <html><body><&"'></body></html>')
def test_inline_code(self): self.assertEqual( l('`simple code`'), '<code>simple code</code>')
def test_forbidden_image(self): self.assertEqual( l('Look at this: ![Cool image](http://example.com/g****e.jpg)'), 'Look at this: <a href="http://example.com/g****e.jpg">http://example.com/g****e.jpg</a>')
def test_autolink(self): self.assertEqual( l('Nyak: http://example.com/ ne nyak'), 'Nyak: <a href="http://example.com/">http://example.com/</a> ne nyak')
def test_trailing_newlines(self): self.assertEqual( l('Hi\nHi\nBye\n\n\n'), 'Hi\nHi\nBye')
def test_custom_paragraphs(self): self.assertEqual( l('test\n\ntest'), 'test\n\ntest')
def test_escaping_in_block_quote(self): self.assertEqual( l('> test\nnew line\nnew <bad&> line\nlast line\n\nEnd of quote'), '<blockquote>> test\nnew line\nnew <bad&> line\nlast line</blockquote>\nEnd of quote')
def test_block_quote(self): self.assertEqual( l('> test\n\nNyak'), '<blockquote>> test</blockquote>\nNyak')