diff options
author | Sandro Covo <sandro@sandrocovo.ch> | 2021-01-12 22:19:53 +0100 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-01-29 11:58:43 +0100 |
commit | 6822aa5c6c3fbec7c5393a05e990865ba59fe167 (patch) | |
tree | 83dd98643726d1bdbee6b5f1388e907ba24aa4d0 /tests/view_tests | |
parent | fdfbc66331292def201c9344e3cd29fbcbcd076a (diff) | |
download | django-6822aa5c6c3fbec7c5393a05e990865ba59fe167.tar.gz |
Fixed #32345 -- Fixed preserving encoded query strings in set_language() view.
Thanks Johannes Maron for the review.
Diffstat (limited to 'tests/view_tests')
-rw-r--r-- | tests/view_tests/tests/test_i18n.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tests/view_tests/tests/test_i18n.py b/tests/view_tests/tests/test_i18n.py index 091df959fc..b4c27a296e 100644 --- a/tests/view_tests/tests/test_i18n.py +++ b/tests/view_tests/tests/test_i18n.py @@ -169,12 +169,14 @@ class SetLanguageTests(TestCase): def test_setlang_decodes_http_referer_url(self): """ - The set_language view decodes the HTTP_REFERER URL. + The set_language view decodes the HTTP_REFERER URL and preserves an + encoded query string. """ # The URL & view must exist for this to work as a regression test. self.assertEqual(reverse('with_parameter', kwargs={'parameter': 'x'}), '/test-setlang/x/') lang_code = self._get_inactive_language_code() - encoded_url = '/test-setlang/%C3%A4/' # (%C3%A4 decodes to ä) + # %C3%A4 decodes to ä, %26 to &. + encoded_url = '/test-setlang/%C3%A4/?foo=bar&baz=alpha%26omega' response = self.client.post('/i18n/setlang/', {'language': lang_code}, HTTP_REFERER=encoded_url) self.assertRedirects(response, encoded_url, fetch_redirect_response=False) self.assertEqual(self.client.cookies[settings.LANGUAGE_COOKIE_NAME].value, lang_code) |