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.
 
 
 

47 lines
1.0 KiB

  1. package handlers
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "testing"
  6. )
  7. func TestServeFile(t *testing.T) {
  8. h := StaticFileHandler("./testdata/styles.css")
  9. s := httptest.NewServer(h)
  10. defer s.Close()
  11. res, err := http.Get(s.URL)
  12. if err != nil {
  13. panic(err)
  14. }
  15. assertStatus(http.StatusOK, res.StatusCode, t)
  16. assertHeader("Content-Type", "text/css; charset=utf-8", res, t)
  17. assertHeader("Content-Encoding", "", res, t)
  18. assertBody([]byte(`* {
  19. background-color: white;
  20. }`), res, t)
  21. }
  22. func TestGzippedFile(t *testing.T) {
  23. h := GZIPHandler(StaticFileHandler("./testdata/styles.css"), nil)
  24. s := httptest.NewServer(h)
  25. defer s.Close()
  26. req, err := http.NewRequest("GET", s.URL, nil)
  27. if err != nil {
  28. panic(err)
  29. }
  30. req.Header.Set("Accept-Encoding", "*")
  31. res, err := http.DefaultClient.Do(req)
  32. if err != nil {
  33. panic(err)
  34. }
  35. assertStatus(http.StatusOK, res.StatusCode, t)
  36. assertHeader("Content-Encoding", "gzip", res, t)
  37. assertHeader("Content-Type", "text/css; charset=utf-8", res, t)
  38. assertGzippedBody([]byte(`* {
  39. background-color: white;
  40. }`), res, t)
  41. }