OpenWPM/test/test_storage_vectors.py

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