aboutsummaryrefslogtreecommitdiff
path: root/lib/http/server_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/http/server_test.go')
-rw-r--r--lib/http/server_test.go90
1 files changed, 66 insertions, 24 deletions
diff --git a/lib/http/server_test.go b/lib/http/server_test.go
index 6542d833..a333628c 100644
--- a/lib/http/server_test.go
+++ b/lib/http/server_test.go
@@ -1,6 +1,5 @@
-// SPDX-FileCopyrightText: 2018 M. Shulhan <ms@kilabit.info>
-//
// SPDX-License-Identifier: BSD-3-Clause
+// SPDX-FileCopyrightText: 2018 M. Shulhan <ms@kilabit.info>
package http
@@ -869,7 +868,8 @@ func TestServer_HandleFS(t *testing.T) {
t.Fatal(err)
}
- var root = t.TempDir()
+ root := `testdata/Server_HandleFS`
+
var mfsOpts = memfs.Options{
Root: root,
MaxFileSize: -1,
@@ -892,48 +892,90 @@ func TestServer_HandleFS(t *testing.T) {
t.Fatal(err)
}
- var redactTime = regexp.MustCompile(`\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d`)
- var redactedTime = []byte(`0000-00-00T00:00:00`)
- var simreq = libhttptest.SimulateRequest{
- Path: `/`,
- }
- var simres *libhttptest.SimulateResult
- var exp string
- var got []byte
+ listCase := []struct {
+ path string
+ expResponse string
+ }{{
+ path: `/`,
+ expResponse: string(tdata.Output[`/`]),
+ }, {
+ path: `/index`,
+ expResponse: string(tdata.Output[`/`]),
+ }, {
+ path: `/dir`,
+ expResponse: string(tdata.Output[`/dir`]),
+ }, {
+ path: `/dir?q=abc`,
+ expResponse: string(tdata.Output[`/dir?q=abc`]),
+ }, {
+ path: `/dir?q=abc#fgh`,
+ expResponse: string(tdata.Output[`/dir?q=abc#fgh`]),
+ }, {
+ path: `/dir#fgh`,
+ expResponse: string(tdata.Output[`/dir/#fgh`]),
+ }, {
+ path: `/dir/#fgh`,
+ expResponse: string(tdata.Output[`/dir/#fgh`]),
+ }, {
+ path: `/dir/`,
+ expResponse: string(tdata.Output[`/dir/`]),
+ }, {
+ path: `/b`,
+ expResponse: string(tdata.Output[`/b`]),
+ }, {
+ path: `/b?q=abc`,
+ expResponse: string(tdata.Output[`/b`]),
+ }, {
+ path: `/b?q=abc#fgh`,
+ expResponse: string(tdata.Output[`/b`]),
+ }}
+
+ for _, tc := range listCase {
+ simreq := libhttptest.SimulateRequest{
+ Path: tc.path,
+ }
- t.Run(`OnEmptyRoot`, func(t *testing.T) {
+ var simres *libhttptest.SimulateResult
simres, err = libhttptest.Simulate(httpd.ServeHTTP, &simreq)
if err != nil {
t.Fatal(err)
}
- exp = string(tdata.Output[t.Name()])
+ var got []byte
got, err = simres.DumpResponse([]string{HeaderETag})
if err != nil {
t.Fatal(err)
}
- test.Assert(t, `response`, exp, string(got))
- })
+ test.Assert(t, tc.path, tc.expResponse, string(got))
+ }
+
+ newDir := filepath.Join(root, `newDir`)
+ _ = os.RemoveAll(newDir)
+
+ t.Run(`OnNewDirectory`, func(tt *testing.T) {
+ redactTime := regexp.MustCompile(`\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d`)
+ redactedTime := []byte(`0000-00-00T00:00:00`)
- t.Run(`OnNewDirectory`, func(t *testing.T) {
- var newDir = filepath.Join(root, `dirA`)
err = os.MkdirAll(newDir, 0755)
if err != nil {
- t.Fatal(err)
+ tt.Fatal(err)
}
- simres, err = libhttptest.Simulate(httpd.ServeHTTP, &simreq)
+ simreq := libhttptest.SimulateRequest{
+ Path: `/newDir/`,
+ }
+ simres, err := libhttptest.Simulate(httpd.ServeHTTP, &simreq)
if err != nil {
- t.Fatal(err)
+ tt.Fatal(err)
}
- exp = string(tdata.Output[t.Name()])
- got, err = simres.DumpResponse([]string{HeaderETag})
+ exp := string(tdata.Output[tt.Name()])
+ got, err := simres.DumpResponse([]string{HeaderETag})
if err != nil {
- t.Fatal(err)
+ tt.Fatal(err)
}
got = redactTime.ReplaceAll(got, redactedTime)
- test.Assert(t, `response`, exp, string(got))
+ test.Assert(tt, tt.Name(), exp, string(got))
})
}