@@ -178,13 +178,24 @@ func TestRouteRedirectTrailingSlash(t *testing.T) {
178
178
w = PerformRequest (router , http .MethodPut , "/path4/" )
179
179
assert .Equal (t , http .StatusOK , w .Code )
180
180
181
- w = PerformRequest (router , http .MethodGet , "/path2" , header {Key : "X-Forwarded-Prefix" , Value : "/api" })
182
- assert .Equal (t , "/api/path2/" , w .Header ().Get ("Location" ))
183
- assert .Equal (t , 301 , w .Code )
181
+ w = PerformRequest (router , http .MethodGet , "/path2/" , header {Key : "X-Forwarded-Prefix" , Value : "/api/" })
182
+ assert .Equal (t , 200 , w .Code )
184
183
185
184
w = PerformRequest (router , http .MethodGet , "/path2/" , header {Key : "X-Forwarded-Prefix" , Value : "/api/" })
186
185
assert .Equal (t , 200 , w .Code )
187
186
187
+ w = PerformRequest (router , http .MethodGet , "/path/" , header {Key : "X-Forwarded-Prefix" , Value : "../../bug#?" })
188
+ assert .Equal (t , "../../../bug%2523%253F/path" , w .Header ().Get ("Location" ))
189
+ assert .Equal (t , 301 , w .Code )
190
+
191
+ w = PerformRequest (router , http .MethodGet , "/path/" , header {Key : "X-Forwarded-Prefix" , Value : "https://gin-gonic.com/#" })
192
+ assert .Equal (t , "https%3A/gin-gonic.com/%23/https%253A/gin-gonic.com/%2523/path" , w .Header ().Get ("Location" ))
193
+ assert .Equal (t , 301 , w .Code )
194
+
195
+ w = PerformRequest (router , http .MethodGet , "/path/" , header {Key : "X-Forwarded-Prefix" , Value : "#bug" })
196
+ assert .Equal (t , "%23bug/%2523bug/path" , w .Header ().Get ("Location" ))
197
+ assert .Equal (t , 301 , w .Code )
198
+
188
199
router .RedirectTrailingSlash = false
189
200
190
201
w = PerformRequest (router , http .MethodGet , "/path/" )
0 commit comments