Extends
lithium\test\Unit
Tests that requests can be routed based on HTTP method verbs or HTTP headers.
Source
public function testHeaderAndMethodBasedRouting() {
$parameters = array('controller' => 'users', 'action' => 'edit');
$route = new Route(array(
'template' => '/',
'params' => $parameters + array('http:method' => 'POST')
));
$request = new Request(array('env' => array('HTTP_METHOD' => 'GET')));
$request->url = '/';
$this->assertFalse($route->parse($request));
$request = new Request(array('env' => array('REQUEST_METHOD' => 'POST')));
$request->url = '/';
$this->assertEqual($parameters, $route->parse($request)->params);
$route = new Route(array(
'template' => '/{:controller}/{:id:[0-9]+}',
'params' => $parameters + array('http:method' => array('POST', 'PUT'))
));
$request = new Request(array('env' => array('REQUEST_METHOD' => 'PUT')));
$request->url = '/users/abc';
$this->assertFalse($route->parse($request));
$request->url = '/users/54';
$this->assertEqual($parameters + array('id' => '54'), $route->parse($request)->params);
}