summaryrefslogtreecommitdiff
path: root/tests/signed_cookies_tests
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2013-02-26 09:53:47 +0100
committerFlorian Apolloner <florian@apolloner.eu>2013-02-26 14:36:57 +0100
commit89f40e36246100df6a11316c31a76712ebc6c501 (patch)
tree6e65639683ddaf2027908d1ecb1739e0e2ff853b /tests/signed_cookies_tests
parentb3d2ccb5bfbaf6e7fe1f98843baaa48c35a70950 (diff)
downloaddjango-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__.py0
-rw-r--r--tests/signed_cookies_tests/models.py1
-rw-r--r--tests/signed_cookies_tests/tests.py64
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