summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/caddyhttp_test.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-03-26 15:45:51 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2019-03-26 15:45:51 -0600
commit86e2d1b0a48fbd84590291969611f1870471c3e0 (patch)
treed3a8d82ca88f7d7ff60476cd772d8c4314cd6a3f /modules/caddyhttp/caddyhttp_test.go
parent859b5d7ea3b8f660ac68d9aea5a53d25a9a7422c (diff)
Rudimentary start of HTTP servers
Diffstat (limited to 'modules/caddyhttp/caddyhttp_test.go')
-rw-r--r--modules/caddyhttp/caddyhttp_test.go80
1 files changed, 80 insertions, 0 deletions
diff --git a/modules/caddyhttp/caddyhttp_test.go b/modules/caddyhttp/caddyhttp_test.go
new file mode 100644
index 0000000..c65a9a2
--- /dev/null
+++ b/modules/caddyhttp/caddyhttp_test.go
@@ -0,0 +1,80 @@
+package caddyhttp
+
+import (
+ "reflect"
+ "testing"
+)
+
+func TestParseListenerAddr(t *testing.T) {
+ for i, tc := range []struct {
+ input string
+ expectProto string
+ expectAddrs []string
+ expectErr bool
+ }{
+ {
+ input: "",
+ expectProto: "tcp",
+ expectErr: true,
+ },
+ {
+ input: ":",
+ expectProto: "tcp",
+ expectErr: true,
+ },
+ {
+ input: ":1234",
+ expectProto: "tcp",
+ expectAddrs: []string{":1234"},
+ },
+ {
+ input: "tcp::::1234",
+ expectProto: "tcp",
+ expectAddrs: []string{":1234"},
+ },
+ {
+ input: "tcp6::::1234",
+ expectProto: "tcp6",
+ expectAddrs: []string{":1234"},
+ },
+ {
+ input: "tcp4:::localhost:1234",
+ expectProto: "tcp4",
+ expectAddrs: []string{"localhost:1234"},
+ },
+ {
+ input: "unix:::localhost:1234-1236",
+ expectProto: "unix",
+ expectAddrs: []string{"localhost:1234", "localhost:1235", "localhost:1236"},
+ },
+ {
+ input: "localhost:1234-1234",
+ expectProto: "tcp",
+ expectAddrs: []string{"localhost:1234"},
+ },
+ {
+ input: "localhost:2-1",
+ expectProto: "tcp",
+ expectErr: true,
+ },
+ {
+ input: "localhost:0",
+ expectProto: "tcp",
+ expectAddrs: []string{"localhost:0"},
+ },
+ } {
+ actualProto, actualAddrs, err := parseListenAddr(tc.input)
+ if tc.expectErr && err == nil {
+ t.Errorf("Test %d: Expected error but got: %v", i, err)
+ }
+ if !tc.expectErr && err != nil {
+ t.Errorf("Test %d: Expected no error but got: %v", i, err)
+ }
+ if actualProto != tc.expectProto {
+ t.Errorf("Test %d: Expeceted protocol '%s' but got '%s'", i, tc.expectProto, actualProto)
+ }
+ if !reflect.DeepEqual(tc.expectAddrs, actualAddrs) {
+ t.Errorf("Test %d: Expected addresses %v but got %v", i, tc.expectAddrs, actualAddrs)
+ }
+ }
+}