Files
live-hub-py/tests/test_huya_web_cookie_fields.py
T

71 lines
2.5 KiB
Python

"""虎牙网页 Cookie 字段生成器测试。"""
from core.huya.web_cookie_fields import (
_qimei_feature_string,
_x64hash128,
cookie_fields,
fill_web_cookie_fields,
missing_web_cookie_fields,
qimei_feature_from_device_profile,
qimei_fingerprint_generate,
)
def test_qimei_hash_matches_sdk_vectors():
assert _x64hash128("", 31) == "24700f9f1986800ab4fcc880530dd0ed"
assert _x64hash128("a", 31) == "f8b09930c1df727ef75677a1d6ae5bd6"
assert _x64hash128("abc", 31) == "31844fd43df93041e52bcddd13312671"
def test_qimei_fingerprint_uses_sdk_feature_string():
feature = {
"screen": {"resolution": "800x600", "availResolution": "800x600"},
"navigator": {
"deviceMemory": 16,
"pdfViewerEnabled": True,
"cookieEnabled": True,
"productSub": "20030107",
"hardwareConcurrency": 10,
},
"webgl": "Google Inc. (Apple)~ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)",
"timezoneOffset": -480,
}
assert _qimei_feature_string(feature).endswith("###-480###")
assert qimei_fingerprint_generate(feature) == "d07a45de567322edcd42312f38e610be"
fields = cookie_fields(fill_web_cookie_fields("", "", qimei_feature=feature))
assert fields["_qimei_fingerprint"] == "d07a45de567322edcd42312f38e610be"
def test_fill_replaces_empty_values_and_completes_core_fields():
result = fill_web_cookie_fields("guid=; __yamid_new=; game_did=", "a" * 32, 1)
fields = cookie_fields(result)
assert fields["guid"] == "a" * 32
assert fields["__yamid_new"]
assert fields["game_did"]
assert fields["_qimei_fingerprint"] == qimei_fingerprint_generate()
assert not missing_web_cookie_fields(result)
def test_device_profile_builds_stable_webview_feature_approximation():
feature = qimei_feature_from_device_profile({
"vendor": "vivo",
"model": "V2370A",
"width": "1080",
"height": "2412",
})
assert feature["screen"] == {
"resolution": "1080x2412",
"availResolution": "1080x2412",
}
assert feature["navigator"]["pdfViewerEnabled"] is False
assert "Adreno" in str(feature["webgl"])
first = qimei_fingerprint_generate(feature)
second = qimei_fingerprint_generate(qimei_feature_from_device_profile({
"vendor": "vivo",
"model": "V2370A",
"width": "1080",
"height": "2412",
}))
assert first == second
assert first != qimei_fingerprint_generate()