File size: 1,477 Bytes
95f8c4b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | """Unit tests for direct Chromium process launcher and args."""
from __future__ import annotations
import os
from aistudio_api.infrastructure.browser.browser_engine import (
_derive_stable_fingerprint_seed,
build_chromium_args,
find_chromium_executable,
)
def test_derive_stable_fingerprint_seed_is_deterministic():
seed1 = _derive_stable_fingerprint_seed("/tmp/profile1")
seed2 = _derive_stable_fingerprint_seed("/tmp/profile1")
seed3 = _derive_stable_fingerprint_seed("/tmp/profile2")
assert seed1 == seed2
assert seed1 != seed3
assert 10000 <= seed1 <= 99999
def test_build_chromium_args_contains_stealth_and_mobile_optimizations():
args = build_chromium_args(
port=9222,
user_data_dir="/tmp/test_profile",
headless=True,
)
args_str = " ".join(args)
assert "--remote-debugging-port=9222" in args_str
assert "--user-data-dir=/tmp/test_profile" in args_str
assert "--no-sandbox" in args_str
assert "--disable-dev-shm-usage" in args_str
assert "--disable-gpu" in args_str
assert "--in-process-gpu" in args_str
assert "--js-flags=--max-old-space-size=128" in args_str
assert "--force-webrtc-ip-handling-policy=disable_non_proxied_udp" in args_str
assert "--headless=new" in args_str
def test_find_chromium_executable_locates_binary():
executable = find_chromium_executable()
assert os.path.exists(executable)
assert os.access(executable, os.X_OK)
|