test(matcher): update test callers for []byte Match/FindLongestPrefix
This commit is contained in:
parent
1eeab88c98
commit
bd97c05d0d
@ -47,7 +47,7 @@ func TestPrefixPriorityNotRegex(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
result := engine.Match("/images/logo.png")
|
||||
result := engine.Match([]byte("/images/logo.png"))
|
||||
if result == nil {
|
||||
t.Error("^~ should match prefix")
|
||||
}
|
||||
|
||||
@ -20,13 +20,13 @@ func TestLocationEngine_NginxPriority(t *testing.T) {
|
||||
engine.MarkInitialized()
|
||||
|
||||
// 测试精确匹配优先
|
||||
result := engine.Match("/api")
|
||||
result := engine.Match([]byte("/api"))
|
||||
if result.LocationType != "exact" {
|
||||
t.Errorf("expected exact, got %s", result.LocationType)
|
||||
}
|
||||
|
||||
// 测试 ^~ 阻止正则
|
||||
result = engine.Match("/api/test.php")
|
||||
result = engine.Match([]byte("/api/test.php"))
|
||||
if result.LocationType != "prefix_priority" {
|
||||
t.Errorf("^~ should block regex, got %s", result.LocationType)
|
||||
}
|
||||
@ -42,7 +42,7 @@ func TestLocationEngine_RegexMatch(t *testing.T) {
|
||||
engine.MarkInitialized()
|
||||
|
||||
// 正则匹配(^~ 不匹配 /index.php)
|
||||
result := engine.Match("/index.php")
|
||||
result := engine.Match([]byte("/index.php"))
|
||||
if result.LocationType != "regex" {
|
||||
t.Errorf("expected regex for /index.php, got %s", result.LocationType)
|
||||
}
|
||||
@ -55,7 +55,7 @@ func TestLocationEngine_PrefixFallback(t *testing.T) {
|
||||
engine.AddPrefix("/", handler, false)
|
||||
engine.MarkInitialized()
|
||||
|
||||
result := engine.Match("/any/path")
|
||||
result := engine.Match([]byte("/any/path"))
|
||||
if result == nil || result.LocationType != "prefix" {
|
||||
t.Errorf("expected prefix match, got %v", result)
|
||||
}
|
||||
@ -65,7 +65,7 @@ func TestLocationEngine_NoMatch(t *testing.T) {
|
||||
engine := NewLocationEngine()
|
||||
engine.MarkInitialized()
|
||||
|
||||
result := engine.Match("/nonexistent")
|
||||
result := engine.Match([]byte("/nonexistent"))
|
||||
if result != nil {
|
||||
t.Errorf("expected nil for no match, got %+v", result)
|
||||
}
|
||||
@ -78,7 +78,7 @@ func TestLocationEngine_RegexCaptures(t *testing.T) {
|
||||
engine.AddRegex(`^/user/(?P<id>[0-9]+)$`, handler, false, false)
|
||||
engine.MarkInitialized()
|
||||
|
||||
result := engine.Match("/user/42")
|
||||
result := engine.Match([]byte("/user/42"))
|
||||
if result.LocationType != "regex" {
|
||||
t.Errorf("expected regex, got %s", result.LocationType)
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ func TestLocationEngine_AddExact(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/api")
|
||||
result := engine.Match([]byte("/api"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -80,7 +80,7 @@ func TestLocationEngine_AddPrefixPriority(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/static/css/style.css")
|
||||
result := engine.Match([]byte("/static/css/style.css"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -112,7 +112,7 @@ func TestLocationEngine_AddPrefix(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/api/users")
|
||||
result := engine.Match([]byte("/api/users"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -141,7 +141,7 @@ func TestLocationEngine_AddRegex(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/index.php")
|
||||
result := engine.Match([]byte("/index.php"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -159,7 +159,7 @@ func TestLocationEngine_AddRegex_CaseInsensitive(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/index.PHP")
|
||||
result := engine.Match([]byte("/index.PHP"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match for case insensitive")
|
||||
}
|
||||
@ -187,7 +187,7 @@ func TestLocationEngine_AddRegex_Captures(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
result := engine.Match("/user/123")
|
||||
result := engine.Match([]byte("/user/123"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -213,7 +213,7 @@ func TestLocationEngine_Match_PriorityOrder(t *testing.T) {
|
||||
engine.AddPrefix("/api/path", hPrefix, false)
|
||||
|
||||
// Exact should win (priority 1)
|
||||
result := engine.Match("/api/path")
|
||||
result := engine.Match([]byte("/api/path"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -232,7 +232,7 @@ func TestLocationEngine_Match_PrefixPriorityBeatsRegex(t *testing.T) {
|
||||
engine.AddRegex(`\.css$`, hRegex, false, false)
|
||||
|
||||
// ^~ prefix priority should beat regex
|
||||
result := engine.Match("/static/style.css")
|
||||
result := engine.Match([]byte("/static/style.css"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -250,7 +250,7 @@ func TestLocationEngine_Match_RegexBeatsPrefix(t *testing.T) {
|
||||
engine.AddPrefix("/", hPrefix, false)
|
||||
|
||||
// Regex should win over plain prefix
|
||||
result := engine.Match("/index.php")
|
||||
result := engine.Match([]byte("/index.php"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -265,7 +265,7 @@ func TestLocationEngine_Match_FallbackToPrefix(t *testing.T) {
|
||||
|
||||
engine.AddPrefix("/api", hPrefix, false)
|
||||
|
||||
result := engine.Match("/api/users")
|
||||
result := engine.Match([]byte("/api/users"))
|
||||
if result == nil {
|
||||
t.Fatal("expected prefix match")
|
||||
}
|
||||
@ -280,7 +280,7 @@ func TestLocationEngine_Match_NoMatch(t *testing.T) {
|
||||
|
||||
engine.AddPrefix("/api", hPrefix, false)
|
||||
|
||||
result := engine.Match("/other")
|
||||
result := engine.Match([]byte("/other"))
|
||||
if result != nil {
|
||||
t.Errorf("expected no match, got %+v", result)
|
||||
}
|
||||
@ -292,7 +292,7 @@ func TestLocationEngine_Match_EmptyString(t *testing.T) {
|
||||
|
||||
engine.AddPrefix("/api", hPrefix, false)
|
||||
|
||||
result := engine.Match("")
|
||||
result := engine.Match([]byte(""))
|
||||
if result != nil {
|
||||
t.Errorf("expected no match for empty string, got %+v", result)
|
||||
}
|
||||
@ -304,7 +304,7 @@ func TestLocationEngine_Match_UnicodePath(t *testing.T) {
|
||||
|
||||
engine.AddPrefixPriority("/文档", handler, false)
|
||||
|
||||
result := engine.Match("/文档/报告")
|
||||
result := engine.Match([]byte("/文档/报告"))
|
||||
if result == nil {
|
||||
t.Fatal("expected unicode prefix match")
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ func BenchmarkRadixTreeFindLongestPrefix(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
b.ReportAllocs()
|
||||
for b.Loop() {
|
||||
result := tree.FindLongestPrefix("/api/v1/users")
|
||||
result := tree.FindLongestPrefix([]byte("/api/v1/users"))
|
||||
ReleaseMatchResult(result)
|
||||
}
|
||||
}
|
||||
@ -36,7 +36,7 @@ func BenchmarkRadixTreeFindLongestPrefixParallel(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
result := tree.FindLongestPrefix("/api/v1/users")
|
||||
result := tree.FindLongestPrefix([]byte("/api/v1/users"))
|
||||
ReleaseMatchResult(result)
|
||||
}
|
||||
})
|
||||
|
||||
@ -16,7 +16,7 @@ func TestRadixTree_Insert_EmptyNode(t *testing.T) {
|
||||
t.Fatalf("insert failed: %v", err)
|
||||
}
|
||||
|
||||
result := tree.FindLongestPrefix("/api")
|
||||
result := tree.FindLongestPrefix([]byte("/api"))
|
||||
if result == nil {
|
||||
t.Error("should find inserted path")
|
||||
}
|
||||
@ -34,7 +34,7 @@ func TestRadixTree_Insert_CommonPrefix(t *testing.T) {
|
||||
tree.Insert("/api", handler1, 1, "prefix", false)
|
||||
tree.Insert("/api/users", handler2, 2, "prefix", false)
|
||||
|
||||
result := tree.FindLongestPrefix("/api/users")
|
||||
result := tree.FindLongestPrefix([]byte("/api/users"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -57,7 +57,7 @@ func TestRadixTree_Insert_NodeSplit(t *testing.T) {
|
||||
tree.Insert("/abx", handler2, 2, "prefix", false)
|
||||
|
||||
// 应该正确分割 /ab 公共前缀
|
||||
result := tree.FindLongestPrefix("/abc")
|
||||
result := tree.FindLongestPrefix([]byte("/abc"))
|
||||
if result == nil {
|
||||
t.Error("should find /abc after split")
|
||||
}
|
||||
@ -73,7 +73,7 @@ func TestRadixTree_FindLongestPrefix(t *testing.T) {
|
||||
|
||||
// "/" has priority 1 (wins), "/api" has 2, "/api/v1" has 3
|
||||
// Lower number = higher priority
|
||||
result := tree.FindLongestPrefix("/api/v1/users")
|
||||
result := tree.FindLongestPrefix([]byte("/api/v1/users"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -112,7 +112,7 @@ func TestRadixTree_FindLongestPrefix_NoMatch(t *testing.T) {
|
||||
|
||||
tree.Insert("/api", handler, 1, "prefix", false)
|
||||
|
||||
result := tree.FindLongestPrefix("/other")
|
||||
result := tree.FindLongestPrefix([]byte("/other"))
|
||||
if result != nil {
|
||||
t.Errorf("expected nil for no match, got %+v", result)
|
||||
}
|
||||
@ -127,7 +127,7 @@ func TestRadixTree_PriorityComparison(t *testing.T) {
|
||||
tree.Insert("/api/users", h2, 2, "prefix", false)
|
||||
|
||||
// Lower priority number wins
|
||||
result := tree.FindLongestPrefix("/api/users")
|
||||
result := tree.FindLongestPrefix([]byte("/api/users"))
|
||||
if result == nil {
|
||||
t.Fatal("expected match")
|
||||
}
|
||||
@ -151,7 +151,7 @@ func TestRadixTree_Insert_ExactMatch(t *testing.T) {
|
||||
}
|
||||
|
||||
// 验证原 handler 未被覆盖
|
||||
result := tree.FindLongestPrefix("/api")
|
||||
result := tree.FindLongestPrefix([]byte("/api"))
|
||||
if result == nil || result.Priority != 1 {
|
||||
t.Errorf("original handler should not be overwritten, got priority %d", result.Priority)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user