diff --git a/django/utils/html.py b/django/utils/html.py
index d7ecde64c3..66cbcee8f3 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -345,7 +345,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
if autoescape and not safe_input:
lead, trail = escape(lead), escape(trail)
trimmed = escape(trimmed)
- middle = '%s' % (url, nofollow_attr, trimmed)
+ middle = '%s' % (escape(url), nofollow_attr, trimmed)
words[i] = mark_safe('%s%s%s' % (lead, middle, trail))
else:
if safe_input:
diff --git a/tests/template_tests/filter_tests/test_urlize.py b/tests/template_tests/filter_tests/test_urlize.py
index ee6744e6cb..38a0a3e3ed 100644
--- a/tests/template_tests/filter_tests/test_urlize.py
+++ b/tests/template_tests/filter_tests/test_urlize.py
@@ -18,8 +18,8 @@ class UrlizeTests(SimpleTestCase):
)
self.assertEqual(
output,
- 'http://example.com/?x=&y= '
- 'http://example.com?x=&y=<2>'
+ 'http://example.com/?x=&y= '
+ 'http://example.com?x=&y=<2>'
)
@setup({'urlize02': '{{ a|urlize }} {{ b|urlize }}'})
@@ -30,8 +30,8 @@ class UrlizeTests(SimpleTestCase):
)
self.assertEqual(
output,
- 'http://example.com/?x=&y= '
- 'http://example.com?x=&y='
+ 'http://example.com/?x=&y= '
+ 'http://example.com?x=&y='
)
@setup({'urlize03': '{% autoescape off %}{{ a|urlize }}{% endautoescape %}'})
@@ -78,7 +78,7 @@ class UrlizeTests(SimpleTestCase):
output = self.engine.render_to_string('urlize09', {'a': "http://example.com/?x=&y=<2>"})
self.assertEqual(
output,
- 'http://example.com/?x=&y=<2>',
+ 'http://example.com/?x=&y=<2>',
)
diff --git a/tests/template_tests/filter_tests/test_urlizetrunc.py b/tests/template_tests/filter_tests/test_urlizetrunc.py
index 2b4b18e1f5..cb5c2a6daf 100644
--- a/tests/template_tests/filter_tests/test_urlizetrunc.py
+++ b/tests/template_tests/filter_tests/test_urlizetrunc.py
@@ -19,8 +19,8 @@ class UrlizetruncTests(SimpleTestCase):
)
self.assertEqual(
output,
- '"Unsafe" http:... '
- '"Safe" http:...'
+ '"Unsafe" http:... '
+ '"Safe" http:...'
)
@setup({'urlizetrunc02': '{{ a|urlizetrunc:"8" }} {{ b|urlizetrunc:"8" }}'})
@@ -34,8 +34,8 @@ class UrlizetruncTests(SimpleTestCase):
)
self.assertEqual(
output,
- '"Unsafe" http:... '
- '"Safe" http:...'
+ '"Unsafe" http:... '
+ '"Safe" http:...'
)
@@ -72,7 +72,7 @@ class FunctionTests(SimpleTestCase):
def test_query_string(self):
self.assertEqual(
urlizetrunc('http://www.google.co.uk/search?hl=en&q=some+long+url&btnG=Search&meta=', 20),
- 'http://www.google...',
)