Files
kefu_cloud/server/internal/handler/page_track_test.go
T
yml2213 81852e0ddd 访客落地页、在线读秒与浏览轨迹
记录进线页面与换页路径,心跳刷新活跃时间;工作台展示落地页/当前页/轨迹时间线与在线时长,嵌入脚本同步宿主 SPA 路由。
2026-07-18 22:19:50 +08:00

32 lines
761 B
Go

package handler
import (
"strings"
"testing"
"unicode/utf8"
)
func TestSanitizePageURL(t *testing.T) {
got := sanitizePageURL("https://shop.example.com/p/1?token=secret&ok=1#hash")
if got == "" || strings.Contains(got, "token=") || strings.Contains(got, "#") {
t.Fatalf("sanitize failed: %q", got)
}
if !strings.Contains(got, "ok=1") {
t.Fatalf("should keep ok param: %q", got)
}
if sanitizePageURL("javascript:alert(1)") != "" {
t.Fatal("reject javascript")
}
if sanitizePageURL("") != "" {
t.Fatal("empty")
}
}
func TestSanitizePageTitle(t *testing.T) {
long := strings.Repeat("测", 300)
got := sanitizePageTitle(long)
if utf8.RuneCountInString(got) != maxPageTitleLen {
t.Fatalf("title len %d", utf8.RuneCountInString(got))
}
}