Add Cache-Control header
Add Cache-Control response header for static files in order to improve page loading speed. Fixes #322pull/336/head
parent
a8a6525006
commit
3f36ede885
@ -0,0 +1,38 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
!config.ini
|
@ -0,0 +1,2 @@
|
||||
[server]
|
||||
static_parent_dir = testdata
|
@ -0,0 +1,3 @@
|
||||
body {
|
||||
background-color: lightblue;
|
||||
}
|
Loading…
Reference in New Issue