Support for PATCH method in forms

This commit is contained in:
Lars Strojny 2012-01-24 19:46:37 +01:00
parent 06da573d04
commit 2dd4bf1283
3 changed files with 19 additions and 5 deletions

View File

@ -582,6 +582,7 @@ class Form implements \IteratorAggregate, FormInterface
case 'POST':
case 'PUT':
case 'DELETE':
case 'PATCH':
if ('' === $this->getName()) {
$data = array_replace_recursive(
$request->request->all(),

View File

@ -823,6 +823,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
array('POST'),
array('PUT'),
array('DELETE'),
array('PATCH'),
);
}

View File

@ -585,7 +585,19 @@ class RequestTest extends \PHPUnit_Framework_TestCase
);
}
public function testCreateFromGlobals()
public static function overloadedMethodProvider()
{
return array(
array('PUT'),
array('DELETE'),
array('PATCH'),
);
}
/**
* @dataProvider overloadedMethodProvider
*/
public function testCreateFromGlobals($method)
{
$_GET['foo1'] = 'bar1';
$_POST['foo2'] = 'bar2';
@ -602,19 +614,19 @@ class RequestTest extends \PHPUnit_Framework_TestCase
unset($_GET['foo1'], $_POST['foo2'], $_COOKIE['foo3'], $_FILES['foo4'], $_SERVER['foo5']);
$_SERVER['REQUEST_METHOD'] = 'PUT';
$_SERVER['REQUEST_METHOD'] = $method;
$_SERVER['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
$request = RequestContentProxy::createFromGlobals();
$this->assertEquals('PUT', $request->getMethod());
$this->assertEquals($method, $request->getMethod());
$this->assertEquals('mycontent', $request->request->get('content'));
unset($_SERVER['REQUEST_METHOD'], $_SERVER['CONTENT_TYPE']);
$_POST['_method'] = 'PUT';
$_POST['_method'] = $method;
$_POST['foo6'] = 'bar6';
$_SERVER['REQUEST_METHOD'] = 'POST';
$request = Request::createFromGlobals();
$this->assertEquals('PUT', $request->getMethod());
$this->assertEquals($method, $request->getMethod());
$this->assertEquals('bar6', $request->request->get('foo6'));
unset($_POST['_method'], $_POST['foo6'], $_SERVER['REQUEST_METHOD']);