Source code
Revision control
Copy as Markdown
Other Tools
import pytest
FIRST_BOOK_CSS = "[data-bookid] a[href*=title]"
READ_FREE_CSS = "[class*=book-info] a[href*=viewer-launcher]"
SUPPORTED_CSS = ".nv-pvImageCanvas"
UNSUPPORTED_TEXT = "お使いのブラウザでは閲覧できません"
DEAD_LINK_TEXT = "前のページに戻り、再読み込み後、もう一度お試しください。"
async def visit_manga_page(client):
await client.navigate(URL, wait="none")
await client.navigate(
client.get_element_attribute(client.await_css(FIRST_BOOK_CSS), "href"),
wait="none",
)
await client.navigate(
client.get_element_attribute(client.await_css(READ_FREE_CSS), "href"),
wait="none",
)
@pytest.mark.only_platforms("android")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled_dead_link(client):
await client.navigate(OUTDATED_LINK_URL, wait="none")
assert client.await_text(UNSUPPORTED_TEXT, is_displayed=True)
assert not client.find_text(DEAD_LINK_TEXT, is_displayed=True)
@pytest.mark.only_platforms("android")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
await visit_manga_page(client)
assert client.await_text(UNSUPPORTED_TEXT, is_displayed=True)
assert not client.find_css(SUPPORTED_CSS, is_displayed=True)
@pytest.mark.only_platforms("android")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled_dead_link(client):
await client.navigate(OUTDATED_LINK_URL, wait="none")
assert client.await_text(DEAD_LINK_TEXT, is_displayed=True)
assert not client.find_text(UNSUPPORTED_TEXT, is_displayed=True)
@pytest.mark.only_platforms("android")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
await visit_manga_page(client)
assert client.await_css(SUPPORTED_CSS, is_displayed=True)
assert not client.find_text(UNSUPPORTED_TEXT, is_displayed=True)