summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2020-03-13 06:26:06 -0700
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-03-16 07:31:19 +0100
commit3857a08bdb05e30f90f56a7dd0d505ad19f4c403 (patch)
treeba0dcd03fab679b4c0aab33561e32b97f418efee /tests/admin_views
parentb7093860df7bcdc3b8fafa9e6b206137da66d89b (diff)
Fixed #31361 -- Fixed invalid action="" in admin forms.
The attribute action="" (empty string) on the <form> element is invalid HTML5. The spec (https://html.spec.whatwg.org/#attr-fs-action) says: > The action and formaction content attributes, if specified, must have > a value that is a valid non-empty URL potentially surrounded by > spaces. Emphasis on non-empty. The action attribute is allowed to be omitted, in which case the current URL is used which is the same behavior as now.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/tests.py32
1 files changed, 20 insertions, 12 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 833a0cf2c8..d903261052 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -5868,21 +5868,19 @@ class AdminKeepChangeListFiltersTests(TestCase):
self.get_changelist_filters_querystring(),
)
- def get_add_url(self):
- return '%s?%s' % (
- reverse('admin:auth_user_add',
- current_app=self.admin_site.name),
- self.get_preserved_filters_querystring(),
- )
+ def get_add_url(self, add_preserved_filters=True):
+ url = reverse('admin:auth_user_add', current_app=self.admin_site.name)
+ if add_preserved_filters:
+ url = '%s?%s' % (url, self.get_preserved_filters_querystring())
+ return url
- def get_change_url(self, user_id=None):
+ def get_change_url(self, user_id=None, add_preserved_filters=True):
if user_id is None:
user_id = self.get_sample_user_id()
- return "%s?%s" % (
- reverse('admin:auth_user_change', args=(user_id,),
- current_app=self.admin_site.name),
- self.get_preserved_filters_querystring(),
- )
+ url = reverse('admin:auth_user_change', args=(user_id,), current_app=self.admin_site.name)
+ if add_preserved_filters:
+ url = '%s?%s' % (url, self.get_preserved_filters_querystring())
+ return url
def get_history_url(self, user_id=None):
if user_id is None:
@@ -5965,6 +5963,11 @@ class AdminKeepChangeListFiltersTests(TestCase):
self.assertRedirects(response, self.get_add_url())
post_data.pop('_addanother')
+ def test_change_view_without_preserved_filters(self):
+ response = self.client.get(self.get_change_url(add_preserved_filters=False))
+ # The action attribute is omitted.
+ self.assertContains(response, '<form method="post" id="user_form" novalidate>')
+
def test_add_view(self):
# Get the `add_view`.
response = self.client.get(self.get_add_url())
@@ -6003,6 +6006,11 @@ class AdminKeepChangeListFiltersTests(TestCase):
self.assertRedirects(response, self.get_add_url())
post_data.pop('_addanother')
+ def test_add_view_without_preserved_filters(self):
+ response = self.client.get(self.get_add_url(add_preserved_filters=False))
+ # The action attribute is omitted.
+ self.assertContains(response, '<form method="post" id="user_form" novalidate>')
+
def test_delete_view(self):
# Test redirect on "Delete".
response = self.client.post(self.get_delete_url(), {'post': 'yes'})