"""虎牙网页 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()