diff options
Diffstat (limited to 'testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py')
-rw-r--r-- | testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py | 54 |
1 files changed, 46 insertions, 8 deletions
diff --git a/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py b/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py index 92ebed1e63..45c50dbf88 100644 --- a/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py +++ b/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py @@ -16,7 +16,7 @@ async def test_set_permission(bidi_session, new_tab, url): origin = await get_context_origin(bidi_session, new_tab) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" await bidi_session.permissions.set_permission( descriptor={"name": "geolocation"}, @@ -24,7 +24,7 @@ async def test_set_permission(bidi_session, new_tab, url): origin=origin, ) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "granted" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "granted" await bidi_session.permissions.set_permission( descriptor={"name": "geolocation"}, @@ -32,7 +32,7 @@ async def test_set_permission(bidi_session, new_tab, url): origin=origin, ) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "denied" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "denied" await bidi_session.permissions.set_permission( descriptor={"name": "geolocation"}, @@ -40,7 +40,7 @@ async def test_set_permission(bidi_session, new_tab, url): origin=origin, ) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" @pytest.mark.asyncio @@ -73,7 +73,7 @@ async def test_set_permission_new_context(bidi_session, new_tab, url): origin = await get_context_origin(bidi_session, new_tab) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" await bidi_session.permissions.set_permission( descriptor={"name": "geolocation"}, @@ -81,7 +81,7 @@ async def test_set_permission_new_context(bidi_session, new_tab, url): origin=origin, ) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "granted" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "granted" new_context = await bidi_session.browsing_context.create(type_hint="tab") assert new_tab["context"] != new_context["context"] @@ -92,7 +92,7 @@ async def test_set_permission_new_context(bidi_session, new_tab, url): ) # See https://github.com/w3c/permissions/issues/437. - assert await get_permission_state(bidi_session, new_context, "geolocation") == "granted" + assert await get_permission_state(bidi_session, new_context, "geolocation") == "granted" @pytest.mark.parametrize("origin", ['UNKNOWN', '']) @@ -117,4 +117,42 @@ async def test_set_permission_origin_unknown(bidi_session, new_tab, origin, url) state="granted", origin=origin, ) - assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + + +@pytest.mark.asyncio +async def test_set_permission_user_context(bidi_session, new_tab, url, create_user_context): + test_url = url("/common/blank.html", protocol="https") + + user_context = await create_user_context() + # new_tab is in the default user context. new_tab2 is in the non-default user context. + new_tab2 = await bidi_session.browsing_context.create(type_hint="tab", user_context=user_context) + + # Navigate a context in the default user context. + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=test_url, + wait="complete", + ) + + # Navigate a context in the non-default user context. + await bidi_session.browsing_context.navigate( + context=new_tab2["context"], + url=test_url, + wait="complete", + ) + + origin = await get_context_origin(bidi_session, new_tab) + + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab2, "geolocation") == "prompt" + + await bidi_session.permissions.set_permission( + descriptor={"name": "geolocation"}, + state="granted", + origin=origin, + user_context=user_context, + ) + + assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + assert await get_permission_state(bidi_session, new_tab2, "geolocation") == "granted" |