diff options
author | Florian Apolloner <florian@apolloner.eu> | 2013-02-26 09:53:47 +0100 |
---|---|---|
committer | Florian Apolloner <florian@apolloner.eu> | 2013-02-26 14:36:57 +0100 |
commit | 89f40e36246100df6a11316c31a76712ebc6c501 (patch) | |
tree | 6e65639683ddaf2027908d1ecb1739e0e2ff853b /tests/signed_cookies_tests | |
parent | b3d2ccb5bfbaf6e7fe1f98843baaa48c35a70950 (diff) | |
download | django-89f40e36246100df6a11316c31a76712ebc6c501.tar.gz |
Merged regressiontests and modeltests into the test root.
Diffstat (limited to 'tests/signed_cookies_tests')
-rw-r--r-- | tests/signed_cookies_tests/__init__.py | 0 | ||||
-rw-r--r-- | tests/signed_cookies_tests/models.py | 1 | ||||
-rw-r--r-- | tests/signed_cookies_tests/tests.py | 64 |
3 files changed, 65 insertions, 0 deletions
diff --git a/tests/signed_cookies_tests/__init__.py b/tests/signed_cookies_tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/signed_cookies_tests/__init__.py diff --git a/tests/signed_cookies_tests/models.py b/tests/signed_cookies_tests/models.py new file mode 100644 index 0000000000..71abcc5198 --- /dev/null +++ b/tests/signed_cookies_tests/models.py @@ -0,0 +1 @@ +# models.py file for tests to run. diff --git a/tests/signed_cookies_tests/tests.py b/tests/signed_cookies_tests/tests.py new file mode 100644 index 0000000000..800092a2d7 --- /dev/null +++ b/tests/signed_cookies_tests/tests.py @@ -0,0 +1,64 @@ +from __future__ import unicode_literals + +import time + +from django.core import signing +from django.http import HttpRequest, HttpResponse +from django.test import TestCase + + +class SignedCookieTest(TestCase): + + def test_can_set_and_read_signed_cookies(self): + response = HttpResponse() + response.set_signed_cookie('c', 'hello') + self.assertIn('c', response.cookies) + self.assertTrue(response.cookies['c'].value.startswith('hello:')) + request = HttpRequest() + request.COOKIES['c'] = response.cookies['c'].value + value = request.get_signed_cookie('c') + self.assertEqual(value, 'hello') + + def test_can_use_salt(self): + response = HttpResponse() + response.set_signed_cookie('a', 'hello', salt='one') + request = HttpRequest() + request.COOKIES['a'] = response.cookies['a'].value + value = request.get_signed_cookie('a', salt='one') + self.assertEqual(value, 'hello') + self.assertRaises(signing.BadSignature, + request.get_signed_cookie, 'a', salt='two') + + def test_detects_tampering(self): + response = HttpResponse() + response.set_signed_cookie('c', 'hello') + request = HttpRequest() + request.COOKIES['c'] = response.cookies['c'].value[:-2] + '$$' + self.assertRaises(signing.BadSignature, + request.get_signed_cookie, 'c') + + def test_default_argument_supresses_exceptions(self): + response = HttpResponse() + response.set_signed_cookie('c', 'hello') + request = HttpRequest() + request.COOKIES['c'] = response.cookies['c'].value[:-2] + '$$' + self.assertEqual(request.get_signed_cookie('c', default=None), None) + + def test_max_age_argument(self): + value = 'hello' + _time = time.time + time.time = lambda: 123456789 + try: + response = HttpResponse() + response.set_signed_cookie('c', value) + request = HttpRequest() + request.COOKIES['c'] = response.cookies['c'].value + self.assertEqual(request.get_signed_cookie('c'), value) + + time.time = lambda: 123456800 + self.assertEqual(request.get_signed_cookie('c', max_age=12), value) + self.assertEqual(request.get_signed_cookie('c', max_age=11), value) + self.assertRaises(signing.SignatureExpired, + request.get_signed_cookie, 'c', max_age = 10) + finally: + time.time = _time |