From 749f1c85670798999be5958580877277ce16aff0 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Tue, 15 Mar 2022 11:20:59 +0100 Subject: prepare for exposing APIs to injected scripts --- test/haketilo_test/unit/test_content.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/haketilo_test/unit/test_content.py b/test/haketilo_test/unit/test_content.py index 8220160..98ea930 100644 --- a/test/haketilo_test/unit/test_content.py +++ b/test/haketilo_test/unit/test_content.py @@ -88,6 +88,7 @@ content_script = \ } repo_query_cacher.start = () => data_set("cacher_started", true); + haketilo_apis.start = () => data_set("apis_started", true); enforce_blocking = policy => data_set("enforcing", policy); @@ -118,7 +119,7 @@ content_script = \ @pytest.mark.ext_data({'content_script': content_script}) @pytest.mark.usefixtures('webextension') -@pytest.mark.parametrize('target1', ['dynamic_before'])#, 'dynamic_after']) +@pytest.mark.parametrize('target1', ['dynamic_before', 'dynamic_after']) @pytest.mark.parametrize('target2', [ 'scripts_blocked', 'payload_error', @@ -144,6 +145,7 @@ def test_content_unprivileged_page(driver, execute_in_page, target1, target2): assert data['bad_request_returned'] == False assert data['cacher_started'] == True + assert data.get('apis_started', False) == (target2 == 'payload_ok') for obj in (data['good_request_result'], data['enforcing']): assert obj['allow'] == False @@ -162,9 +164,13 @@ def test_content_unprivileged_page(driver, execute_in_page, target1, target2): def vars_made_by_payload(driver): vars_values = driver.execute_script( - 'return [1, 2].map(n => window[`hak_injected_${n}`]);' - ) - if vars_values != [None, None]: + ''' + return [ + ...[1, 2].map(n => window[`hak_injected_${n}`]), + window.haketilo_version + ]; + ''') + if vars_values != [None, None, None]: return vars_values if target2 == 'payload_error': @@ -174,7 +180,8 @@ def test_content_unprivileged_page(driver, execute_in_page, target1, target2): } elif target2 == 'payload_ok': vars_values = WebDriverWait(driver, 10).until(vars_made_by_payload) - assert vars_values == [1, 2] + assert vars_values[:2] == [1, 2] + assert type(vars_values[2]) == str @pytest.mark.ext_data({'content_script': content_script}) @pytest.mark.usefixtures('webextension') -- cgit v1.2.3