mirror of https://github.com/writeas/writefreely
A focused writing and publishing space.
https://write.with.parts
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
918 B
38 lines
918 B
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)
|
|
}
|
|
}
|
|
}
|
|
|