1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package util
- import (
- "embed"
- "github.com/stretchr/testify/require"
- "net/http"
- "net/http/httptest"
- "testing"
- "time"
- )
- var (
- modTime = time.Now()
- //go:embed embedfs
- testFs embed.FS
- testFsCached = &CachingEmbedFS{ModTime: modTime, FS: testFs}
- )
- func TestCachingEmbedFS(t *testing.T) {
- s := http.FileServer(http.FS(testFsCached))
- rr := httptest.NewRecorder()
- req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil)
- s.ServeHTTP(rr, req)
- require.Equal(t, 200, rr.Code)
- lastModified := rr.Header().Get("Last-Modified")
- rr = httptest.NewRecorder()
- req, _ = http.NewRequest("GET", "/embedfs/test.txt", nil)
- req.Header.Set("If-Modified-Since", lastModified)
- s.ServeHTTP(rr, req)
- require.Equal(t, 304, rr.Code) // Huzzah!
- }
- func TestCachingEmbedFS_Range(t *testing.T) {
- s := http.FileServer(http.FS(testFsCached))
- rr := httptest.NewRecorder()
- req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil)
- req.Header.Set("Range", "bytes=1-20")
- s.ServeHTTP(rr, req)
- require.Equal(t, 206, rr.Code)
- require.Equal(t, "his is a test file f", rr.Body.String())
- }
|