ServerRequest::getServerRequest reads method, request target, and protocol version from request.
This commit is contained in:
parent
963e1acd58
commit
79be20c826
|
|
@ -8,11 +8,11 @@ use Psr\Http\Message\UriInterface;
|
|||
class Request extends Message implements RequestInterface
|
||||
{
|
||||
/** @var string */
|
||||
private $method = "GET";
|
||||
protected $method = "GET";
|
||||
/** @var string */
|
||||
private $requestTarget;
|
||||
protected $requestTarget;
|
||||
/** @var UriInterface */
|
||||
private $uri;
|
||||
protected $uri;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Psr\Http\Message\RequestInterface
|
||||
|
|
|
|||
|
|
@ -299,6 +299,16 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
if (isset($_SERVER["QUERY_STRING"])) {
|
||||
parse_str($_SERVER["QUERY_STRING"], $this->queryParams);
|
||||
}
|
||||
if (isset($_SERVER["SERVER_PROTOCOL"]) && $_SERVER["SERVER_PROTOCOL"] === "HTTP/1.0") {
|
||||
// The default is 1.1, so only update if 1.0
|
||||
$this->protcolVersion = "1.0";
|
||||
}
|
||||
if (isset($_SERVER["REQUEST_METHOD"])) {
|
||||
$this->method = $_SERVER["REQUEST_METHOD"];
|
||||
}
|
||||
if (isset($_SERVER["REQUEST_URI"])) {
|
||||
$this->requestTarget = $_SERVER["REQUEST_URI"];
|
||||
}
|
||||
$headers = $this->getServerRequestHeaders();
|
||||
foreach ($headers as $key => $value) {
|
||||
$this->headers[$key] = $value;
|
||||
|
|
|
|||
|
|
@ -321,6 +321,84 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
$headers = $request->getHeaders();
|
||||
$this->assertNotNull($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::readFromServerRequest
|
||||
* @preserveGlobalState disabled
|
||||
* @dataProvider protocolVersionProvider
|
||||
*/
|
||||
public function testReadsProtocolVersionFromFromRequest($expectedProtocol, $serverProtocol)
|
||||
{
|
||||
$_SERVER = [
|
||||
"HTTP_HOST" => "localhost",
|
||||
"SERVER_PROTOCOL" => $serverProtocol,
|
||||
"REQUEST_METHOD" => "GET"
|
||||
];
|
||||
$request = ServerRequest::getServerRequest();
|
||||
$this->assertEquals($expectedProtocol, $request->getProtocolVersion());
|
||||
}
|
||||
|
||||
public function protocolVersionProvider()
|
||||
{
|
||||
return [
|
||||
["1.1", "HTTP/1.1"],
|
||||
["1.0", "HTTP/1.0"],
|
||||
["1.1", null],
|
||||
["1.1", "INVALID"]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::readFromServerRequest
|
||||
* @preserveGlobalState disabled
|
||||
* @dataProvider methodProvider
|
||||
*/
|
||||
public function testReadsMethodFromFromRequest($exectedMethod, $serverMethod)
|
||||
{
|
||||
$_SERVER = [
|
||||
"HTTP_HOST" => "localhost",
|
||||
"REQUEST_METHOD" => $serverMethod
|
||||
];
|
||||
$request = ServerRequest::getServerRequest();
|
||||
$this->assertEquals($exectedMethod, $request->getMethod());
|
||||
}
|
||||
|
||||
public function methodProvider()
|
||||
{
|
||||
return [
|
||||
["GET", "GET"],
|
||||
["POST", "POST"],
|
||||
["DELETE", "DELETE"],
|
||||
["PUT", "PUT"],
|
||||
["OPTIONS", "OPTIONS"],
|
||||
["GET", null]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::readFromServerRequest
|
||||
* @preserveGlobalState disabled
|
||||
* @dataProvider requestTargetProvider
|
||||
*/
|
||||
public function testReadsRequestTargetFromServer($exectedRequestTarget, $serverRequestUri)
|
||||
{
|
||||
$_SERVER = [
|
||||
"HTTP_HOST" => "localhost",
|
||||
"REQUEST_URI" => $serverRequestUri
|
||||
];
|
||||
$request = ServerRequest::getServerRequest();
|
||||
$this->assertEquals($exectedRequestTarget, $request->getRequestTarget());
|
||||
}
|
||||
|
||||
public function requestTargetProvider()
|
||||
{
|
||||
return [
|
||||
["/", "/"],
|
||||
["/hello", "/hello"],
|
||||
["/my/path.txt", "/my/path.txt"],
|
||||
["/", null]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue