From 9a32d08e9f226bd8739807a5e545dc610e3dcb27 Mon Sep 17 00:00:00 2001 From: Karthic Rao Date: Wed, 17 Jun 2015 11:59:24 +0530 Subject: [PATCH] test for function exParse under config/setup/ext.go --- config/setup/ext_test.go | 74 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 config/setup/ext_test.go diff --git a/config/setup/ext_test.go b/config/setup/ext_test.go new file mode 100644 index 00000000..876183d3 --- /dev/null +++ b/config/setup/ext_test.go @@ -0,0 +1,74 @@ +package setup + +import ( + "testing" + + "github.com/mholt/caddy/middleware/extensions" +) + +func TestExt(t *testing.T) { + c := newTestController(`ext .html .htm .php`) + + mid, err := Ext(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.(extensions.Ext) + + if !ok { + t.Fatalf("Expected handler to be type Ext, got: %#v", handler) + } + + if myHandler.Extensions[0] != ".html" { + t.Errorf("Expected .html in the list of Extensions") + } + if myHandler.Extensions[1] != ".htm" { + t.Errorf("Expected .htm in the list of Extensions") + } + if myHandler.Extensions[2] != ".php" { + t.Errorf("Expected .php in the list of Extensions") + } + if !sameNext(myHandler.Next, emptyNext) { + t.Error("'Next' field of handler was not set properly") + } + +} + +func TestExtParse(t *testing.T) { + tests := []struct { + inputExts string + shouldErr bool + expectedExts []string + }{ + {`ext .html .htm .php`, false, []string{".html", ".htm", ".php"}}, + } + for i, test := range tests { + c := newTestController(test.inputExts) + actualExts, err := extParse(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(actualExts) != len(test.expectedExts) { + t.Fatalf("Test %d expected %d rules, but got %d", + i, len(test.expectedExts), len(actualExts)) + } + for j, actualExt := range actualExts { + if actualExt != test.expectedExts[j] { + t.Fatalf("Test %d expected %dth extension to be %s , but got %s", + i, j, test.expectedExts[j], actualExt) + } + } + } + +}