@@ -653,36 +653,50 @@ func TestContextGetAndSetParam(t *testing.T) {
653
653
})
654
654
}
655
655
656
- // Issue #1655
657
- func TestContextSetParamNamesShouldUpdateEchoMaxParam (t * testing.T ) {
656
+ func TestContextSetParamNamesEchoMaxParam (t * testing.T ) {
658
657
e := New ()
659
658
assert .Equal (t , 0 , * e .maxParam )
660
659
661
660
expectedOneParam := []string {"one" }
662
661
expectedTwoParams := []string {"one" , "two" }
663
662
expectedThreeParams := []string {"one" , "two" , "" }
664
- expectedABCParams := []string {"A" , "B" , "C" }
665
663
666
- c := e .NewContext (nil , nil )
667
- c .SetParamNames ("1" , "2" )
668
- c .SetParamValues (expectedTwoParams ... )
669
- assert .Equal (t , 2 , * e .maxParam )
670
- assert .EqualValues (t , expectedTwoParams , c .ParamValues ())
671
-
672
- c .SetParamNames ("1" )
673
- assert .Equal (t , 2 , * e .maxParam )
674
- // Here for backward compatibility the ParamValues remains as they are
675
- assert .EqualValues (t , expectedOneParam , c .ParamValues ())
676
-
677
- c .SetParamNames ("1" , "2" , "3" )
678
- assert .Equal (t , 3 , * e .maxParam )
679
- // Here for backward compatibility the ParamValues remains as they are, but the len is extended to e.maxParam
680
- assert .EqualValues (t , expectedThreeParams , c .ParamValues ())
681
-
682
- c .SetParamValues ("A" , "B" , "C" , "D" )
683
- assert .Equal (t , 3 , * e .maxParam )
684
- // Here D shouldn't be returned
685
- assert .EqualValues (t , expectedABCParams , c .ParamValues ())
664
+ {
665
+ c := e .AcquireContext ()
666
+ c .SetParamNames ("1" , "2" )
667
+ c .SetParamValues (expectedTwoParams ... )
668
+ assert .Equal (t , 0 , * e .maxParam ) // has not been changed
669
+ assert .EqualValues (t , expectedTwoParams , c .ParamValues ())
670
+ e .ReleaseContext (c )
671
+ }
672
+
673
+ {
674
+ c := e .AcquireContext ()
675
+ c .SetParamNames ("1" , "2" , "3" )
676
+ c .SetParamValues (expectedThreeParams ... )
677
+ assert .Equal (t , 0 , * e .maxParam ) // has not been changed
678
+ assert .EqualValues (t , expectedThreeParams , c .ParamValues ())
679
+ e .ReleaseContext (c )
680
+ }
681
+
682
+ { // values is always same size as names length
683
+ c := e .NewContext (nil , nil )
684
+ c .SetParamValues ([]string {"one" , "two" }... ) // more values than names should be ok
685
+ c .SetParamNames ("1" )
686
+ assert .Equal (t , 0 , * e .maxParam ) // has not been changed
687
+ assert .EqualValues (t , expectedOneParam , c .ParamValues ())
688
+ }
689
+
690
+ e .GET ("/:id" , handlerFunc )
691
+ assert .Equal (t , 1 , * e .maxParam ) // has not been changed
692
+
693
+ {
694
+ c := e .NewContext (nil , nil )
695
+ c .SetParamValues ([]string {"one" , "two" }... )
696
+ c .SetParamNames ("1" )
697
+ assert .Equal (t , 1 , * e .maxParam ) // has not been changed
698
+ assert .EqualValues (t , expectedOneParam , c .ParamValues ())
699
+ }
686
700
}
687
701
688
702
func TestContextFormValue (t * testing.T ) {
0 commit comments