зеркало из https://github.com/openwpm/OpenWPM.git
54 строки
1.7 KiB
Python
54 строки
1.7 KiB
Python
"""Runs some basic tests to check that the saving of
|
|
storage vectors (i.e. profile cookies) works.
|
|
|
|
NOTE: These tests are very basic and should be expanded
|
|
on to check for completeness and correctness.
|
|
"""
|
|
|
|
from openwpm import command_sequence
|
|
from openwpm.utilities import db_utils
|
|
|
|
from . import utilities
|
|
|
|
expected_js_cookie = (
|
|
u"added-or-changed", # record_type
|
|
u"explicit", # change_cause
|
|
0, # is_http_only
|
|
1, # is_host_only
|
|
0, # is_session
|
|
u"%s" % utilities.BASE_TEST_URL_DOMAIN, # host
|
|
0, # is_secure
|
|
u"test_cookie", # name
|
|
u"/", # path
|
|
u"Test-0123456789", # value
|
|
u"no_restriction", # same_site
|
|
)
|
|
|
|
|
|
def test_js_profile_cookies(default_params, task_manager_creator):
|
|
"""Check that profile cookies set by JS are saved"""
|
|
# Run the test crawl
|
|
manager_params, browser_params = default_params
|
|
for browser_param in browser_params:
|
|
browser_param.cookie_instrument = True
|
|
manager, db = task_manager_creator((manager_params, browser_params))
|
|
url = utilities.BASE_TEST_URL + "/js_cookie.html"
|
|
cs = command_sequence.CommandSequence(url)
|
|
cs.get(sleep=3, timeout=120)
|
|
manager.execute_command_sequence(cs)
|
|
manager.close()
|
|
# Check that the JS cookie we stored is recorded
|
|
qry_res = db_utils.query_db(
|
|
db,
|
|
(
|
|
"SELECT record_type, change_cause, is_http_only, "
|
|
"is_host_only, is_session, host, is_secure, name, path, "
|
|
"value, same_site FROM javascript_cookies"
|
|
),
|
|
as_tuple=True,
|
|
)
|
|
assert len(qry_res) == 1 # we store only one cookie
|
|
cookies = qry_res[0] # take the first cookie
|
|
# compare URL, domain, name, value, origin, path
|
|
assert cookies == expected_js_cookie
|