tor-browser

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

chrome.py (1114B)


      1 import pytest
      2 from support.context import using_context
      3 from tests.classic.execute_async_script import execute_async_script
      4 from tests.support.asserts import assert_success
      5 from webdriver.client import WebFrame, WebWindow
      6 
      7 
      8 @pytest.mark.parametrize(
      9    "expression, expected_type",
     10    [
     11        ("window.frames[0]", WebFrame),
     12        ("window", WebWindow),
     13    ],
     14    ids=["frame", "window"],
     15 )
     16 @pytest.mark.allow_system_access
     17 def test_web_reference(
     18    session, expression, default_chrome_handler, new_chrome_window, expected_type
     19 ):
     20    chrome_url = f"{default_chrome_handler}test.xhtml"
     21    new_window = new_chrome_window(chrome_url)
     22 
     23    with using_context(session, "chrome"):
     24        session.window_handle = new_window.id
     25        assert session.url == chrome_url
     26 
     27        result = execute_async_script(session, f"arguments[0]({expression})")
     28        reference = assert_success(result)
     29 
     30        assert isinstance(reference, expected_type)
     31 
     32        if isinstance(reference, WebWindow):
     33            assert reference.id in session.handles
     34        else:
     35            assert reference.id not in session.handles