summaryrefslogtreecommitdiff
path: root/test/unit/test_webrequest.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/test_webrequest.py')
-rw-r--r--test/unit/test_webrequest.py68
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())