tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit aea8b511fbe104a469708afbe214fe24aaf4d87d
parent 53654d78bd6fb7fbc11490a226139db47d042e85
Author: Julian Descottes <jdescottes@mozilla.com>
Date:   Wed,  5 Nov 2025 16:17:32 +0000

Bug 1988955 - [wdspec] Update collected data fixture to handle request bodies r=whimboo

Differential Revision: https://phabricator.services.mozilla.com/D267827

Diffstat:
Mtesting/web-platform/tests/webdriver/tests/bidi/network/disown_data/collector.py | 10++++------
Mtesting/web-platform/tests/webdriver/tests/bidi/network/disown_data/invalid.py | 4++--
Mtesting/web-platform/tests/webdriver/tests/bidi/network/disown_data/request.py | 6++----
Mtesting/web-platform/tests/webdriver/tests/bidi/network/get_data/charset.py | 8+++-----
Mtesting/web-platform/tests/webdriver/tests/bidi/network/get_data/collector.py | 10++++------
Mtesting/web-platform/tests/webdriver/tests/bidi/network/get_data/disown.py | 10++++------
Mtesting/web-platform/tests/webdriver/tests/bidi/network/get_data/invalid.py | 31++++++++++++++-----------------
Mtesting/web-platform/tests/webdriver/tests/bidi/network/get_data/request.py | 16++++++++++------
Mtesting/web-platform/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py | 4++--
Mtesting/web-platform/tests/webdriver/tests/support/fixtures_bidi.py | 16++++++++++++----
10 files changed, 57 insertions(+), 58 deletions(-)

diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/collector.py b/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/collector.py @@ -9,11 +9,9 @@ pytestmark = pytest.mark.asyncio async def test_disowned_collector( bidi_session, url, - setup_collected_response, + setup_collected_data, ): - [request, collector] = await setup_collected_response( - fetch_url=url(PAGE_EMPTY_TEXT) - ) + [request, collector] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) # disown using get_data await bidi_session.network.get_data( @@ -31,10 +29,10 @@ async def test_several_collectors( bidi_session, url, add_data_collector, - setup_collected_response, + setup_collected_data, ): collector = await add_data_collector(collector_type="blob", data_types=["response"]) - [request, other_collector] = await setup_collected_response( + [request, other_collector] = await setup_collected_data( fetch_url=url(PAGE_EMPTY_TEXT) ) diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/invalid.py b/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/invalid.py @@ -78,12 +78,12 @@ async def test_params_collector_removed_collector(bidi_session): async def test_params_collector_not_in_collected_data( - bidi_session, url, add_data_collector, setup_collected_response + bidi_session, url, add_data_collector, setup_collected_data ): too_small_collector = await add_data_collector( data_types=["response"], max_encoded_data_size=1 ) - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.NoSuchNetworkDataException): await bidi_session.network.disown_data( diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/request.py b/testing/web-platform/tests/webdriver/tests/bidi/network/disown_data/request.py @@ -9,11 +9,9 @@ pytestmark = pytest.mark.asyncio async def test_request( bidi_session, url, - setup_collected_response, + setup_collected_data, ): - [request, collector] = await setup_collected_response( - fetch_url=url(PAGE_EMPTY_TEXT) - ) + [request, collector] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) await bidi_session.network.disown_data( request=request, data_type="response", collector=collector ) diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/charset.py b/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/charset.py @@ -5,13 +5,11 @@ from .. import PAGE_EMPTY_IMAGE, PAGE_EMPTY_TEXT, PAGE_OTHER_TEXT pytestmark = pytest.mark.asyncio -@pytest.mark.parametrize( - "charset", [None, "utf-8", "iso-8859-15", "fakeCharset"] -) +@pytest.mark.parametrize("charset", [None, "utf-8", "iso-8859-15", "fakeCharset"]) async def test_request_charset( bidi_session, url, - setup_collected_response, + setup_collected_data, charset, ): expected_text = "Ü (lowercase ü)" @@ -25,7 +23,7 @@ async def test_request_charset( f"/webdriver/tests/support/http_handlers/charset.py?content={expected_text}&charset={charset}" ) - [request, _] = await setup_collected_response(fetch_url=test_url) + [request, _] = await setup_collected_data(fetch_url=test_url) data = await bidi_session.network.get_data(request=request, data_type="response") assert data["type"] == "string" diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/collector.py b/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/collector.py @@ -5,10 +5,8 @@ from .. import PAGE_EMPTY_TEXT pytestmark = pytest.mark.asyncio -async def test_single_collector(bidi_session, url, setup_collected_response): - [request, collector] = await setup_collected_response( - fetch_url=url(PAGE_EMPTY_TEXT) - ) +async def test_single_collector(bidi_session, url, setup_collected_data): + [request, collector] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) data = await bidi_session.network.get_data( request=request, data_type="response", collector=collector ) @@ -18,12 +16,12 @@ async def test_single_collector(bidi_session, url, setup_collected_response): async def test_several_collectors( - bidi_session, url, add_data_collector, setup_collected_response + bidi_session, url, add_data_collector, setup_collected_data ): collector = await add_data_collector( collector_type="blob", data_types=["response"], max_encoded_data_size=1000 ) - [request, other_collector] = await setup_collected_response( + [request, other_collector] = await setup_collected_data( fetch_url=url(PAGE_EMPTY_TEXT) ) diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/disown.py b/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/disown.py @@ -7,10 +7,8 @@ pytestmark = pytest.mark.asyncio @pytest.mark.parametrize("disown", [True, False]) -async def test_single_collector(bidi_session, url, setup_collected_response, disown): - [request, collector] = await setup_collected_response( - fetch_url=url(PAGE_EMPTY_TEXT) - ) +async def test_single_collector(bidi_session, url, setup_collected_data, disown): + [request, collector] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) data = await bidi_session.network.get_data( request=request, data_type="response", collector=collector, disown=disown ) @@ -29,12 +27,12 @@ async def test_single_collector(bidi_session, url, setup_collected_response, dis async def test_several_collectors( - bidi_session, url, add_data_collector, setup_collected_response + bidi_session, url, add_data_collector, setup_collected_data ): collector = await add_data_collector( collector_type="blob", data_types=["response"], max_encoded_data_size=1000 ) - [request, other_collector] = await setup_collected_response( + [request, other_collector] = await setup_collected_data( fetch_url=url(PAGE_EMPTY_TEXT) ) diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/invalid.py b/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/invalid.py @@ -21,37 +21,35 @@ async def test_params_request_non_existent(bidi_session): @pytest.mark.parametrize("value", [None, False, 42, {}, []]) async def test_params_data_type_invalid_type( - bidi_session, url, setup_collected_response, value + bidi_session, url, setup_collected_data, value ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.InvalidArgumentException): await bidi_session.network.get_data(request=request, data_type=value) @pytest.mark.parametrize("value", ["", "invalid"]) async def test_params_data_type_invalid_value( - bidi_session, url, setup_collected_response, value + bidi_session, url, setup_collected_data, value ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.InvalidArgumentException): await bidi_session.network.get_data(request=request, data_type=value) @pytest.mark.parametrize("value", [False, 42, {}, []]) async def test_params_collector_invalid_type( - bidi_session, url, setup_collected_response, value + bidi_session, url, setup_collected_data, value ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.InvalidArgumentException): await bidi_session.network.get_data( request=request, data_type="response", collector=value ) -async def test_params_collector_non_existent( - bidi_session, url, setup_collected_response -): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) +async def test_params_collector_non_existent(bidi_session, url, setup_collected_data): + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.NoSuchNetworkCollectorException): await bidi_session.network.get_data( request=request, data_type="response", collector="does_not_exist" @@ -59,12 +57,12 @@ async def test_params_collector_non_existent( async def test_params_collector_not_in_collected_data( - bidi_session, url, add_data_collector, setup_collected_response + bidi_session, url, add_data_collector, setup_collected_data ): too_small_collector = await add_data_collector( data_types=["response"], max_encoded_data_size=1 ) - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.NoSuchNetworkDataException): await bidi_session.network.get_data( @@ -74,9 +72,9 @@ async def test_params_collector_not_in_collected_data( @pytest.mark.parametrize("value", ["", "true", "false", 42, {}, []]) async def test_params_disown_invalid_type( - bidi_session, url, setup_collected_response, value + bidi_session, url, setup_collected_data, value ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.InvalidArgumentException): await bidi_session.network.get_data( @@ -85,11 +83,10 @@ async def test_params_disown_invalid_type( async def test_params_disown_true_without_collector( - bidi_session, url, setup_collected_response + bidi_session, url, setup_collected_data ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_TEXT)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_TEXT)) with pytest.raises(error.InvalidArgumentException): await bidi_session.network.get_data( request=request, data_type="response", disown=True ) - diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/request.py b/testing/web-platform/tests/webdriver/tests/bidi/network/get_data/request.py @@ -9,9 +9,9 @@ pytestmark = pytest.mark.asyncio "file, expected_value", [(PAGE_EMPTY_TEXT, "empty\n"), (PAGE_OTHER_TEXT, "other\n")] ) async def test_request_text_file( - bidi_session, url, setup_collected_response, file, expected_value + bidi_session, url, setup_collected_data, file, expected_value ): - [request, _] = await setup_collected_response(fetch_url=url(file)) + [request, _] = await setup_collected_data(fetch_url=url(file)) data = await bidi_session.network.get_data(request=request, data_type="response") assert data["type"] == "string" @@ -19,9 +19,11 @@ async def test_request_text_file( async def test_request_base64_file( - bidi_session, url, setup_collected_response, + bidi_session, + url, + setup_collected_data, ): - [request, _] = await setup_collected_response(fetch_url=url(PAGE_EMPTY_IMAGE)) + [request, _] = await setup_collected_data(fetch_url=url(PAGE_EMPTY_IMAGE)) data = await bidi_session.network.get_data(request=request, data_type="response") assert data["type"] == "base64" @@ -49,10 +51,12 @@ async def test_request_data_scheme_image( async def test_request_empty_response( - bidi_session, inline, setup_collected_response, + bidi_session, + inline, + setup_collected_data, ): empty_url = inline("", doctype="js") - [request, _] = await setup_collected_response(fetch_url=empty_url) + [request, _] = await setup_collected_data(fetch_url=empty_url) data = await bidi_session.network.get_data(request=request, data_type="response") diff --git a/testing/web-platform/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py b/testing/web-platform/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py @@ -16,13 +16,13 @@ async def test_return_value(bidi_session): async def test_data_not_available_after_remove( - bidi_session, url, add_data_collector, setup_collected_response + bidi_session, url, add_data_collector, setup_collected_data ): # Collect a network response with 2 collectors collector = await add_data_collector( collector_type="blob", data_types=["response"], max_encoded_data_size=1000 ) - [request, other_collector] = await setup_collected_response( + [request, other_collector] = await setup_collected_data( fetch_url=url(PAGE_EMPTY_TEXT) ) diff --git a/testing/web-platform/tests/webdriver/tests/support/fixtures_bidi.py b/testing/web-platform/tests/webdriver/tests/support/fixtures_bidi.py @@ -700,7 +700,7 @@ async def setup_beforeunload_page(bidi_session, url): @pytest_asyncio.fixture -async def setup_collected_response( +async def setup_collected_data( bidi_session, subscribe_events, wait_for_event, @@ -717,11 +717,12 @@ async def setup_collected_response( Returns the request id of the triggered request. """ - async def _setup_collected_response( + async def _setup_collected_data( collector_type="blob", data_types=["response"], max_encoded_data_size=10000, fetch_url=url("/webdriver/tests/bidi/network/support/empty.txt"), + fetch_post_data=None, context=top_context, ): collector = await add_data_collector( @@ -729,19 +730,26 @@ async def setup_collected_response( data_types=data_types, max_encoded_data_size=max_encoded_data_size, ) + await setup_network_test( events=[ + "network.beforeRequestSent", "network.responseCompleted", ] ) on_response_completed = wait_for_event("network.responseCompleted") - await fetch(fetch_url, context=context) + if fetch_post_data is None: + method = "GET" + else: + method = "POST" + + await fetch(fetch_url, method=method, post_data=fetch_post_data, context=context) response_completed_event = await on_response_completed request = response_completed_event["request"]["request"] return [request, collector] - return _setup_collected_response + return _setup_collected_data @pytest_asyncio.fixture