~ubuntuone-pqm-team/django/stable

« back to all changes in this revision

Viewing changes to django/contrib/formtools/tests/wizard/test_cookiestorage.py

  • Committer: Natalia
  • Date: 2014-12-05 15:21:13 UTC
  • Revision ID: natalia.bidart@ubuntu.com-20141205152113-cchtmygjia45gb87
Tags: 1.6.8
- Imported Django 1.6.8 from released tarball.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from django.test import TestCase
 
2
from django.core import signing
 
3
from django.core.exceptions import SuspiciousOperation
 
4
from django.http import HttpResponse
 
5
 
 
6
from django.contrib.auth.tests.utils import skipIfCustomUser
 
7
from django.contrib.formtools.wizard.storage.cookie import CookieStorage
 
8
from django.contrib.formtools.tests.wizard.storage import get_request, TestStorage
 
9
 
 
10
 
 
11
@skipIfCustomUser
 
12
class TestCookieStorage(TestStorage, TestCase):
 
13
    def get_storage(self):
 
14
        return CookieStorage
 
15
 
 
16
    def test_manipulated_cookie(self):
 
17
        request = get_request()
 
18
        storage = self.get_storage()('wizard1', request, None)
 
19
 
 
20
        cookie_signer = signing.get_cookie_signer(storage.prefix)
 
21
 
 
22
        storage.request.COOKIES[storage.prefix] = cookie_signer.sign(
 
23
            storage.encoder.encode({'key1': 'value1'}))
 
24
 
 
25
        self.assertEqual(storage.load_data(), {'key1': 'value1'})
 
26
 
 
27
        storage.request.COOKIES[storage.prefix] = 'i_am_manipulated'
 
28
        self.assertRaises(SuspiciousOperation, storage.load_data)
 
29
 
 
30
    def test_reset_cookie(self):
 
31
        request = get_request()
 
32
        storage = self.get_storage()('wizard1', request, None)
 
33
 
 
34
        storage.data = {'key1': 'value1'}
 
35
 
 
36
        response = HttpResponse()
 
37
        storage.update_response(response)
 
38
 
 
39
        cookie_signer = signing.get_cookie_signer(storage.prefix)
 
40
        signed_cookie_data = cookie_signer.sign(storage.encoder.encode(storage.data))
 
41
        self.assertEqual(response.cookies[storage.prefix].value, signed_cookie_data)
 
42
 
 
43
        storage.init_data()
 
44
        storage.update_response(response)
 
45
        unsigned_cookie_data = cookie_signer.unsign(response.cookies[storage.prefix].value)
 
46
        self.assertJSONEqual(unsigned_cookie_data,
 
47
            {"step_files": {}, "step": None, "extra_data": {}, "step_data": {}})