diff --git a/django/utils/html.py b/django/utils/html.py index 17ff78a2b5..07e4f0d3f4 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -99,7 +99,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): lead, middle, trail = match.groups() if safe_input: middle = mark_safe(middle) - if middle.startswith('www.') or ('@' not in middle and not middle.startswith('http://') and \ + if middle.startswith('www.') or ('@' not in middle and not (middle.startswith('http://') or middle.startswith('https://')) and \ len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \ (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))): middle = 'http://%s' % middle diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py index 4a8b68a897..62403935d4 100644 --- a/tests/regressiontests/defaultfilters/tests.py +++ b/tests/regressiontests/defaultfilters/tests.py @@ -166,6 +166,27 @@ u'http://31characteruri >>> urlizetrunc(uri, 2) u'...' +# Check normal urlize +>>> urlize('http://google.com') +u'http://google.com' + +>>> urlize('http://google.com/') +u'http://google.com/' + +>>> urlize('www.google.com') +u'http://www.google.com' + +>>> urlize('djangoproject.org') +u'http://djangoproject.org' + +>>> urlize('info@djangoproject.org') +u'info@djangoproject.org' + +# Check urlize with https addresses +>>> urlize('https://google.com') +u'https://google.com' + + >>> wordcount('') 0