tor-browser

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

iframe.py (1929B)


      1 import pytest
      2 from tests.support.asserts import assert_success
      3 from tests.support.image import png_dimensions
      4 from tests.support.screenshot import (
      5    DEFAULT_CONTENT,
      6    INNER_IFRAME_STYLE,
      7    OUTER_IFRAME_STYLE,
      8    REFERENCE_CONTENT,
      9    REFERENCE_STYLE,
     10 )
     11 
     12 from . import viewport_dimensions
     13 
     14 
     15 def take_screenshot(session):
     16    return session.transport.send(
     17        "GET", "session/{session_id}/screenshot".format(**vars(session)))
     18 
     19 
     20 def test_always_captures_top_browsing_context(session, inline, iframe):
     21    iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT)
     22    session.url = inline("""{0}{1}""".format(OUTER_IFRAME_STYLE, iframe(iframe_content)))
     23 
     24    response = take_screenshot(session)
     25    reference_screenshot = assert_success(response)
     26    assert png_dimensions(reference_screenshot) == viewport_dimensions(session)
     27 
     28    frame = session.find.css("iframe", all=False)
     29    session.switch_to_frame(frame)
     30 
     31    response = take_screenshot(session)
     32    screenshot = assert_success(response)
     33 
     34    assert png_dimensions(screenshot) == png_dimensions(reference_screenshot)
     35    assert screenshot == reference_screenshot
     36 
     37 
     38 @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"])
     39 def test_source_origin(session, inline, iframe, domain):
     40    session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT))
     41 
     42    response = take_screenshot(session)
     43    reference_screenshot = assert_success(response)
     44    assert png_dimensions(reference_screenshot) == viewport_dimensions(session)
     45 
     46    iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT)
     47    session.url = inline("""{0}{1}""".format(
     48        OUTER_IFRAME_STYLE, iframe(iframe_content, domain=domain)))
     49 
     50    response = take_screenshot(session)
     51    screenshot = assert_success(response)
     52    assert png_dimensions(screenshot) == viewport_dimensions(session)
     53 
     54    assert screenshot == reference_screenshot