1- using System ;
1+ using System ;
22using System . Collections . Generic ;
33using System . Web ;
44using BVNetwork . NotFound . Core ;
@@ -276,5 +276,65 @@ public void Find_gives_nullreferenceexception_with_partial_deleted_hit()
276276
277277 Assert . NotNull ( actual ) ;
278278 }
279+
280+ /// <summary>
281+ /// https://github.com/Geta/404handler/issues/171
282+ /// </summary>
283+ [ Fact ]
284+ public void Find_does_not_add_slash_when_querystring_parameter ( )
285+ {
286+ var collection = new CustomRedirectCollection
287+ {
288+ new CustomRedirect ( "/content/file" , "/legacy" ) ,
289+ new CustomRedirect ( "/content/file/" , "/legacy/" )
290+ } ;
291+
292+ var urlToFind = "/content/file?doc=filename" ;
293+ var expected = "/legacy?doc=filename" ;
294+
295+ var actual = collection . Find ( urlToFind . ToUri ( ) ) ;
296+
297+ Assert . Equal ( expected , actual . NewUrl ) ;
298+ }
299+
300+ /// <summary>
301+ /// https://github.com/Geta/404handler/issues/171
302+ /// </summary>
303+ [ Fact ]
304+ public void Find_does_keep_slash_when_querystring_parameter ( )
305+ {
306+ var collection = new CustomRedirectCollection
307+ {
308+ new CustomRedirect ( "/content/file" , "/legacy" ) ,
309+ new CustomRedirect ( "/content/file/" , "/legacy/" )
310+ } ;
311+
312+ var urlToFind = "/content/file/?doc=filename" ;
313+ var expected = "/legacy/?doc=filename" ;
314+
315+ var actual = collection . Find ( urlToFind . ToUri ( ) ) ;
316+
317+ Assert . Equal ( expected , actual . NewUrl ) ;
318+ }
319+
320+ /// <summary>
321+ /// https://github.com/Geta/404handler/issues/171
322+ /// </summary>
323+ [ Fact ]
324+ public void Find_does_not_add_slash_when_querystring_parameters ( )
325+ {
326+ var collection = new CustomRedirectCollection
327+ {
328+ new CustomRedirect ( "/content/file" , "/legacy" ) ,
329+ new CustomRedirect ( "/content/file/" , "/legacy/" )
330+ } ;
331+
332+ var urlToFind = "/content/file?doc=filename¶m2=value" ;
333+ var expected = "/legacy?doc=filename¶m2=value" ;
334+
335+ var actual = collection . Find ( urlToFind . ToUri ( ) ) ;
336+
337+ Assert . Equal ( expected , actual . NewUrl ) ;
338+ }
279339 }
280- }
340+ }
0 commit comments