Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

import pytest
import webdriver.bidi.error as error
pytestmark = pytest.mark.asyncio
@pytest.mark.parametrize("value", [None, False, 42, {}, []])
async def test_params_context_invalid_type(bidi_session, value):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=value, viewport={
"width": 100,
"height": 200,
})
async def test_params_context_invalid_value(bidi_session):
with pytest.raises(error.NoSuchFrameException):
await bidi_session.browsing_context.set_viewport(context="_invalid_")
async def test_params_context_iframe(bidi_session, new_tab, get_test_page):
url = get_test_page(as_frame=True)
await bidi_session.browsing_context.navigate(
context=new_tab["context"],
url=url,
wait="complete")
contexts = await bidi_session.browsing_context.get_tree(root=new_tab["context"])
assert len(contexts) == 1
frames = contexts[0]["children"]
assert len(frames) == 1
frame_context = frames[0]["context"]
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=frame_context)
@pytest.mark.parametrize("viewport", [False, 42, "", {}, [], {"width": 100}, {"height": 100}])
async def test_params_viewport_invalid_type(bidi_session, new_tab, viewport):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport=viewport)
@pytest.mark.parametrize("width", [None, False, "", 42.1, {}, []])
async def test_params_viewport_width_invalid_type(bidi_session, new_tab, width):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport={
"width": width,
"height": 100,
})
@pytest.mark.parametrize("height", [None, False, "", 42.1, {}, []])
async def test_params_viewport_height_invalid_type(bidi_session, new_tab, height):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport={
"width": 100,
"height": height,
})
@pytest.mark.parametrize("viewport", [
{"width": -1, "height": 100},
{"width": 100, "height": -1},
{"width": -1, "height": -1},
], ids=["width negative", "height negative", "both negative"])
async def test_params_viewport_invalid_value(bidi_session, new_tab, viewport):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport=viewport)
@pytest.mark.parametrize("device_pixel_ratio", [False, "", {}, []])
async def test_params_devicePixelRatio_invalid_type(bidi_session, new_tab,device_pixel_ratio):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(
context=new_tab["context"],
device_pixel_ratio=device_pixel_ratio,
viewport=None
)
@pytest.mark.parametrize("device_pixel_ratio", [0, -1])
async def test_params_devicePixelRatio_invalid_value(bidi_session, new_tab, device_pixel_ratio):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.browsing_context.set_viewport(
context=new_tab["context"],
device_pixel_ratio=device_pixel_ratio,
viewport=None
)