Merge pull request #4537 from chillu/pulls/urlsegment-forward-slashes

Remove forward slash in URLs in multibyte mode
This commit is contained in:
Loz Calver 2015-08-26 16:18:53 +01:00
commit 4ec6210c98
2 changed files with 10 additions and 0 deletions

View File

@ -32,6 +32,7 @@ class URLSegmentFilter extends Object {
'/\s|\+/u' => '-', // remove whitespace/plus
'/[_.]+/u' => '-', // underscores and dots to dashes
'/[^A-Za-z0-9\-]+/u' => '', // remove non-ASCII chars, only allow alphanumeric and dashes
'/\/+/u' => '-', // remove forward slashes in case multibyte is allowed (and ASCII chars aren't removed)
'/[\-]{2,}/u' => '-', // remove duplicate dashes
'/^[\-]+/u' => '', // Remove all leading dashes
'/[\-]+$/u' => '' // Remove all trailing dashes

View File

@ -55,6 +55,15 @@ class URLSegmentFilterTest extends SapphireTest {
);
}
public function testReplacesForwardSlashesWithAllowMultiByteOption() {
$f = new URLSegmentFilter();
$f->setAllowMultibyte(true);
$this->assertEquals(
urlencode('this-that'),
$f->filter('this/that')
);
}
public function testReplacements() {
$f = new URLSegmentFilter();
$this->assertEquals(