ksjsb/tests/test_device_cookie.py
2026-07-30 20:25:56 +08:00

75 lines
3.0 KiB
Python

import unittest
from core.device_cookie import apply_device_profile_to_cookie, cookie_to_string
from core.device_id import is_valid_oaid, oaid_from_seed_material
from core.device_profile import DeviceProfileGenerator
class DeviceCookieTests(unittest.TestCase):
def test_apply_device_profile_preserves_auth_and_overlays_device_fields(self):
profile = DeviceProfileGenerator(seed=20260711).new_profile()
profile.apply_cloud_identity(
"ANDROID_69646c9107f45c63",
2,
"DFPB39C1B79D15E65AA00E29C724073B1578784BDC532027CF94846A0C145787",
)
cookie = {
"userId": "1579452490",
"kuaishou.api_st": "API_ST",
"token": "TOKEN",
"did": "ANDROID_oldoldoldold",
"oDid": "ANDROID_oldoldoldold",
"rdid": "ANDROID_oldoldoldold",
"egid": "OLD_EGID",
}
result = apply_device_profile_to_cookie(cookie, profile)
self.assertEqual(result["userId"], "1579452490")
self.assertEqual(result["kuaishou.api_st"], "API_ST")
self.assertEqual(result["token"], "TOKEN")
self.assertEqual(result["did"], profile.did)
self.assertEqual(result["oDid"], profile.o_did)
self.assertEqual(result["rdid"], profile.rdid)
self.assertEqual(result["egid"], profile.egid)
self.assertEqual(result["oaid"], profile.runtime_hints.oaid)
self.assertEqual(result["cdid_tag"], "2")
self.assertEqual(result["appver"], profile.app_version)
self.assertEqual(result["sys"], f"ANDROID_{profile.android_release}")
self.assertIn(profile.model, result["mod"])
self.assertEqual(result["did_gt"], profile.runtime_hints.did_gt or str(profile.install_time_ms))
self.assertEqual(result["boardPlatform"], profile.board_platform)
self.assertEqual(result["socName"], profile.soc_name)
self.assertEqual(result["max_memory"], str(profile.max_memory))
self.assertEqual(result["deviceBit"], profile.device_bit)
self.assertEqual(result["sw"], str(profile.screen_width))
self.assertEqual(result["sh"], str(profile.screen_height))
self.assertEqual(result["totalMemory"], str(profile.total_memory_mb))
def test_device_profile_oaid_is_derived_from_stable_seed_material(self):
profile = DeviceProfileGenerator(seed=20260711).new_profile()
self.assertEqual(
profile.runtime_hints.oaid,
oaid_from_seed_material(
[
profile.android_id,
profile.local_did,
profile.rdid,
profile.g_rdi2,
profile.sid,
profile.egid,
]
),
)
self.assertTrue(is_valid_oaid(profile.runtime_hints.oaid))
def test_cookie_to_string_keeps_inserted_order(self):
text = cookie_to_string({"a": "1", "b": "2"})
self.assertEqual(text, "a=1; b=2")
if __name__ == "__main__":
unittest.main()