2026-05-14 11:21:10 +02:00
|
|
|
import pytest
|
|
|
|
|
|
2026-05-12 21:34:14 -07:00
|
|
|
from invisible_playwright._fpforge import generate_profile
|
|
|
|
|
from invisible_playwright.prefs import translate_profile_to_prefs
|
|
|
|
|
|
|
|
|
|
|
2026-05-14 11:21:10 +02:00
|
|
|
@pytest.mark.unit
|
|
|
|
|
def test_translate_includes_gpu_renderer_windows():
|
|
|
|
|
"""On Windows, renderer/vendor are cleared so ANGLE reports native hardware."""
|
2026-05-12 21:34:14 -07:00
|
|
|
p = generate_profile(seed=42)
|
|
|
|
|
prefs = translate_profile_to_prefs(p)
|
2026-05-14 11:21:10 +02:00
|
|
|
assert prefs["zoom.stealth.webgl.renderer"] == ""
|
|
|
|
|
assert prefs["zoom.stealth.webgl.vendor"] == ""
|
2026-05-12 21:34:14 -07:00
|
|
|
|
|
|
|
|
|
2026-05-14 11:21:10 +02:00
|
|
|
@pytest.mark.unit
|
2026-05-12 21:34:14 -07:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2026-05-14 11:21:10 +02:00
|
|
|
@pytest.mark.unit
|
2026-05-12 21:34:14 -07:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2026-05-14 11:21:10 +02:00
|
|
|
@pytest.mark.unit
|
2026-05-12 21:34:14 -07:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2026-05-14 11:21:10 +02:00
|
|
|
@pytest.mark.unit
|
2026-05-12 21:34:14 -07:00
|
|
|
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
|