traefik/middlewares/replace_path_test.go

39 lines
907 B
Go
Raw Normal View History

package middlewares
2017-04-25 18:13:39 +00:00
import (
"net/http"
"testing"
2017-06-03 12:58:35 +00:00
"github.com/containous/traefik/testhelpers"
"github.com/stretchr/testify/assert"
2017-04-25 18:13:39 +00:00
)
func TestReplacePath(t *testing.T) {
const replacementPath = "/replacement-path"
paths := []string{
"/example",
"/some/really/long/path",
}
for _, path := range paths {
t.Run(path, func(t *testing.T) {
var expectedPath, actualHeader string
handler := &ReplacePath{
2017-04-25 18:13:39 +00:00
Path: replacementPath,
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
expectedPath = r.URL.Path
actualHeader = r.Header.Get(ReplacedPathHeader)
2017-04-25 18:13:39 +00:00
}),
}
2017-06-03 12:58:35 +00:00
req := testhelpers.MustNewRequest(http.MethodGet, "http://localhost"+path, nil)
2017-04-25 18:13:39 +00:00
handler.ServeHTTP(nil, req)
2017-06-01 20:09:36 +00:00
assert.Equal(t, expectedPath, replacementPath, "Unexpected path.")
assert.Equal(t, path, actualHeader, "Unexpected '%s' header.", ReplacedPathHeader)
2017-04-25 18:13:39 +00:00
})
}
}