aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_policy_deciding.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/test_policy_deciding.py')
-rw-r--r--test/unit/test_policy_deciding.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/test/unit/test_policy_deciding.py b/test/unit/test_policy_deciding.py
index 88095af..75b35ac 100644
--- a/test/unit/test_policy_deciding.py
+++ b/test/unit/test_policy_deciding.py
@@ -55,7 +55,7 @@ def test_decide_policy(execute_in_page):
returnval(decide_policy(pqt.make(), "http://unkno.wn/", true, "abcd"));
''')
assert policy['allow'] == True
- for prop in ('mapping', 'payload', 'nonce', 'csp'):
+ for prop in ('mapping', 'payload', 'nonce', 'csp', 'error'):
assert prop not in policy
policy = execute_in_page(
@@ -66,7 +66,7 @@ def test_decide_policy(execute_in_page):
}''')
assert policy['allow'] == True
assert policy['mapping'] == '~allow'
- for prop in ('payload', 'nonce', 'csp'):
+ for prop in ('payload', 'nonce', 'csp', 'error'):
assert prop not in policy
policy = execute_in_page(
@@ -75,7 +75,7 @@ def test_decide_policy(execute_in_page):
'''
)
assert policy['allow'] == False
- for prop in ('mapping', 'payload', 'nonce'):
+ for prop in ('mapping', 'payload', 'nonce', 'error'):
assert prop not in policy
assert parse_csp(policy['csp']) == {
'prefetch-src': "'none'",
@@ -92,7 +92,7 @@ def test_decide_policy(execute_in_page):
}''')
assert policy['allow'] == False
assert policy['mapping'] == '~allow'
- for prop in ('payload', 'nonce'):
+ for prop in ('payload', 'nonce', 'error'):
assert prop not in policy
assert parse_csp(policy['csp']) == {
'prefetch-src': "'none'",
@@ -110,7 +110,7 @@ def test_decide_policy(execute_in_page):
assert policy['allow'] == False
assert policy['mapping'] == 'm1'
assert policy['payload'] == {'identifier': 'res1'}
-
+ assert 'error' not in policy
assert policy['nonce'] == \
sha256('m1:res1:http://kno.wn/:abcd'.encode()).digest().hex()
assert parse_csp(policy['csp']) == {
@@ -119,3 +119,17 @@ def test_decide_policy(execute_in_page):
'script-src': f"'nonce-{policy['nonce']}'",
'script-src-elem': f"'nonce-{policy['nonce']}'"
}
+
+ policy = execute_in_page(
+ 'returnval(decide_policy(pqt.make(), "<bad_url>", true, "abcd"));'
+ )
+ assert policy['allow'] == False
+ assert policy['error'] == {'haketilo_error_type': 'deciding_policy'}
+ for prop in ('mapping', 'payload', 'nonce'):
+ assert prop not in policy
+ assert parse_csp(policy['csp']) == {
+ 'prefetch-src': "'none'",
+ 'script-src-attr': "'none'",
+ 'script-src': "'none'",
+ 'script-src-elem': "'none'"
+ }