mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-16 21:56:40 -05:00
4b1a9b6cc1
* caddy adapt for listen_protocols * adapt listen_socket * allow multiple listen sockets for port ranges and readd socket fd listen logic * readd logic to start servers according to listener protocols * gofmt * adapt caddytest * gosec * fmt and rename listen to listenWithSocket * fmt and rename listen to listenWithSocket * more consistent error msg * non unix listenReusableWithSocketFile * remove unused func * doc comment typo * nonosec * commit * doc comments * more doc comments * comment was misleading, cardinality did not change * addressesWithProtocols * update test * fd/ and fdgram/ * rm addr * actually write... * i guess we doin' "skip": now * wrong var in placeholder * wrong var in placeholder II * update param name in comment * dont save nil file pointers * windows * key -> parsedKey * osx * multiple default_bind with protocols * check for h1 and h2 listener netw
97 lines
2 KiB
Go
97 lines
2 KiB
Go
package httpcaddyfile
|
|
|
|
import (
|
|
"reflect"
|
|
"sort"
|
|
"testing"
|
|
)
|
|
|
|
func TestHostsFromKeys(t *testing.T) {
|
|
for i, tc := range []struct {
|
|
keys []Address
|
|
expectNormalMode []string
|
|
expectLoggerMode []string
|
|
}{
|
|
{
|
|
[]Address{
|
|
{Original: "foo", Host: "foo"},
|
|
},
|
|
[]string{"foo"},
|
|
[]string{"foo"},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "foo", Host: "foo"},
|
|
{Original: "bar", Host: "bar"},
|
|
},
|
|
[]string{"bar", "foo"},
|
|
[]string{"bar", "foo"},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: ":2015", Port: "2015"},
|
|
},
|
|
[]string{},
|
|
[]string{},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: ":443", Port: "443"},
|
|
},
|
|
[]string{},
|
|
[]string{},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "foo", Host: "foo"},
|
|
{Original: ":2015", Port: "2015"},
|
|
},
|
|
[]string{},
|
|
[]string{"foo"},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "example.com:2015", Host: "example.com", Port: "2015"},
|
|
},
|
|
[]string{"example.com"},
|
|
[]string{"example.com:2015"},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "example.com:80", Host: "example.com", Port: "80"},
|
|
},
|
|
[]string{"example.com"},
|
|
[]string{"example.com"},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "https://:2015/foo", Scheme: "https", Port: "2015", Path: "/foo"},
|
|
},
|
|
[]string{},
|
|
[]string{},
|
|
},
|
|
{
|
|
[]Address{
|
|
{Original: "https://example.com:2015/foo", Scheme: "https", Host: "example.com", Port: "2015", Path: "/foo"},
|
|
},
|
|
[]string{"example.com"},
|
|
[]string{"example.com:2015"},
|
|
},
|
|
} {
|
|
sb := serverBlock{parsedKeys: tc.keys}
|
|
|
|
// test in normal mode
|
|
actual := sb.hostsFromKeys(false)
|
|
sort.Strings(actual)
|
|
if !reflect.DeepEqual(tc.expectNormalMode, actual) {
|
|
t.Errorf("Test %d (loggerMode=false): Expected: %v Actual: %v", i, tc.expectNormalMode, actual)
|
|
}
|
|
|
|
// test in logger mode
|
|
actual = sb.hostsFromKeys(true)
|
|
sort.Strings(actual)
|
|
if !reflect.DeepEqual(tc.expectLoggerMode, actual) {
|
|
t.Errorf("Test %d (loggerMode=true): Expected: %v Actual: %v", i, tc.expectLoggerMode, actual)
|
|
}
|
|
}
|
|
}
|