Extends
lithium\test\Unit
Tests that URLs specified as "Controller::action" and including additional parameters are
interpreted properly.
Source
public function testEmbeddedStringActions() {
Router::connect('/logout/{:id:[0-9]{5,6}}', array(
'controller' => 'sessions', 'action' => 'destroy', 'id' => null
));
Router::connect('/{:controller}/{:action}');
Router::connect('/{:controller}/{:action}/{:id:[0-9]+}', array('id' => null));
$result = Router::match("Sessions::create");
$this->assertEqual('/sessions/create', $result);
$result = Router::match(array("Sessions::create"));
$this->assertEqual('/sessions/create', $result);
$result = Router::match(array("Sessions::destroy", 'id' => '03815'));
$this->assertEqual('/logout/03815', $result);
$result = Router::match("Posts::index");
$this->assertEqual('/posts', $result);
$ex = "No parameter match found for URL ";
$ex .= "`('controller' => 'sessions', 'action' => 'create', 'id' => 'foo')`.";
$this->expectException($ex);
$result = Router::match(array("Sessions::create", 'id' => 'foo'));
}