Skip to content

Commit 79b4688

Browse files
committed
Added test cases for cookie code. This will test all the cookie setting code, and also adds test for draft for include_text and full_draft cookie checking. Commit ready for merge.
- Legacy-Id: 9319
1 parent a1a85d4 commit 79b4688

3 files changed

Lines changed: 357 additions & 3 deletions

File tree

ietf/cookies/tests.py

Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
from django.core.urlresolvers import reverse as urlreverse
2+
from ietf.utils.test_data import make_test_data
3+
from ietf.utils.test_utils import TestCase
4+
from Cookie import SimpleCookie
5+
6+
class CookieTests(TestCase):
7+
def test_settings_defaults(self):
8+
make_test_data()
9+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
10+
self.assertEqual(r.status_code, 200)
11+
self.assertListEqual([], r.cookies.keys())
12+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
13+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
14+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
15+
16+
def test_settings_defaults_from_cookies(self):
17+
make_test_data()
18+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
19+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
20+
self.assertEqual(r.status_code, 200)
21+
self.assertListEqual([], r.cookies.keys())
22+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
23+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
24+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
25+
26+
def test_settings_values_from_cookies_garbage(self):
27+
make_test_data()
28+
self.client.cookies = SimpleCookie({'full_draft': 'foo', 'new_enough' : 'foo', 'expires_soon' : 'foo'})
29+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
30+
self.assertEqual(r.status_code, 200)
31+
self.assertListEqual([], r.cookies.keys())
32+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
33+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
34+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
35+
36+
def test_settings_values_from_cookies_random(self):
37+
make_test_data()
38+
self.client.cookies = SimpleCookie({'full_draft': 'zappa', 'new_enough' : '365', 'expires_soon' : '5'})
39+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
40+
self.assertEqual(r.status_code, 200)
41+
self.assertListEqual([], r.cookies.keys())
42+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
43+
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*new_enough')
44+
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon')
45+
46+
def test_settings_values_from_cookies_1(self):
47+
make_test_data()
48+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '90', 'expires_soon' : 7})
49+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
50+
self.assertEqual(r.status_code, 200)
51+
self.assertListEqual([], r.cookies.keys())
52+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
53+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
54+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
55+
56+
def test_settings_values_from_cookies_2(self):
57+
make_test_data()
58+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '60', 'expires_soon' : 14})
59+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
60+
self.assertEqual(r.status_code, 200)
61+
self.assertListEqual([], r.cookies.keys())
62+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
63+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')
64+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
65+
66+
def test_settings_values_from_cookies_3(self):
67+
make_test_data()
68+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '30', 'expires_soon' : 21})
69+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
70+
self.assertEqual(r.status_code, 200)
71+
self.assertListEqual([], r.cookies.keys())
72+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
73+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*30 days')
74+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
75+
76+
def test_settings_values_from_cookies_4(self):
77+
make_test_data()
78+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '21', 'expires_soon' : 30})
79+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
80+
self.assertEqual(r.status_code, 200)
81+
self.assertListEqual([], r.cookies.keys())
82+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
83+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
84+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*30 days')
85+
86+
def test_settings_values_from_cookies_5(self):
87+
make_test_data()
88+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 60})
89+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
90+
self.assertEqual(r.status_code, 200)
91+
self.assertListEqual([], r.cookies.keys())
92+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
93+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
94+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
95+
96+
def test_settings_values_from_cookies_6(self):
97+
make_test_data()
98+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '7', 'expires_soon' : 90})
99+
r = self.client.get(urlreverse("ietf.cookies.views.settings"))
100+
self.assertEqual(r.status_code, 200)
101+
self.assertListEqual([], r.cookies.keys())
102+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
103+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
104+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
105+
106+
def test_full_draft(self):
107+
make_test_data()
108+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
109+
r = self.client.get(urlreverse("ietf.cookies.views.full_draft"))
110+
self.assertEqual(r.status_code, 200)
111+
self.assertEqual(r.cookies['full_draft'].value, 'off')
112+
self.assertListEqual(['full_draft'], r.cookies.keys())
113+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
114+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
115+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
116+
117+
def test_full_draft_on(self):
118+
make_test_data()
119+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
120+
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="on")))
121+
self.assertEqual(r.status_code, 200)
122+
self.assertEqual(r.cookies['full_draft'].value, 'on')
123+
self.assertListEqual(['full_draft'], r.cookies.keys())
124+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
125+
126+
def test_full_draft_off(self):
127+
make_test_data()
128+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
129+
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="off")))
130+
self.assertEqual(r.status_code, 200)
131+
self.assertEqual(r.cookies['full_draft'].value, 'off')
132+
self.assertListEqual(['full_draft'], r.cookies.keys())
133+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
134+
135+
def test_full_draft_foo(self):
136+
make_test_data()
137+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
138+
r = self.client.get(urlreverse("ietf.cookies.views.full_draft", kwargs=dict(enabled="foo")))
139+
self.assertEqual(r.status_code, 200)
140+
self.assertEqual(r.cookies['full_draft'].value, 'off')
141+
self.assertListEqual(['full_draft'], r.cookies.keys())
142+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
143+
144+
def test_new_enough(self):
145+
make_test_data()
146+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
147+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough"))
148+
self.assertEqual(r.status_code, 200)
149+
self.assertEqual(r.cookies['new_enough'].value, '14')
150+
self.assertListEqual(['new_enough'], r.cookies.keys())
151+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
152+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
153+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
154+
155+
def test_new_enough_7(self):
156+
make_test_data()
157+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 21})
158+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="7")))
159+
self.assertEqual(r.status_code, 200)
160+
self.assertEqual(r.cookies['new_enough'].value, '7')
161+
self.assertListEqual(['new_enough'], r.cookies.keys())
162+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
163+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
164+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
165+
166+
def test_new_enough_14(self):
167+
make_test_data()
168+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '7', 'expires_soon' : 99})
169+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="14")))
170+
self.assertEqual(r.status_code, 200)
171+
self.assertEqual(r.cookies['new_enough'].value, '14')
172+
self.assertListEqual(['new_enough'], r.cookies.keys())
173+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
174+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
175+
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon')
176+
177+
def test_new_enough_21(self):
178+
make_test_data()
179+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'new_enough' : '14', 'expires_soon' : 90})
180+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="21")))
181+
self.assertEqual(r.status_code, 200)
182+
self.assertEqual(r.cookies['new_enough'].value, '21')
183+
self.assertListEqual(['new_enough'], r.cookies.keys())
184+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
185+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
186+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
187+
188+
def test_new_enough_30(self):
189+
make_test_data()
190+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 7})
191+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="30")))
192+
self.assertEqual(r.status_code, 200)
193+
self.assertEqual(r.cookies['new_enough'].value, '30')
194+
self.assertListEqual(['new_enough'], r.cookies.keys())
195+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
196+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*30 days')
197+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
198+
199+
def test_new_enough_60(self):
200+
make_test_data()
201+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '14', 'expires_soon' : 14})
202+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="60")))
203+
self.assertEqual(r.status_code, 200)
204+
self.assertEqual(r.cookies['new_enough'].value, '60')
205+
self.assertListEqual(['new_enough'], r.cookies.keys())
206+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
207+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')
208+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
209+
210+
def test_new_enough_90(self):
211+
make_test_data()
212+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'new_enough' : '22', 'expires_soon' : 60})
213+
r = self.client.get(urlreverse("ietf.cookies.views.new_enough", kwargs=dict(days="90")))
214+
self.assertEqual(r.status_code, 200)
215+
self.assertEqual(r.cookies['new_enough'].value, '90')
216+
self.assertListEqual(['new_enough'], r.cookies.keys())
217+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
218+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
219+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
220+
221+
def test_expires_soon(self):
222+
make_test_data()
223+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 14})
224+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon"))
225+
self.assertEqual(r.status_code, 200)
226+
self.assertEqual(r.cookies['expires_soon'].value, '14')
227+
self.assertListEqual(['expires_soon'], r.cookies.keys())
228+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
229+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
230+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
231+
232+
def test_expires_soon_7(self):
233+
make_test_data()
234+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '14', 'new_enough' : 21})
235+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="7")))
236+
self.assertEqual(r.status_code, 200)
237+
self.assertEqual(r.cookies['expires_soon'].value, '7')
238+
self.assertListEqual(['expires_soon'], r.cookies.keys())
239+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
240+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*7 days')
241+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*21 days')
242+
243+
def test_expires_soon_14(self):
244+
make_test_data()
245+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '7', 'new_enough' : 99})
246+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="14")))
247+
self.assertEqual(r.status_code, 200)
248+
self.assertEqual(r.cookies['expires_soon'].value, '14')
249+
self.assertListEqual(['expires_soon'], r.cookies.keys())
250+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
251+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*14 days')
252+
self.assertNotRegexpMatches(r.content, r'ietf-highlight-y.*new_enough')
253+
254+
def test_expires_soon_21(self):
255+
make_test_data()
256+
self.client.cookies = SimpleCookie({'full_draft': 'on', 'expires_soon' : '14', 'new_enough' : 90})
257+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="21")))
258+
self.assertEqual(r.status_code, 200)
259+
self.assertEqual(r.cookies['expires_soon'].value, '21')
260+
self.assertListEqual(['expires_soon'], r.cookies.keys())
261+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*on')
262+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*21 days')
263+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*90 days')
264+
265+
def test_expires_soon_30(self):
266+
make_test_data()
267+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 7})
268+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="30")))
269+
self.assertEqual(r.status_code, 200)
270+
self.assertEqual(r.cookies['expires_soon'].value, '30')
271+
self.assertListEqual(['expires_soon'], r.cookies.keys())
272+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
273+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*30 days')
274+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*7 days')
275+
276+
def test_expires_soon_60(self):
277+
make_test_data()
278+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '14', 'new_enough' : 14})
279+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="60")))
280+
self.assertEqual(r.status_code, 200)
281+
self.assertEqual(r.cookies['expires_soon'].value, '60')
282+
self.assertListEqual(['expires_soon'], r.cookies.keys())
283+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
284+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*60 days')
285+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*14 days')
286+
287+
def test_expires_soon_90(self):
288+
make_test_data()
289+
self.client.cookies = SimpleCookie({'full_draft': 'off', 'expires_soon' : '22', 'new_enough' : 60})
290+
r = self.client.get(urlreverse("ietf.cookies.views.expires_soon", kwargs=dict(days="90")))
291+
self.assertEqual(r.status_code, 200)
292+
self.assertEqual(r.cookies['expires_soon'].value, '90')
293+
self.assertListEqual(['expires_soon'], r.cookies.keys())
294+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
295+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*expires_soon.*90 days')
296+
self.assertRegexpMatches(r.content, r'ietf-highlight-y.*new_enough.*60 days')

ietf/cookies/views.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,20 @@
55

66
def settings(request, new_enough = -1, expires_soon = -1, full_draft = ""):
77
if new_enough < 0:
8-
if "new_enough" in request.COOKIES:
8+
if "new_enough" in request.COOKIES and request.COOKIES["new_enough"].isdigit():
99
new_enough = int(request.COOKIES["new_enough"])
1010
else:
1111
new_enough = 14
1212
if expires_soon < 0:
13-
if "expires_soon" in request.COOKIES:
13+
if "expires_soon" in request.COOKIES and request.COOKIES["expires_soon"].isdigit():
1414
expires_soon = int(request.COOKIES["expires_soon"])
1515
else:
1616
expires_soon = 14
1717
if full_draft == "":
1818
if "full_draft" in request.COOKIES:
1919
full_draft = request.COOKIES["full_draft"]
20+
if full_draft != 'on' and full_draft != 'off':
21+
full_draft = "off"
2022
else:
2123
full_draft = "off"
2224
return render("cookies/settings.html",

0 commit comments

Comments
 (0)