iframe.py (1328B)
1 import pytest 2 from tests.support.asserts import assert_success 3 from tests.support.image import png_dimensions 4 5 from . import document_dimensions 6 7 DEFAULT_CSS_STYLE = """ 8 <style> 9 div, iframe { 10 display: block; 11 border: 1px solid blue; 12 width: 10em; 13 height: 10em; 14 } 15 </style> 16 """ 17 18 DEFAULT_CONTENT = "<div>Lorem ipsum dolor sit amet.</div>" 19 20 21 def take_full_screenshot(session): 22 return session.transport.send( 23 "GET", 24 f"/session/{session.session_id}/moz/screenshot/full", 25 ) 26 27 28 @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) 29 def test_source_origin(session, url, domain, inline, iframe): 30 session.url = inline(f"""{DEFAULT_CSS_STYLE}{DEFAULT_CONTENT}""") 31 32 response = take_full_screenshot(session) 33 reference_screenshot = assert_success(response) 34 assert png_dimensions(reference_screenshot) == document_dimensions(session) 35 36 iframe_content = f"<style>body {{ margin: 0; }}</style>{DEFAULT_CONTENT}" 37 session.url = inline( 38 f"""{DEFAULT_CSS_STYLE}{iframe(iframe_content, domain=domain)}""" 39 ) 40 41 response = take_full_screenshot(session) 42 screenshot = assert_success(response) 43 assert png_dimensions(screenshot) == document_dimensions(session) 44 45 assert screenshot == reference_screenshot