summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/utils/html.py4
-rw-r--r--tests/regressiontests/defaultfilters/tests.py4
2 files changed, 6 insertions, 2 deletions
diff --git a/django/utils/html.py b/django/utils/html.py
index 78359f97f6..6760f7adad 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -20,8 +20,8 @@ DOTS = [u'·', u'*', u'\u2022', u'•', u'•', u'•']
unencoded_ampersands_re = re.compile(r'&(?!(\w+|#\d+);)')
unquoted_percents_re = re.compile(r'%(?![0-9A-Fa-f]{2})')
word_split_re = re.compile(r'(\s+)')
-simple_url_re = re.compile(r'^https?://\w')
-simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$')
+simple_url_re = re.compile(r'^https?://\w', re.IGNORECASE)
+simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$', re.IGNORECASE)
simple_email_re = re.compile(r'^\S+@\S+\.\S+$')
link_target_attribute_re = re.compile(r'(<a [^>]*?)target=[^\s>]+')
html_gunk_re = re.compile(r'(?:<br clear="all">|<i><\/i>|<b><\/b>|<em><\/em>|<strong><\/strong>|<\/?smallcaps>|<\/?uppercase>)', re.IGNORECASE)
diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py
index 88389be017..7d0b8d61b6 100644
--- a/tests/regressiontests/defaultfilters/tests.py
+++ b/tests/regressiontests/defaultfilters/tests.py
@@ -292,6 +292,10 @@ class DefaultFiltersTests(TestCase):
self.assertEqual(urlize('email@.stream.ru'),
u'email@.stream.ru')
+ # Check urlize accepts uppercased URL schemes - see #18071
+ self.assertEqual(urlize('HTTPS://github.com/'),
+ u'<a href="https://github.com/" rel="nofollow">HTTPS://github.com/</a>')
+
def test_wordcount(self):
self.assertEqual(wordcount(''), 0)
self.assertEqual(wordcount(u'oneword'), 1)