59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
from mywhoosh_garmin_sync.mywhoosh import (
|
|
_looks_like_challenge_text,
|
|
_looks_like_challenge_url,
|
|
_looks_like_cookie_accept_label,
|
|
_source_ref,
|
|
_storage_restore_script,
|
|
)
|
|
|
|
|
|
def test_cookie_accept_label_matching():
|
|
assert _looks_like_cookie_accept_label("Accept")
|
|
assert _looks_like_cookie_accept_label("Accept all cookies")
|
|
assert _looks_like_cookie_accept_label("Allow all")
|
|
assert _looks_like_cookie_accept_label("I agree")
|
|
assert _looks_like_cookie_accept_label("Got it")
|
|
|
|
assert not _looks_like_cookie_accept_label("Reject all")
|
|
assert not _looks_like_cookie_accept_label("Download app")
|
|
|
|
|
|
def test_challenge_text_matching():
|
|
assert _looks_like_challenge_text("I'm not a robot")
|
|
assert _looks_like_challenge_text("Verify you are human")
|
|
assert _looks_like_challenge_text("iframe title recaptcha")
|
|
assert _looks_like_challenge_text("Cloudflare security check")
|
|
|
|
assert not _looks_like_challenge_text("Welcome to your activities")
|
|
|
|
|
|
def test_challenge_url_matching_does_not_flag_plain_login():
|
|
assert _looks_like_challenge_url("https://example.test/cdn-cgi/challenge-platform")
|
|
assert _looks_like_challenge_url("https://example.test/verify")
|
|
|
|
assert not _looks_like_challenge_url("https://event.mywhoosh.com/login/")
|
|
assert not _looks_like_challenge_url("https://event.mywhoosh.com/user/activities")
|
|
|
|
|
|
def test_source_ref_prefers_href_then_row_text():
|
|
assert _source_ref("https://example.test/a.fit", "Download", 0, "Ride A") == _source_ref(
|
|
"https://example.test/a.fit", "Download", 99, "Ride B"
|
|
)
|
|
assert _source_ref(None, "", 0, "Ride A") != _source_ref(None, "", 1, "Ride B")
|
|
|
|
|
|
def test_storage_restore_script_contains_session_storage():
|
|
script = _storage_restore_script(
|
|
[
|
|
{
|
|
"origin": "https://event.mywhoosh.com",
|
|
"localStorage": [{"name": "token", "value": "local"}],
|
|
"sessionStorage": [{"name": "session-token", "value": "session"}],
|
|
}
|
|
]
|
|
)
|
|
|
|
assert "https://event.mywhoosh.com" in script
|
|
assert "localStorage" in script
|
|
assert "sessionStorage" in script
|