Permalink
Browse files

Merge pull request #995 from zoghal/fix-utf8-pattern-in-router

fixed utf-8 pattern in router option
  • Loading branch information...
2 parents c1551d9 + d5283af commit ab07eba4aff1b11d8af262966d5bcba16bab3197 @markstory markstory committed Dec 2, 2012
Showing with 25 additions and 1 deletion.
  1. +1 −1 lib/Cake/Routing/Route/CakeRoute.php
  2. +24 −0 lib/Cake/Test/Case/Routing/Route/CakeRouteTest.php
@@ -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) {
@@ -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.