// Copyright © 2023 Ory Corp // SPDX-License-Identifier: Apache-2.0 package x import ( "fmt" "io" "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestCleanPath(t *testing.T) { r := http.NewServeMux() r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { _, _ = w.Write([]byte(r.URL.String())) }) ts := httptest.NewServer(r) defer ts.Close() for k, tc := range [][]string{ {"//foo", "/foo"}, {"//foo//bar", "/foo/bar"}, } { t.Run(fmt.Sprintf("case=%d", k), func(t *testing.T) { res, err := ts.Client().Get(ts.URL + tc[0]) require.NoError(t, err) defer func() { _ = res.Body.Close() }() body, err := io.ReadAll(res.Body) require.NoError(t, err) assert.Equal(t, string(body), tc[1]) }) } }