1
0
mirror of https://github.com/labstack/echo.git synced 2025-12-01 22:51:17 +02:00

round-trip paramValues without exploding (#1463)

This commit is contained in:
J. David Lowe
2020-01-23 18:32:17 -08:00
committed by Vishal Rana
parent 5bf6888444
commit 8d7f05e533
4 changed files with 30 additions and 1 deletions

View File

@@ -93,6 +93,7 @@ func (responseWriterErr) WriteHeader(statusCode int) {
func TestContext(t *testing.T) {
e := New()
*e.maxParam = 1
req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(userJSON))
rec := httptest.NewRecorder()
c := e.NewContext(req, rec).(*context)
@@ -471,6 +472,7 @@ func TestContextPath(t *testing.T) {
func TestContextPathParam(t *testing.T) {
e := New()
*e.maxParam = 2
req := httptest.NewRequest(http.MethodGet, "/", nil)
c := e.NewContext(req, nil)
@@ -487,6 +489,26 @@ func TestContextPathParam(t *testing.T) {
testify.Equal(t, "", c.Param("undefined"))
}
func TestContextGetAndSetParam(t *testing.T) {
e := New()
*e.maxParam = 2
req := httptest.NewRequest(http.MethodGet, "/:foo", nil)
c := e.NewContext(req, nil)
c.SetParamNames("foo")
// round-trip param values with modification
paramVals := c.ParamValues()
testify.EqualValues(t, []string{""}, c.ParamValues())
paramVals[0] = "bar"
c.SetParamValues(paramVals...)
testify.EqualValues(t, []string{"bar"}, c.ParamValues())
// shouldn't explode during Reset() afterwards!
testify.NotPanics(t, func() {
c.Reset(nil, nil)
})
}
func TestContextFormValue(t *testing.T) {
f := make(url.Values)
f.Set("name", "Jon Snow")