mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Refs #24469 -- Fixed escaping of forms, fields, and media in non-Django templates.
This commit is contained in:
parent
465edf2bb2
commit
6bff343989
5 changed files with 37 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.forms import CharField, Form, Media
|
||||
from django.http import HttpRequest
|
||||
from django.middleware.csrf import CsrfViewMiddleware, get_token
|
||||
from django.template import TemplateDoesNotExist, TemplateSyntaxError
|
||||
|
@ -43,7 +44,7 @@ class TemplateStringsTests(SimpleTestCase):
|
|||
# There's no way to trigger a syntax error with the dummy backend.
|
||||
# The test still lives here to factor it between other backends.
|
||||
if self.backend_name == 'dummy':
|
||||
return
|
||||
self.skipTest("test doesn't apply to dummy backend")
|
||||
with self.assertRaises(TemplateSyntaxError):
|
||||
self.engine.get_template('template_backends/syntax_error.html')
|
||||
|
||||
|
@ -55,6 +56,22 @@ class TemplateStringsTests(SimpleTestCase):
|
|||
self.assertIn('<script>', content)
|
||||
self.assertNotIn('<script>', content)
|
||||
|
||||
def test_django_html_escaping(self):
|
||||
if self.backend_name == 'dummy':
|
||||
self.skipTest("test doesn't apply to dummy backend")
|
||||
|
||||
class TestForm(Form):
|
||||
test_field = CharField()
|
||||
|
||||
media = Media(js=['my-script.js'])
|
||||
form = TestForm()
|
||||
template = self.engine.get_template('template_backends/django_escaping.html')
|
||||
content = template.render({'media': media, 'test_form': form})
|
||||
|
||||
expected = '{}\n\n{}\n\n{}'.format(media, form, form['test_field'])
|
||||
|
||||
self.assertHTMLEqual(content, expected)
|
||||
|
||||
def test_csrf_token(self):
|
||||
request = HttpRequest()
|
||||
CsrfViewMiddleware().process_view(request, lambda r: None, (), {})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue