Source code
Revision control
Copy as Markdown
Other Tools
import pytest
ICONS_CSS = ".classic-callout img"
async def are_icons_stretched(client):
    await client.navigate(URL, wait="none")
    client.await_css(ICONS_CSS, is_displayed=True)
    return client.execute_script(
        """
        const icon_imgs = document.querySelectorAll(arguments[0]);
        for (const img of icon_imgs) {
          const box = img.getBoundingClientRect();
          const actual_ratio = box.height / box.width;
          const expected_ratio = img.naturalHeight / img.naturalWidth;
          if (!isNaN(expected_ratio) && parseInt(actual_ratio * 10) !== parseInt(expected_ratio * 10)) {
            return true;
          }
        }
        return false;
      """,
        ICONS_CSS,
    )
@pytest.mark.skip_platforms("android")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
    assert not await are_icons_stretched(client)
@pytest.mark.skip_platforms("android")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
    assert await are_icons_stretched(client)
@pytest.mark.only_platforms("android")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_works_on_android(client):
    assert not await are_icons_stretched(client)