Skip to content

Commit

Permalink
Merge pull request #995 from zoghal/fix-utf8-pattern-in-router
Browse files Browse the repository at this point in the history
fixed utf-8 pattern in router option
  • Loading branch information
markstory committed Dec 2, 2012
2 parents c1551d9 + d5283af commit ab07eba
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/Cake/Routing/Route/CakeRoute.php
Expand Up @@ -182,7 +182,7 @@ public function parse($url) {
if (!$this->compiled()) {
$this->compile();
}
if (!preg_match($this->_compiledRoute, $url, $route)) {
if (!preg_match($this->_compiledRoute, urldecode($url), $route)) {
return false;
}
foreach ($this->defaults as $key => $val) {
Expand Down
24 changes: 24 additions & 0 deletions lib/Cake/Test/Case/Routing/Route/CakeRouteTest.php
Expand Up @@ -880,4 +880,28 @@ public function testParseTrailingUTF8() {
$this->assertEquals($expected, $result);
}


/**
* test that utf-8 patterns work for :section
*
* @return void
*/
public function testUTF8PatternOnSection() {
$route = new CakeRoute(
'/:section',
array('plugin' => 'blogs', 'controller' => 'posts' , 'action' => 'index' ),
array(
'persist' => array('section'),
'section' => 'آموزش|weblog'
)
);

$result = $route->parse('/%D8%A2%D9%85%D9%88%D8%B2%D8%B4');
$expected = array('section' => 'آموزش', 'plugin' => 'blogs', 'controller' => 'posts', 'action' => 'index', 'pass' => array(), 'named' => array());
$this->assertEquals($expected, $result);

$result = $route->parse('/weblog');
$expected = array('section' => 'weblog', 'plugin' => 'blogs', 'controller' => 'posts', 'action' => 'index', 'pass' => array(), 'named' => array());
$this->assertEquals($expected, $result);
}
}

0 comments on commit ab07eba

Please sign in to comment.