From d9729b4a2e30cc0143274ebd4a2cc1322bfadc5c Mon Sep 17 00:00:00 2001 From: Karthic Rao Date: Fri, 19 Jun 2015 23:34:54 +0530 Subject: [PATCH] test for config/setup/internal.go --- config/setup/internal_test.go | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 config/setup/internal_test.go diff --git a/config/setup/internal_test.go b/config/setup/internal_test.go new file mode 100644 index 000000000..d847389ca --- /dev/null +++ b/config/setup/internal_test.go @@ -0,0 +1,72 @@ +package setup + +import ( + "testing" + + "github.com/mholt/caddy/middleware/inner" +) + +func TestInternal(t *testing.T) { + c := newTestController(`internal /internal`) + + mid, err := Internal(c) + + if err != nil { + t.Errorf("Expected no errors, got: %v", err) + } + + if mid == nil { + t.Fatal("Expected middleware, was nil instead") + } + + handler := mid(emptyNext) + myHandler, ok := handler.(inner.Internal) + + if !ok { + t.Fatalf("Expected handler to be type Internal, got: %#v", handler) + } + + if myHandler.Paths[0] != "/internal" { + t.Errorf("Expected internal in the list of internal Paths") + } + + if !sameNext(myHandler.Next, emptyNext) { + t.Error("'Next' field of handler was not set properly") + } + +} + +func InternalParse(t *testing.T) { + tests := []struct { + inputInternalPaths string + shouldErr bool + expectedInternalPaths []string + }{ + {`internal /internal`, false, []string{"/internal"}}, + + {`internal /internal1 + internal /internal2`, false, []string{"/internal1", "/internal2"}}, + } + for i, test := range tests { + c := newTestController(test.inputInternalPaths) + actualInternalPaths, err := internalParse(c) + + if err == nil && test.shouldErr { + t.Errorf("Test %d didn't error, but it should have", i) + } else if err != nil && !test.shouldErr { + t.Errorf("Test %d errored, but it shouldn't have; got '%v'", i, err) + } + + if len(actualInternalPaths) != len(test.expectedInternalPaths) { + t.Fatalf("Test %d expected %d InternalPaths, but got %d", + i, len(test.expectedInternalPaths), len(actualInternalPaths)) + } + for j, actualInternalPath := range actualInternalPaths { + if actualInternalPath != test.expectedInternalPaths[j] { + t.Fatalf("Test %d expected %dth Internal Path to be %s , but got %s", + i, j, test.expectedInternalPaths[j], actualInternalPath) + } + } + } + +}