diff --git a/tests/test_prefs.py b/tests/test_prefs.py index 979d2a3..4c6aa87 100644 --- a/tests/test_prefs.py +++ b/tests/test_prefs.py @@ -1,35 +1,44 @@ -from invisible_playwright._fpforge import generate_profile -from invisible_playwright.prefs import translate_profile_to_prefs - - -def test_translate_includes_gpu_renderer(): - p = generate_profile(seed=42) - prefs = translate_profile_to_prefs(p) - assert prefs["zoom.stealth.webgl.renderer"] == p.gpu.renderer - assert prefs["zoom.stealth.webgl.vendor"] == p.gpu.vendor - - -def test_translate_includes_screen(): - p = generate_profile(seed=42) - prefs = translate_profile_to_prefs(p) - assert prefs["zoom.stealth.screen.width"] == p.screen.width - assert prefs["zoom.stealth.screen.height"] == p.screen.height - - -def test_translate_is_deterministic_per_seed(): - a = translate_profile_to_prefs(generate_profile(seed=42)) - b = translate_profile_to_prefs(generate_profile(seed=42)) - assert a == b - - -def test_translate_varies_across_seeds(): - a = translate_profile_to_prefs(generate_profile(seed=1)) - b = translate_profile_to_prefs(generate_profile(seed=2)) - assert a != b - - -def test_translate_has_stealth_baseline_constants(): - p = generate_profile(seed=42) - prefs = translate_profile_to_prefs(p) - assert prefs.get("privacy.resistFingerprinting") is False - assert "media.peerconnection.enabled" in prefs +import sys + +import pytest + +from invisible_playwright._fpforge import generate_profile +from invisible_playwright.prefs import translate_profile_to_prefs + + +@pytest.mark.skipif( + not sys.platform.startswith("linux"), + reason="Renderer is only spoofed via pref on Linux; on Windows the native ANGLE " + "string is preserved to keep the WebGL parameters hash coherent", +) +def test_translate_includes_gpu_renderer(): + p = generate_profile(seed=42) + prefs = translate_profile_to_prefs(p) + assert prefs["zoom.stealth.webgl.renderer"] == p.gpu.renderer + assert prefs["zoom.stealth.webgl.vendor"] == p.gpu.vendor + + +def test_translate_includes_screen(): + p = generate_profile(seed=42) + prefs = translate_profile_to_prefs(p) + assert prefs["zoom.stealth.screen.width"] == p.screen.width + assert prefs["zoom.stealth.screen.height"] == p.screen.height + + +def test_translate_is_deterministic_per_seed(): + a = translate_profile_to_prefs(generate_profile(seed=42)) + b = translate_profile_to_prefs(generate_profile(seed=42)) + assert a == b + + +def test_translate_varies_across_seeds(): + a = translate_profile_to_prefs(generate_profile(seed=1)) + b = translate_profile_to_prefs(generate_profile(seed=2)) + assert a != b + + +def test_translate_has_stealth_baseline_constants(): + p = generate_profile(seed=42) + prefs = translate_profile_to_prefs(p) + assert prefs.get("privacy.resistFingerprinting") is False + assert "media.peerconnection.enabled" in prefs