| import pytest |
| |
| import asyncio |
| |
| from webdriver.bidi.modules.script import ScriptEvaluateResultException |
| |
| from .. import AUTH_REQUIRED_EVENT, PAGE_EMPTY_HTML |
| |
| pytestmark = pytest.mark.asyncio |
| |
| # This test can be moved back to `auth_required.py` when all implementations |
| # support handing of HTTP auth prompt. |
| async def test_unsubscribe(bidi_session, new_tab, url, fetch): |
| await bidi_session.browsing_context.navigate( |
| context=new_tab["context"], |
| url=url(PAGE_EMPTY_HTML), |
| wait="complete", |
| ) |
| |
| await bidi_session.session.subscribe(events=[AUTH_REQUIRED_EVENT]) |
| await bidi_session.session.unsubscribe(events=[AUTH_REQUIRED_EVENT]) |
| |
| # Track all received network.authRequired events in the events array. |
| events = [] |
| |
| async def on_event(method, data): |
| events.append(data) |
| |
| remove_listener = bidi_session.add_event_listener( |
| AUTH_REQUIRED_EVENT, on_event) |
| |
| asyncio.ensure_future(fetch(url=url( |
| "/webdriver/tests/support/http_handlers/authentication.py?realm=testrealm" |
| ), context=new_tab)) |
| |
| assert len(events) == 0 |
| |
| remove_listener() |