From e2548ec2a9e2f8dc733bcc72681fd28a34af4dbd Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 11 Apr 2012 17:49:22 +0000 Subject: [PATCH] Fixed #18071 -- Ignored case sensitivity in urlize utility. Thanks luke@creaturecreative.com and adamzap for the report and the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17898 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/html.py | 4 ++-- tests/regressiontests/defaultfilters/tests.py | 4 ++++ 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'(]*?)target=[^\s>]+') html_gunk_re = re.compile(r'(?:
|<\/i>|<\/b>|<\/em>|<\/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'
HTTPS://github.com/') + def test_wordcount(self): self.assertEqual(wordcount(''), 0) self.assertEqual(wordcount(u'oneword'), 1)