summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_views/tests.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index fbea1d49c7..21f1eb818c 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -1779,6 +1779,30 @@ class AdminViewStringPrimaryKeyTest(TestCase):
args=(quote(self.pk),))
self.assertContains(response, '<a href="%s" class="historylink"' % expected_link)
+ def test_redirect_on_add_view_continue_button(self):
+ """As soon as an object is added using "Save and continue editing"
+ button, the user should be redirected to the object's change_view.
+
+ In case primary key is a string containing some special characters
+ like slash or underscore, these characters must be escaped (see #22266)
+ """
+ response = self.client.post(
+ '/test_admin/admin/admin_views/modelwithstringprimarykey/add/',
+ {
+ 'string_pk': '123/history',
+ "_continue": "1", # Save and continue editing
+ }
+ )
+
+ self.assertEqual(response.status_code, 302) # temporary redirect
+ self.assertEqual(
+ response['location'],
+ (
+ 'http://testserver/test_admin/admin/admin_views/'
+ 'modelwithstringprimarykey/123_2Fhistory/' # PK is quoted
+ )
+ )
+
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))
class SecureViewTests(TestCase):