tor-browser

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

test_1878024_g1_globo_com.py (1872B)


      1 import pytest
      2 
      3 URL = "https://g1.globo.com/"
      4 WEBCOMPONENT_CSS = "nova-barra-globocom"
      5 
      6 
      7 async def are_imgs_squashed(client):
      8    await client.navigate(URL)
      9 
     10    comp = client.await_css(WEBCOMPONENT_CSS, is_displayed=True)
     11 
     12    # To test this without logging in, we inject a reference PNG (24x24 black
     13    # square), and then compare it via screenshots to one which we've also placed
     14    # in an HTML fragment similar to what the page uses.
     15    [ref, actual] = client.execute_async_script(
     16        """
     17        const [comp, done] = arguments;
     18        const container = comp.shadowRoot.querySelector(".container-right");
     19        // 24x24 black square png
     20        const src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACJJREFUOMtjVODhZqAGYGKgEhg1aNSgUYNGDRo1aNQg8gEAI0UAZ45NawoAAAAASUVORK5CYII=";
     21        const div = document.createElement("div");
     22        div.innerHTML = `
     23          <div class="container-right">
     24            <img style="border:none" class="button-login-icon" decoding=sync src="${src}">
     25          </div>
     26          <div class="container-right">
     27            <div class="button-login-icon">
     28              <img style="border:none" decoding="sync" src="${src}">
     29            </div>
     30          </div>
     31        `;
     32        container.parentNode.insertBefore(div, container);
     33        done(div.querySelectorAll("img"));
     34    """,
     35        comp,
     36    )
     37 
     38    return ref.screenshot() != actual.screenshot()
     39 
     40 
     41 @pytest.mark.skip_platforms("android")
     42 @pytest.mark.asyncio
     43 @pytest.mark.with_interventions
     44 async def test_enabled(client):
     45    assert not await are_imgs_squashed(client)
     46 
     47 
     48 @pytest.mark.skip_platforms("android")
     49 @pytest.mark.asyncio
     50 @pytest.mark.without_interventions
     51 async def test_disabled(client):
     52    assert await are_imgs_squashed(client)