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);
}