-
Notifications
You must be signed in to change notification settings - Fork 269
/
http.go
38 lines (35 loc) 路 1.11 KB
/
http.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package test
import (
"net/http"
"net/http/httptest"
"os"
"testing"
)
func NewHTTPServerForFile(t *testing.T, filePath string) *httptest.Server {
fileContent, err := os.ReadFile(filePath)
if err != nil {
t.Fatalf("Failed reading file [%s] to serve from http: %s", filePath, err)
}
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if _, err := w.Write(fileContent); err != nil {
t.Errorf("Failed writing response to http request: %s", err)
}
}))
t.Cleanup(func() { ts.Close() })
return ts
}
// NewHTTPSServerForFile creates an HTTPS server that always serves the content of the
// given file.
func NewHTTPSServerForFile(t *testing.T, filePath string) *httptest.Server {
fileContent, err := os.ReadFile(filePath)
if err != nil {
t.Fatalf("Failed reading file [%s] to serve from http: %s", filePath, err)
}
ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if _, err := w.Write(fileContent); err != nil {
t.Errorf("Failed writing response to http request: %s", err)
}
}))
t.Cleanup(func() { ts.Close() })
return ts
}