cloudflare/cloudflared

Public

mirrored from https://github.com/cloudflare/cloudflaredAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
2018.8.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

validation/validation_test.go

136lines · modecode

1package validation
2
3import (
4 "fmt"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8)
9
10func TestValidateHostname(t *testing.T) {
11 var inputHostname string
12 hostname, err := ValidateHostname(inputHostname)
13 assert.Equal(t, err, fmt.Errorf("Hostname should not be empty"))
14 assert.Empty(t, hostname)
15
16 inputHostname = "hello.example.com"
17 hostname, err = ValidateHostname(inputHostname)
18 assert.Nil(t, err)
19 assert.Equal(t, "hello.example.com", hostname)
20
21 inputHostname = "http://hello.example.com"
22 hostname, err = ValidateHostname(inputHostname)
23 assert.Nil(t, err)
24 assert.Equal(t, "hello.example.com", hostname)
25
26 inputHostname = "bücher.example.com"
27 hostname, err = ValidateHostname(inputHostname)
28 assert.Nil(t, err)
29 assert.Equal(t, "xn--bcher-kva.example.com", hostname)
30
31 inputHostname = "http://bücher.example.com"
32 hostname, err = ValidateHostname(inputHostname)
33 assert.Nil(t, err)
34 assert.Equal(t, "xn--bcher-kva.example.com", hostname)
35
36 inputHostname = "http%3A%2F%2Fhello.example.com"
37 hostname, err = ValidateHostname(inputHostname)
38 assert.Nil(t, err)
39 assert.Equal(t, "hello.example.com", hostname)
40
41}
42
43func TestValidateUrl(t *testing.T) {
44 validUrl, err := ValidateUrl("")
45 assert.Equal(t, fmt.Errorf("Url should not be empty"), err)
46 assert.Empty(t, validUrl)
47
48 validUrl, err = ValidateUrl("https://localhost:8080")
49 assert.Nil(t, err)
50 assert.Equal(t, "https://localhost:8080", validUrl)
51
52 validUrl, err = ValidateUrl("localhost:8080")
53 assert.Nil(t, err)
54 assert.Equal(t, "http://localhost:8080", validUrl)
55
56 validUrl, err = ValidateUrl("http://localhost")
57 assert.Nil(t, err)
58 assert.Equal(t, "http://localhost", validUrl)
59
60 validUrl, err = ValidateUrl("http://127.0.0.1:8080")
61 assert.Nil(t, err)
62 assert.Equal(t, "http://127.0.0.1:8080", validUrl)
63
64 validUrl, err = ValidateUrl("127.0.0.1:8080")
65 assert.Nil(t, err)
66 assert.Equal(t, "http://127.0.0.1:8080", validUrl)
67
68 validUrl, err = ValidateUrl("127.0.0.1")
69 assert.Nil(t, err)
70 assert.Equal(t, "http://127.0.0.1", validUrl)
71
72 validUrl, err = ValidateUrl("https://127.0.0.1:8080")
73 assert.Nil(t, err)
74 assert.Equal(t, "https://127.0.0.1:8080", validUrl)
75
76 validUrl, err = ValidateUrl("[::1]:8080")
77 assert.Nil(t, err)
78 assert.Equal(t, "http://[::1]:8080", validUrl)
79
80 validUrl, err = ValidateUrl("http://[::1]")
81 assert.Nil(t, err)
82 assert.Equal(t, "http://[::1]", validUrl)
83
84 validUrl, err = ValidateUrl("http://[::1]:8080")
85 assert.Nil(t, err)
86 assert.Equal(t, "http://[::1]:8080", validUrl)
87
88 validUrl, err = ValidateUrl("[::1]")
89 assert.Nil(t, err)
90 assert.Equal(t, "http://[::1]", validUrl)
91
92 validUrl, err = ValidateUrl("https://example.com")
93 assert.Nil(t, err)
94 assert.Equal(t, "https://example.com", validUrl)
95
96 validUrl, err = ValidateUrl("example.com")
97 assert.Nil(t, err)
98 assert.Equal(t, "http://example.com", validUrl)
99
100 validUrl, err = ValidateUrl("http://hello.example.com")
101 assert.Nil(t, err)
102 assert.Equal(t, "http://hello.example.com", validUrl)
103
104 validUrl, err = ValidateUrl("hello.example.com")
105 assert.Nil(t, err)
106 assert.Equal(t, "http://hello.example.com", validUrl)
107
108 validUrl, err = ValidateUrl("hello.example.com:8080")
109 assert.Nil(t, err)
110 assert.Equal(t, "http://hello.example.com:8080", validUrl)
111
112 validUrl, err = ValidateUrl("https://hello.example.com:8080")
113 assert.Nil(t, err)
114 assert.Equal(t, "https://hello.example.com:8080", validUrl)
115
116 validUrl, err = ValidateUrl("https://bücher.example.com")
117 assert.Nil(t, err)
118 assert.Equal(t, "https://xn--bcher-kva.example.com", validUrl)
119
120 validUrl, err = ValidateUrl("bücher.example.com")
121 assert.Nil(t, err)
122 assert.Equal(t, "http://xn--bcher-kva.example.com", validUrl)
123
124 validUrl, err = ValidateUrl("https%3A%2F%2Fhello.example.com")
125 assert.Nil(t, err)
126 assert.Equal(t, "https://hello.example.com", validUrl)
127
128 validUrl, err = ValidateUrl("ftp://alex:12345@hello.example.com:8080/robot.txt")
129 assert.Equal(t, "Currently Argo Tunnel does not support ftp protocol.", err.Error())
130 assert.Empty(t, validUrl)
131
132 validUrl, err = ValidateUrl("https://alex:12345@hello.example.com:8080")
133 assert.Nil(t, err)
134 assert.Equal(t, "https://hello.example.com:8080", validUrl)
135
136}
137