Files

47 lines
1.4 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package acme
import "testing"
func TestParseResolverList(t *testing.T) {
cases := []struct {
name string
raw string
want []string
}{
{"带端口", "223.5.5.5:53, 1.1.1.1:53", []string{"223.5.5.5:53", "1.1.1.1:53"}},
{"缺端口补 53", "8.8.8.8\n9.9.9.9", []string{"8.8.8.8:53", "9.9.9.9:53"}},
{"分号与空格", "223.5.5.5;8.8.4.4 1.0.0.1", []string{"223.5.5.5:53", "8.8.4.4:53", "1.0.0.1:53"}},
{"空值", " ", nil},
{"只留空白项", " , ; \n", nil},
}
for _, item := range cases {
got := parseResolverList(item.raw)
if len(got) != len(item.want) {
t.Fatalf("%s: 期望 %v,实际 %v", item.name, item.want, got)
}
for i := range got {
if got[i] != item.want[i] {
t.Fatalf("%s: 期望 %v,实际 %v", item.name, item.want, got)
}
}
}
}
func TestParseResolverListCapsEntries(t *testing.T) {
raw := "1.1.1.1,1.1.1.2,1.1.1.3,1.1.1.4,1.1.1.5,1.1.1.6,1.1.1.7,1.1.1.8,1.1.1.9,1.1.1.10"
if got := parseResolverList(raw); len(got) != 8 {
t.Fatalf("最多取前 8 条,实际 %d:%v", len(got), got)
}
}
// 内置的默认值必须是 lego 能直接用的 host:port 形式
func TestDefaultResolversAreUsable(t *testing.T) {
got := parseResolverList(defaultACMEDNSResolvers)
if len(got) == 0 {
t.Fatalf("默认解析器解析为空:%q", defaultACMEDNSResolvers)
}
if got[0] != "223.5.5.5:53" {
t.Fatalf("默认解析器首项应带端口,实际 %q", got[0])
}
}