From 33fa29fda023e795710b756c815b1f3d2ab0f785 Mon Sep 17 00:00:00 2001 From: Peter Hellberg Date: Fri, 10 Jul 2015 12:05:06 -0600 Subject: [PATCH] extensions: Initial tests --- middleware/extensions/ext_test.go | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 middleware/extensions/ext_test.go diff --git a/middleware/extensions/ext_test.go b/middleware/extensions/ext_test.go new file mode 100644 index 00000000..6ca65a4c --- /dev/null +++ b/middleware/extensions/ext_test.go @@ -0,0 +1,55 @@ +package extensions + +import ( + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "testing" + + "github.com/mholt/caddy/middleware" +) + +func TestExtensions(t *testing.T) { + rootDir := os.TempDir() + + // create a temporary page + path := filepath.Join(rootDir, "extensions_test.html") + _, err := os.Create(path) + if err != nil { + t.Fatal(err) + } + defer os.Remove(path) + + for i, test := range []struct { + path string + extensions []string + expectedURL string + }{ + {"/extensions_test", []string{".html"}, "/extensions_test.html"}, + {"/extensions_test/", []string{".html"}, "/extensions_test/"}, + {"/extensions_test", []string{".json"}, "/extensions_test"}, + {"/another_test", []string{".html"}, "/another_test"}, + } { + ex := Ext{ + Next: middleware.HandlerFunc(func(w http.ResponseWriter, r *http.Request) (int, error) { + return 0, nil + }), + Root: rootDir, + Extensions: test.extensions, + } + + req, err := http.NewRequest("GET", test.path, nil) + if err != nil { + t.Fatalf("Test %d: Could not create HTTP request: %v", i, err) + } + + rec := httptest.NewRecorder() + + ex.ServeHTTP(rec, req) + + if got := req.URL.String(); got != test.expectedURL { + t.Fatalf("Test %d: Got unexpected request URL: %q, wanted %q", i, got, test.expectedURL) + } + } +}