From 79fdf640deb82b04c6ef2cf5695ebc796f33f4cd Mon Sep 17 00:00:00 2001 From: sentriz Date: Thu, 30 Nov 2023 18:55:47 +0000 Subject: [PATCH] add a test for params middleware --- server/ctrlsubsonic/ctrl_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/ctrlsubsonic/ctrl_test.go b/server/ctrlsubsonic/ctrl_test.go index b0e7fa7d..2dddea27 100644 --- a/server/ctrlsubsonic/ctrl_test.go +++ b/server/ctrlsubsonic/ctrl_test.go @@ -15,6 +15,7 @@ import ( "testing" jd "github.com/josephburnett/jd/lib" + "github.com/stretchr/testify/require" "go.senan.xyz/gonic" "go.senan.xyz/gonic/db" @@ -163,3 +164,23 @@ func makec(tb testing.TB, roots []string, audio bool) *Controller { return contr } + +func TestParams(t *testing.T) { + t.Parallel() + + handler := withParams(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + params := r.Context().Value(CtxParams).(params.Params) + require.Equal(t, "Client", params.GetOr("c", "")) + })) + params := url.Values{} + params.Set("c", "Client") + + r, err := http.NewRequest(http.MethodGet, "/?"+params.Encode(), nil) + require.NoError(t, err) + handler.ServeHTTP(nil, r) + + r, err = http.NewRequest(http.MethodPost, "/", strings.NewReader(params.Encode())) + require.NoError(t, err) + r.Header.Set("Content-Type", "application/x-www-form-urlencoded") + handler.ServeHTTP(nil, r) +}