diff options
Diffstat (limited to 'test/unit/test_webrequest.py')
-rw-r--r-- | test/unit/test_webrequest.py | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/test/unit/test_webrequest.py b/test/unit/test_webrequest.py deleted file mode 100644 index fb24b3d..0000000 --- a/test/unit/test_webrequest.py +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: CC0-1.0 - -""" -Haketilo unit tests - modifying requests using webRequest API -""" - -# This file is part of Haketilo -# -# Copyright (C) 2021, Wojtek Kosior <koszko@koszko.org> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the CC0 1.0 Universal License as published by -# the Creative Commons Corporation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# CC0 1.0 Universal License for more details. - -import re -from hashlib import sha256 -import pytest - -from ..script_loader import load_script -from .utils import are_scripts_allowed - -def webrequest_js(): - return (load_script('background/webrequest.js', - '#IMPORT common/patterns_query_tree.js AS pqt') + - '''; - // Mock pattern tree. - tree = pqt.make(); - // Mock default allow. - default_allow = {name: "default_allow", value: true}; - - // Rule to block scripts. - pqt.register(tree, "https://site.with.scripts.block.ed/***", - "~allow", 0); - - // Rule to allow scripts, but overridden by payload assignment. - pqt.register(tree, "https://site.with.paylo.ad/***", "~allow", 1); - pqt.register(tree, "https://site.with.paylo.ad/***", - "somemapping", {identifier: "someresource"}); - - // Mock stream_filter. - stream_filter.apply = (details, headers, policy) => headers; - - // Mock secret and start webrequest operations. - start("somesecret"); - ''') - -@pytest.mark.ext_data({'background_script': webrequest_js}) -@pytest.mark.usefixtures('webextension') -def test_on_headers_received(driver, execute_in_page): - for attempt in range(10): - driver.get('https://site.with.scripts.block.ed/') - - if not are_scripts_allowed(driver): - break - assert attempt != 9 - - driver.get('https://site.with.scripts.allow.ed/') - assert are_scripts_allowed(driver) - - driver.get('https://site.with.paylo.ad/') - assert not are_scripts_allowed(driver) - source = 'somemapping:someresource:https://site.with.paylo.ad/index.html:somesecret' - assert are_scripts_allowed(driver, sha256(source.encode()).digest().hex()) |