browser2: Use cookie testing services
Both are aimed at real browsers. This also adds a "real-life" cookie deletion/expiration test.
This commit is contained in:
parent
26025d725d
commit
e793fd14da
1 changed files with 62 additions and 1 deletions
|
|
@ -21,6 +21,8 @@ from __future__ import absolute_import
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from random import choice
|
from random import choice
|
||||||
|
import re
|
||||||
|
import string
|
||||||
|
|
||||||
from requests import HTTPError
|
from requests import HTTPError
|
||||||
from nose.plugins.skip import SkipTest
|
from nose.plugins.skip import SkipTest
|
||||||
|
|
@ -480,7 +482,6 @@ def test_cookieredirect():
|
||||||
# the cookie was not forwarded; it's for another domain
|
# the cookie was not forwarded; it's for another domain
|
||||||
# this is important for security reasons,
|
# this is important for security reasons,
|
||||||
# and because python-requests tries to do it by default!
|
# and because python-requests tries to do it by default!
|
||||||
print json.loads(r.text)['cookies']
|
|
||||||
assert len(json.loads(r.text)['cookies']) == 0
|
assert len(json.loads(r.text)['cookies']) == 0
|
||||||
|
|
||||||
# add a cookie for the target
|
# add a cookie for the target
|
||||||
|
|
@ -494,3 +495,63 @@ def test_cookieredirect():
|
||||||
# check all cookies sent in the request chain
|
# check all cookies sent in the request chain
|
||||||
assert r.cookies == {'k': 'v2'}
|
assert r.cookies == {'k': 'v2'}
|
||||||
assert r.history[0].cookies['k'] == 'v1' # some services add other cookies
|
assert r.history[0].cookies['k'] == 'v1' # some services add other cookies
|
||||||
|
|
||||||
|
|
||||||
|
def test_cookie_srv1():
|
||||||
|
"""
|
||||||
|
Test cookie in real conditions (service 1)
|
||||||
|
"""
|
||||||
|
class TestBrowser(DomainBrowser):
|
||||||
|
BASEURL = 'http://www.mria-arim.ca/'
|
||||||
|
|
||||||
|
b = TestBrowser()
|
||||||
|
b.location('testCookies.asp')
|
||||||
|
# TODO this is also a good place to test form parsing/submission
|
||||||
|
b.location('testCookies.asp', {'makeMe': 'Create Cookie'})
|
||||||
|
r = b.location('testCookies.asp', {'testMe': 'Test Browser'})
|
||||||
|
assert 'Your Browser accepts cookies' in r.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_cookie_srv2():
|
||||||
|
"""
|
||||||
|
Test cookie in real conditions (service 2)
|
||||||
|
"""
|
||||||
|
def randtext():
|
||||||
|
return ''.join(choice(string.digits + string.letters) for _ in xrange(32))
|
||||||
|
|
||||||
|
class TestBrowser(DomainBrowser):
|
||||||
|
BASEURL = 'http://www.html-kit.com/tools/cookietester/'
|
||||||
|
|
||||||
|
def cookienum(self):
|
||||||
|
return int(re.search('Number of cookies received: (\d+)',
|
||||||
|
self.response.text).groups()[0])
|
||||||
|
|
||||||
|
def mypost(self, **data):
|
||||||
|
return self.location('', data)
|
||||||
|
|
||||||
|
b = TestBrowser()
|
||||||
|
b.home()
|
||||||
|
assert b.cookienum() == 0
|
||||||
|
|
||||||
|
r1 = randtext()
|
||||||
|
r1v = randtext()
|
||||||
|
|
||||||
|
# TODO this is also a good place to test form parsing/submission
|
||||||
|
# get a new cookie
|
||||||
|
r = b.mypost(cn=r1, cv=r1v)
|
||||||
|
assert b.cookienum() == 1
|
||||||
|
assert r1 in r.text
|
||||||
|
assert r1v in r.text
|
||||||
|
|
||||||
|
# cookie deletion
|
||||||
|
r = b.mypost(cr=r1)
|
||||||
|
assert b.cookienum() == 0
|
||||||
|
assert r1 not in r.text
|
||||||
|
assert r1v not in r.text
|
||||||
|
|
||||||
|
# om nom nom
|
||||||
|
b.mypost(cn=randtext(), cv=randtext())
|
||||||
|
b.mypost(cn=randtext(), cv=randtext())
|
||||||
|
b.mypost(cn=randtext(), cv=randtext())
|
||||||
|
b.mypost(cn=randtext(), cv=randtext())
|
||||||
|
assert b.cookienum() == 4
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue