47 lines
2.0 KiB
Go
47 lines
2.0 KiB
Go
package sdkserver
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"gac-hkrpg-go/internal/common"
|
|
"gac-hkrpg-go/protocol/proto"
|
|
google "google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
func TestAndroidGatewayResolvesBuildSuffix(t *testing.T) {
|
|
const version = "OSBETAAndroid4.6.54_D16927089_A16927089_L16927077"
|
|
metadata := VersionConfig{AssetBundleURL: "https://example.test/assets", AssetBundleURLB: "https://example.test/backup", ExResourceURL: "https://example.test/data", LuaURL: "https://example.test/lua", IfixURL: "https://example.test/ifix", LuaVersion: "123", IfixVersion: "4"}
|
|
state := &appState{runtime: common.RuntimeConfig{PublicGameHost: "127.0.0.1", GamePort: 23301}, hotfixMap: map[string]VersionConfig{
|
|
"OSBETAAndroid4.6.54": metadata,
|
|
version: {}, // An earlier failed lookup may have cached an empty entry.
|
|
}}
|
|
rec := httptest.NewRecorder()
|
|
queryGateway(state)(rec, httptest.NewRequest("GET", "/query_gateway?version="+version, nil))
|
|
if rec.Code != 200 {
|
|
t.Fatalf("HTTP status = %d", rec.Code)
|
|
}
|
|
wire, err := base64.StdEncoding.DecodeString(rec.Body.String())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var got proto.Gateserver
|
|
if err := google.Unmarshal(wire, &got); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.Ip != "127.0.0.1" || got.Port != 23301 || got.AssetBundleUrl != metadata.AssetBundleURL || got.AssetBundleUrlB != metadata.AssetBundleURLB || got.ExResourceUrl != metadata.ExResourceURL || got.LuaUrl != metadata.LuaURL || got.IfixUrl != metadata.IfixURL || got.LuaVersion != metadata.LuaVersion || got.IfixVersion != metadata.IfixVersion {
|
|
t.Fatalf("unexpected gateway response: %v", &got)
|
|
}
|
|
}
|
|
|
|
func TestAndroidGatewayPrefersExactBuildMetadata(t *testing.T) {
|
|
state := &appState{hotfixMap: map[string]VersionConfig{
|
|
"OSBETAAndroid4.6.54": {AssetBundleURL: "release"},
|
|
"OSBETAAndroid4.6.54_D1": {AssetBundleURL: "specific"},
|
|
}}
|
|
if got := state.getOrInsertHotfix("OSBETAAndroid4.6.54_D1", ""); got.AssetBundleURL != "specific" {
|
|
t.Fatalf("exact build lost: %+v", got)
|
|
}
|
|
}
|