summaryrefslogtreecommitdiff
path: root/modules_test.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-03-26 12:00:54 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2019-03-26 12:00:54 -0600
commit859b5d7ea3b8f660ac68d9aea5a53d25a9a7422c (patch)
treec5baf11ff459d8811104b00c07b0a3c24bd16d9c /modules_test.go
Initial commit
Diffstat (limited to 'modules_test.go')
-rw-r--r--modules_test.go71
1 files changed, 71 insertions, 0 deletions
diff --git a/modules_test.go b/modules_test.go
new file mode 100644
index 0000000..ff2ff4e
--- /dev/null
+++ b/modules_test.go
@@ -0,0 +1,71 @@
+package caddy2
+
+import (
+ "reflect"
+ "testing"
+)
+
+func TestGetModules(t *testing.T) {
+ modulesMu.Lock()
+ modules = map[string]Module{
+ "a": {Name: "a"},
+ "a.b": {Name: "a.b"},
+ "a.b.c": {Name: "a.b.c"},
+ "a.b.cd": {Name: "a.b.cd"},
+ "a.c": {Name: "a.c"},
+ "a.d": {Name: "a.d"},
+ "b": {Name: "b"},
+ "b.a": {Name: "b.a"},
+ "b.b": {Name: "b.b"},
+ "b.a.c": {Name: "b.a.c"},
+ "c": {Name: "c"},
+ }
+ modulesMu.Unlock()
+
+ for i, tc := range []struct {
+ input string
+ expect []Module
+ }{
+ {
+ input: "",
+ expect: []Module{
+ {Name: "a"},
+ {Name: "b"},
+ {Name: "c"},
+ },
+ },
+ {
+ input: "a",
+ expect: []Module{
+ {Name: "a.b"},
+ {Name: "a.c"},
+ {Name: "a.d"},
+ },
+ },
+ {
+ input: "a.b",
+ expect: []Module{
+ {Name: "a.b.c"},
+ {Name: "a.b.cd"},
+ },
+ },
+ {
+ input: "a.b.c",
+ },
+ {
+ input: "b",
+ expect: []Module{
+ {Name: "b.a"},
+ {Name: "b.b"},
+ },
+ },
+ {
+ input: "asdf",
+ },
+ } {
+ actual := GetModules(tc.input)
+ if !reflect.DeepEqual(actual, tc.expect) {
+ t.Errorf("Test %d: Expected %v but got %v", i, tc.expect, actual)
+ }
+ }
+}