diff options
| author | Carl Meyer <carl@oddbird.net> | 2011-02-09 02:41:32 +0000 |
|---|---|---|
| committer | Carl Meyer <carl@oddbird.net> | 2011-02-09 02:41:32 +0000 |
| commit | 9f6d50d02ea7ce1c5c2adf1c7819700a7912e0d7 (patch) | |
| tree | c289287507f6dffd5246e3f767478f9b41989f5f /tests | |
| parent | 6ca7c9c495d4195114a6b9d1130dc107921f83b2 (diff) | |
Fixed #15182 - Fixed a security issue with ClearableFileInput. Disclosure and new release forthcoming.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15470 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/forms/tests/widgets.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/tests/widgets.py b/tests/regressiontests/forms/tests/widgets.py index 7d2b633778..4c5aeb0147 100644 --- a/tests/regressiontests/forms/tests/widgets.py +++ b/tests/regressiontests/forms/tests/widgets.py @@ -1086,6 +1086,28 @@ class ClearableFileInputTests(TestCase): self.assertEqual(widget.render('myfile', FakeFieldFile()), u'Currently: <a href="something">something</a> <input type="checkbox" name="myfile-clear" id="myfile-clear_id" /> <label for="myfile-clear_id">Clear</label><br />Change: <input type="file" name="myfile" />') + def test_html_escaped(self): + """ + A ClearableFileInput should escape name, filename and URL when + rendering HTML. Refs #15182. + """ + + class StrangeFieldFile(object): + url = "something?chapter=1§=2©=3&lang=en" + + def __unicode__(self): + return u'''something<div onclick="alert('oops')">.jpg''' + + widget = ClearableFileInput() + field = StrangeFieldFile() + output = widget.render('my<div>file', field) + self.assertFalse(field.url in output) + self.assertTrue(u'href="something?chapter=1&sect=2&copy=3&lang=en"' in output) + self.assertFalse(unicode(field) in output) + self.assertTrue(u'something<div onclick="alert('oops')">.jpg' in output) + self.assertTrue(u'my<div>file' in output) + self.assertFalse(u'my<div>file' in output) + def test_clear_input_renders_only_if_not_required(self): """ A ClearableFileInput with is_required=False does not render a clear |
