- 新增媒体库:media_library/media_thumbs 服务(WebP 缩略图)、管理端 media 页面 - 移动端底部导航 MobileTabBar 替换 MobilePostBar - 旧数据导入增强与测试、路由与登录会话/板块侧边栏测试补强 - site-doc 组件精简(移除 Breadcrumb),文档新增迁移公告说明
34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package router
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
// TestParseTrustedProxies 覆盖:合法 CIDR/IP/localhost、空白容忍、空项、非法条目跳过
|
|
func TestParseTrustedProxies(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
in string
|
|
want []string
|
|
}{
|
|
{"未配置", "", nil},
|
|
{"单个网段", "172.19.0.0/16", []string{"172.19.0.0/16"}},
|
|
// 真实事故:尾随空格曾导致 invalid CIDR 整进程退出
|
|
{"尾随空格", "172.19.0.0/16 ", []string{"172.19.0.0/16"}},
|
|
{"两侧空白与空项", " 172.19.0.0/16 , 10.0.0.5 ,", []string{"172.19.0.0/16", "10.0.0.5"}},
|
|
{"单个 IP", "10.0.0.5", []string{"10.0.0.5"}},
|
|
{"localhost", "localhost", []string{"localhost"}},
|
|
{"非法条目跳过", "172.19.0.0/16,bad-cidr", []string{"172.19.0.0/16"}},
|
|
{"全部非法", "bad,,worse", nil},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
got := parseTrustedProxies(c.in)
|
|
if !reflect.DeepEqual(got, c.want) {
|
|
t.Errorf("parseTrustedProxies(%q) = %v, want %v", c.in, got, c.want)
|
|
}
|
|
})
|
|
}
|
|
}
|