| package protocol |
|
|
| import ( |
| "encoding/json" |
| "testing" |
| ) |
|
|
| func TestSharedConstantsLoaded(t *testing.T) { |
| cfg := sharedConstants{} |
| if err := json.Unmarshal(sharedConstantsJSON, &cfg); err != nil { |
| t.Fatalf("failed to parse shared constants: %v", err) |
| } |
| client := normalizeClientConstants(cfg.Client) |
| if ClientVersion != client.Version { |
| t.Fatalf("unexpected client version=%q", ClientVersion) |
| } |
| wantUserAgent := client.Name + "/" + client.Version + " Android/" + client.AndroidAPILevel |
| if BaseHeaders["User-Agent"] != wantUserAgent { |
| t.Fatalf("unexpected user agent=%q", BaseHeaders["User-Agent"]) |
| } |
| if BaseHeaders["x-client-platform"] != "android" { |
| t.Fatalf("unexpected base header x-client-platform=%q", BaseHeaders["x-client-platform"]) |
| } |
| if BaseHeaders["x-client-version"] != ClientVersion { |
| t.Fatalf("unexpected base header x-client-version=%q", BaseHeaders["x-client-version"]) |
| } |
| if BaseHeaders["Content-Type"] != "application/json" { |
| t.Fatalf("unexpected base header Content-Type=%q", BaseHeaders["Content-Type"]) |
| } |
| if len(SkipContainsPatterns) == 0 { |
| t.Fatal("expected skip contains patterns to be loaded") |
| } |
| if _, ok := SkipExactPathSet["response/search_status"]; !ok { |
| t.Fatal("expected response/search_status in exact skip path set") |
| } |
| } |
|
|
| func TestClientHeadersDerivedFromSharedVersion(t *testing.T) { |
| client := normalizeClientConstants(clientConstants{ |
| Name: "DeepSeek", |
| Platform: "android", |
| Version: "9.8.7", |
| AndroidAPILevel: "35", |
| Locale: "zh_CN", |
| }) |
| headers := buildBaseHeaders(client, map[string]string{ |
| "User-Agent": "stale", |
| "x-client-version": "stale", |
| }) |
| if headers["User-Agent"] != "DeepSeek/9.8.7 Android/35" { |
| t.Fatalf("unexpected derived user agent=%q", headers["User-Agent"]) |
| } |
| if headers["x-client-version"] != "9.8.7" { |
| t.Fatalf("unexpected derived client version=%q", headers["x-client-version"]) |
| } |
| } |
|
|