diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-13 12:01:14 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-13 12:01:14 +0000 |
| commit | 79857802b8f2cd01fe469a3b2fef918d48767a92 (patch) | |
| tree | 282495a2a16557ed60b7b16e36875b4a9390532b /tests/modeltests | |
| parent | 23d3450d5e596839cb27deb20d559d0cb558d987 (diff) | |
Fixed #12011 -- Modified the test client to preserve the request scheme on a redirect. Thanks to tgardner for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12419 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/modeltests')
| -rw-r--r-- | tests/modeltests/test_client/models.py | 10 | ||||
| -rw-r--r-- | tests/modeltests/test_client/urls.py | 3 | ||||
| -rw-r--r-- | tests/modeltests/test_client/views.py | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/tests/modeltests/test_client/models.py b/tests/modeltests/test_client/models.py index c8f1d42725..c51323d843 100644 --- a/tests/modeltests/test_client/models.py +++ b/tests/modeltests/test_client/models.py @@ -138,6 +138,16 @@ class ClientTest(TestCase): self.assertRedirects(response, 'http://testserver/test_client/get_view/', status_code=302, target_status_code=200) self.assertEquals(len(response.redirect_chain), 2) + def test_redirect_http(self): + "GET a URL that redirects to an http URI" + response = self.client.get('/test_client/http_redirect_view/',follow=True) + self.assertFalse(response.test_was_secure_request) + + def test_redirect_https(self): + "GET a URL that redirects to an https URI" + response = self.client.get('/test_client/https_redirect_view/',follow=True) + self.assertTrue(response.test_was_secure_request) + def test_notfound_response(self): "GET a URL that responds as '404:Not Found'" response = self.client.get('/test_client/bad_view/') diff --git a/tests/modeltests/test_client/urls.py b/tests/modeltests/test_client/urls.py index 3c84a768a0..9e0eabe7de 100644 --- a/tests/modeltests/test_client/urls.py +++ b/tests/modeltests/test_client/urls.py @@ -8,8 +8,11 @@ urlpatterns = patterns('', (r'^header_view/$', views.view_with_header), (r'^raw_post_view/$', views.raw_post_view), (r'^redirect_view/$', views.redirect_view), + (r'^secure_view/$', views.view_with_secure), (r'^permanent_redirect_view/$', redirect_to, {'url': '/test_client/get_view/'}), (r'^temporary_redirect_view/$', redirect_to, {'url': '/test_client/get_view/', 'permanent': False}), + (r'^http_redirect_view/$', redirect_to, {'url': '/test_client/secure_view/'}), + (r'^https_redirect_view/$', redirect_to, {'url': 'https://testserver/test_client/secure_view/'}), (r'^double_redirect_view/$', views.double_redirect_view), (r'^bad_view/$', views.bad_view), (r'^form_view/$', views.form_view), diff --git a/tests/modeltests/test_client/views.py b/tests/modeltests/test_client/views.py index 68963fff75..c42a7b7e67 100644 --- a/tests/modeltests/test_client/views.py +++ b/tests/modeltests/test_client/views.py @@ -63,6 +63,12 @@ def redirect_view(request): query = '' return HttpResponseRedirect('/test_client/get_view/' + query) +def view_with_secure(request): + "A view that indicates if the request was secure" + response = HttpResponse() + response.test_was_secure_request = request.is_secure() + return response + def double_redirect_view(request): "A view that redirects all requests to a redirection view" return HttpResponseRedirect('/test_client/permanent_redirect_view/') |
