@@ -325,18 +325,24 @@ public function testGenerateWithSpecialRouteName()
325
325
326
326
public function testUrlEncoding ()
327
327
{
328
+ if (defined ('PHP_QUERY_RFC3986 ' )) {
329
+ $ expectedPath = '/app.php/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
330
+ .'/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
331
+ .'?query=%40%3A%5B%5D/%28%29%2A%27%22%20%2B%2C%3B-._~%26%24%3C%3E%7C%7B%7D%25%5C%5E%60%21%3Ffoo%3Dbar%23id ' ;
332
+ } else {
333
+ $ expectedPath = '/app.php/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
334
+ .'/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
335
+ .'?query=%40%3A%5B%5D/%28%29%2A%27%22+%2B%2C%3B-._%7E%26%24%3C%3E%7C%7B%7D%25%5C%5E%60%21%3Ffoo%3Dbar%23id ' ;
336
+ }
337
+
328
338
// This tests the encoding of reserved characters that are used for delimiting of URI components (defined in RFC 3986)
329
339
// and other special ASCII chars. These chars are tested as static text path, variable path and query param.
330
340
$ chars = '@:[]/()* \'" +,;-._~&$<>|{}% \\^`!?foo=bar#id ' ;
331
341
$ routes = $ this ->getRoutes ('test ' , new Route ("/ $ chars/{varpath} " , array (), array ('varpath ' => '.+ ' )));
332
- $ this ->assertSame ('/app.php/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
333
- .'/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id '
334
- .'?query=%40%3A%5B%5D/%28%29%2A%27%22+%2B%2C%3B-._%7E%26%24%3C%3E%7C%7B%7D%25%5C%5E%60%21%3Ffoo%3Dbar%23id ' ,
335
- $ this ->getGenerator ($ routes )->generate ('test ' , array (
336
- 'varpath ' => $ chars ,
337
- 'query ' => $ chars ,
338
- ))
339
- );
342
+ $ this ->assertSame ($ expectedPath , $ this ->getGenerator ($ routes )->generate ('test ' , array (
343
+ 'varpath ' => $ chars ,
344
+ 'query ' => $ chars ,
345
+ )));
340
346
}
341
347
342
348
public function testEncodingOfRelativePathSegments ()
0 commit comments