1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# -*- coding: utf-8 -*-
"""
Python Markdown
A Python implementation of John Gruber's Markdown.
Documentation: https://python-markdown.github.io/
GitHub: https://github.com/Python-Markdown/markdown/
PyPI: https://pypi.org/project/Markdown/
Started by Manfred Stienstra (http://www.dwerg.net/).
Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org).
Currently maintained by Waylan Limberg (https://github.com/waylan),
Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser).
Copyright 2007-2018 The Python Markdown Project (v. 1.7 and later)
Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
Copyright 2004 Manfred Stienstra (the original version)
License: BSD (see LICENSE.md for details).
"""
from markdown.test_tools import TestCase
class TestAdvancedLinks(TestCase):
def test_nested_square_brackets(self):
self.assertMarkdownRenders(
"""[Text[[[[[[[]]]]]]][]](http://link.com) more text""",
"""<p><a href="http://link.com">Text[[[[[[[]]]]]]][]</a> more text</p>"""
)
def test_nested_round_brackets(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/(((((((()))))))())) more text""",
"""<p><a href="http://link.com/(((((((()))))))())">Text</a> more text</p>"""
)
def test_uneven_brackets_with_titles1(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/("title") more text""",
"""<p><a href="http://link.com/(" title="title">Text</a> more text</p>"""
)
def test_uneven_brackets_with_titles2(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/('"title") more text""",
"""<p><a href="http://link.com/('" title="title">Text</a> more text</p>"""
)
def test_uneven_brackets_with_titles3(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/("title)") more text""",
"""<p><a href="http://link.com/(" title="title)">Text</a> more text</p>"""
)
def test_uneven_brackets_with_titles4(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/( "title") more text""",
"""<p><a href="http://link.com/(" title="title">Text</a> more text</p>"""
)
def test_uneven_brackets_with_titles5(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/( "title)") more text""",
"""<p><a href="http://link.com/(" title="title)">Text</a> more text</p>"""
)
def test_mixed_title_quotes1(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/'"title") more text""",
"""<p><a href="http://link.com/'" title="title">Text</a> more text</p>"""
)
def test_mixed_title_quotes2(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/"'title') more text""",
"""<p><a href="http://link.com/"" title="title">Text</a> more text</p>"""
)
def test_mixed_title_quotes3(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/with spaces'"and quotes" 'and title') more text""",
"""<p><a href="http://link.com/with spaces" title=""and quotes" 'and title">"""
"""Text</a> more text</p>"""
)
def test_mixed_title_quotes4(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/with spaces'"and quotes" 'and title") more text""",
"""<p><a href="http://link.com/with spaces'" title="and quotes" 'and title">Text</a> more text</p>"""
)
def test_mixed_title_quotes5(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/with spaces '"and quotes" 'and title') more text""",
"""<p><a href="http://link.com/with spaces" title=""and quotes" 'and title">"""
"""Text</a> more text</p>"""
)
def test_mixed_title_quotes6(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/with spaces "and quotes" 'and title') more text""",
"""<p><a href="http://link.com/with spaces "and quotes"" title="and title">"""
"""Text</a> more text</p>"""
)
def test_single_quote(self):
self.assertMarkdownRenders(
"""[test](link"notitle)""",
"""<p><a href="link"notitle">test</a></p>"""
)
def test_angle_with_mixed_title_quotes(self):
self.assertMarkdownRenders(
"""[Text](<http://link.com/with spaces '"and quotes"> 'and title') more text""",
"""<p><a href="http://link.com/with spaces '"and quotes"" title="and title">"""
"""Text</a> more text</p>"""
)
def test_amp_in_url(self):
"""Test amp in URLs."""
self.assertMarkdownRenders(
'[link](http://www.freewisdom.org/this&that)',
'<p><a href="http://www.freewisdom.org/this&that">link</a></p>'
)
self.assertMarkdownRenders(
'[title](http://example.com/?a=1&b=2)',
'<p><a href="http://example.com/?a=1&b=2">title</a></p>'
)
self.assertMarkdownRenders(
'[title](http://example.com/?a=1&b=2)',
'<p><a href="http://example.com/?a=1&b=2">title</a></p>'
)
|