mirror of
https://github.com/feder-cr/invisible_playwright.git
synced 2026-06-07 08:35:12 +02:00
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
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
|