-
Notifications
You must be signed in to change notification settings - Fork 2
/
tools_test.go
95 lines (85 loc) · 2.72 KB
/
tools_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package newdns
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestIsDomain(t *testing.T) {
assert.True(t, IsDomain("example.com", false))
assert.False(t, IsDomain("example.com", true))
assert.True(t, IsDomain("example.com.", true))
assert.True(t, IsDomain(" example.com.", true))
assert.False(t, IsDomain("", false))
assert.True(t, IsDomain("x", false))
assert.True(t, IsDomain(".", false))
}
func TestInZone(t *testing.T) {
assert.True(t, InZone("example.com.", "foo.example.com."))
assert.True(t, InZone("example.com", "foo.example.com"))
assert.True(t, InZone("example.com", "example.com"))
assert.True(t, InZone(".", "com"))
assert.True(t, InZone(".", "."))
assert.False(t, InZone("", "."))
assert.False(t, InZone("", ""))
assert.False(t, InZone("foo.example.com", "example.com"))
}
func TestTrimZone(t *testing.T) {
assert.Equal(t, "foo", TrimZone("example.com.", "foo.example.com."))
assert.Equal(t, "foo", TrimZone("example.com", "foo.example.com"))
assert.Equal(t, "", TrimZone("example.com", "example.com"))
assert.Equal(t, "example.com", TrimZone("foo.example.com", "example.com"))
}
func TestNormalizeDomain(t *testing.T) {
assert.Equal(t, "", NormalizeDomain("", false, false, false))
assert.Equal(t, ".", NormalizeDomain("", false, true, false))
assert.Equal(t, "foo", NormalizeDomain(" foo", false, false, false))
assert.Equal(t, "foo", NormalizeDomain("foo ", false, false, false))
assert.Equal(t, "foo", NormalizeDomain(" fOO ", true, false, false))
assert.Equal(t, "foo.", NormalizeDomain(" fOO ", true, true, false))
assert.Equal(t, "foo", NormalizeDomain(" fOO. ", true, false, true))
}
func TestSplitDomain(t *testing.T) {
assert.Equal(t, []string(nil), SplitDomain("", false))
assert.Equal(t, []string(nil), SplitDomain(".", false))
assert.Equal(t, []string{"foo"}, SplitDomain("foo", false))
assert.Equal(t, []string{"foo", "bar"}, SplitDomain("foo.bar", false))
assert.Equal(t, []string(nil), SplitDomain("", true))
assert.Equal(t, []string(nil), SplitDomain(".", true))
assert.Equal(t, []string{"foo"}, SplitDomain("foo", true))
assert.Equal(t, []string{"foo.bar", "bar"}, SplitDomain("foo.bar", true))
}
func TestTransferCase(t *testing.T) {
table := []struct {
src string
dst string
out string
}{
{
src: "example.com",
dst: "example.com",
out: "example.com",
},
{
src: "EXAmple.com",
dst: "example.com",
out: "EXAmple.com",
},
{
src: "FOO.com",
dst: "bar.com",
out: "bar.com",
},
{
src: "foo.EXAmple.com",
dst: "example.com",
out: "EXAmple.com",
},
{
src: "foo.EXAmple.com",
dst: "bar.example.com",
out: "bar.example.com",
},
}
for i, item := range table {
assert.Equal(t, item.out, TransferCase(item.src, item.dst), i)
}
}