diff options
| author | Jannis Leidel <jannis@leidel.info> | 2012-03-02 11:07:36 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2012-03-02 11:07:36 +0000 |
| commit | 746987f916bfb24a0671429d9993ad727dc7c8bc (patch) | |
| tree | 337b7241f5290b1ee934115c381b9338b7748b8d /tests | |
| parent | a255d3933828ea5ab5173bc41336a64f446057bb (diff) | |
Fixed #17734 -- Made sure to only redirect translated URLs if they can actually be resolved to prevent unwanted redirects. Many thanks to Orne Brocaar and Anssi Kääriäinen for input.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17621 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/i18n/patterns/tests.py | 35 | ||||
| -rw-r--r-- | tests/regressiontests/i18n/patterns/urls/namespace.py | 1 |
2 files changed, 11 insertions, 25 deletions
diff --git a/tests/regressiontests/i18n/patterns/tests.py b/tests/regressiontests/i18n/patterns/tests.py index 1cc4520358..1216d0bde9 100644 --- a/tests/regressiontests/i18n/patterns/tests.py +++ b/tests/regressiontests/i18n/patterns/tests.py @@ -144,37 +144,29 @@ class URLRedirectTests(URLTestCaseBase): def test_en_redirect(self): response = self.client.get('/account/register/', HTTP_ACCEPT_LANGUAGE='en') - self.assertRedirects(response, 'http://testserver/en/account/register/') + self.assertRedirects(response, '/en/account/register/') response = self.client.get(response['location']) self.assertEqual(response.status_code, 200) def test_en_redirect_wrong_url(self): response = self.client.get('/profiel/registeren/', HTTP_ACCEPT_LANGUAGE='en') - self.assertEqual(response.status_code, 302) - self.assertEqual(response['location'], 'http://testserver/en/profiel/registeren/') - - response = self.client.get(response['location']) self.assertEqual(response.status_code, 404) def test_nl_redirect(self): response = self.client.get('/profiel/registeren/', HTTP_ACCEPT_LANGUAGE='nl') - self.assertRedirects(response, 'http://testserver/nl/profiel/registeren/') + self.assertRedirects(response, '/nl/profiel/registeren/') response = self.client.get(response['location']) self.assertEqual(response.status_code, 200) def test_nl_redirect_wrong_url(self): response = self.client.get('/account/register/', HTTP_ACCEPT_LANGUAGE='nl') - self.assertEqual(response.status_code, 302) - self.assertEqual(response['location'], 'http://testserver/nl/account/register/') - - response = self.client.get(response['location']) self.assertEqual(response.status_code, 404) def test_pt_br_redirect(self): response = self.client.get('/conta/registre-se/', HTTP_ACCEPT_LANGUAGE='pt-br') - self.assertRedirects(response, 'http://testserver/pt-br/conta/registre-se/') + self.assertRedirects(response, '/pt-br/conta/registre-se/') response = self.client.get(response['location']) self.assertEqual(response.status_code, 200) @@ -187,17 +179,15 @@ class URLRedirectWithoutTrailingSlashTests(URLTestCaseBase): """ def test_not_prefixed_redirect(self): response = self.client.get('/not-prefixed', HTTP_ACCEPT_LANGUAGE='en') - self.assertEqual(response.status_code, 301) - self.assertEqual(response['location'], 'http://testserver/not-prefixed/') + self.assertRedirects(response, '/not-prefixed/', 301) def test_en_redirect(self): response = self.client.get('/account/register', HTTP_ACCEPT_LANGUAGE='en') - self.assertEqual(response.status_code, 302) - self.assertEqual(response['location'], 'http://testserver/en/account/register') + # target status code of 301 because of CommonMiddleware redirecting + self.assertRedirects(response, '/en/account/register', 302, target_status_code=301) response = self.client.get(response['location']) - self.assertEqual(response.status_code, 301) - self.assertEqual(response['location'], 'http://testserver/en/account/register/') + self.assertRedirects(response, '/en/account/register/', 301) class URLRedirectWithoutTrailingSlashSettingTests(URLTestCaseBase): @@ -208,20 +198,15 @@ class URLRedirectWithoutTrailingSlashSettingTests(URLTestCaseBase): @override_settings(APPEND_SLASH=False) def test_not_prefixed_redirect(self): response = self.client.get('/not-prefixed', HTTP_ACCEPT_LANGUAGE='en') - self.assertEqual(response.status_code, 302) - self.assertEqual(response['location'], 'http://testserver/en/not-prefixed') - - response = self.client.get(response['location']) self.assertEqual(response.status_code, 404) @override_settings(APPEND_SLASH=False) def test_en_redirect(self): - response = self.client.get('/account/register', HTTP_ACCEPT_LANGUAGE='en') - self.assertEqual(response.status_code, 302) - self.assertEqual(response['location'], 'http://testserver/en/account/register') + response = self.client.get('/account/register-without-slash', HTTP_ACCEPT_LANGUAGE='en') + self.assertRedirects(response, '/en/account/register-without-slash', 302) response = self.client.get(response['location']) - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, 200) class URLResponseTests(URLTestCaseBase): diff --git a/tests/regressiontests/i18n/patterns/urls/namespace.py b/tests/regressiontests/i18n/patterns/urls/namespace.py index bf43949961..3a2467b7b5 100644 --- a/tests/regressiontests/i18n/patterns/urls/namespace.py +++ b/tests/regressiontests/i18n/patterns/urls/namespace.py @@ -7,4 +7,5 @@ view = TemplateView.as_view(template_name='dummy.html') urlpatterns = patterns('', url(_(r'^register/$'), view, name='register'), + url(_(r'^register-without-slash$'), view, name='register-without-slash'), ) |
