|
- package writefreely
-
- import (
- "net/http"
- "net/http/httptest"
- "strings"
- "testing"
-
- "github.com/gorilla/mux"
- )
-
- func TestCacheControlForStaticFiles(t *testing.T) {
- app := NewApp("testdata/config.ini")
- if err := app.LoadConfig(); err != nil {
- t.Fatalf("Could not create an app; %v", err)
- }
- router := mux.NewRouter()
- app.InitStaticRoutes(router)
-
- rec := httptest.NewRecorder()
- req := httptest.NewRequest("GET", "/style.css", nil)
- router.ServeHTTP(rec, req)
- if code := rec.Result().StatusCode; code != http.StatusOK {
- t.Fatalf("Could not get /style.css, got HTTP status %d", code)
- }
- actual := rec.Result().Header.Get("Cache-Control")
-
- expectedDirectives := []string{
- "public",
- "max-age",
- "immutable",
- }
- for _, expected := range expectedDirectives {
- if !strings.Contains(actual, expected) {
- t.Errorf("Expected Cache-Control header to contain '%s', but was '%s'", expected, actual)
- }
- }
- }
|