From 8c9ccf6bc20337b98d685ff7bcc0eaa8a73e3189 Mon Sep 17 00:00:00 2001 From: Lukas Kahwe Smith Date: Thu, 18 Aug 2011 19:10:51 +0200 Subject: [PATCH] added more tests for Request::createFromGlobals() --- .../Component/HttpFoundation/RequestTest.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php b/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php index d401593c171b..928edae27126 100644 --- a/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php +++ b/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php @@ -581,6 +581,23 @@ public function testCreateFromGlobals() $this->assertEquals('bar5', $request->server->get('foo5'), '::fromGlobals() uses values from $_SERVER'); unset($_GET['foo1'], $_POST['foo2'], $_COOKIE['foo3'], $_FILES['foo4'], $_SERVER['foo5']); + + $_SERVER['REQUEST_METHOD'] = 'PUT'; + $_SERVER['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'; + $request = RequestContentProxy::createFromGlobals(); + $this->assertEquals('PUT', $request->getMethod()); + $this->assertEquals('mycontent', $request->request->get('content')); + + unset($_SERVER['REQUEST_METHOD'], $_SERVER['CONTENT_TYPE']); + + $_POST['_method'] = 'PUT'; + $_POST['foo6'] = 'bar6'; + $_SERVER['REQUEST_METHOD'] = 'POST'; + $request = Request::createFromGlobals(); + $this->assertEquals('PUT', $request->getMethod()); + $this->assertEquals('bar6', $request->request->get('foo6')); + + unset($_POST['_method'], $_POST['foo6'], $_SERVER['REQUEST_METHOD']); } public function testOverrideGlobals() @@ -797,3 +814,11 @@ public function testToString() $this->assertContains('Accept-Language: zh, en-us; q=0.8, en; q=0.6', $request->__toString()); } } + +class RequestContentProxy extends Request +{ + public function getContent($asResource = false) + { + return http_build_query(array('_method' => 'PUT', 'content' => 'mycontent')); + } +}