Update to match revisions to PSR-7
This commit is contained in:
parent
79be20c826
commit
4dba068f3d
|
|
@ -4,6 +4,7 @@ namespace WellRESTed\Message;
|
||||||
|
|
||||||
use Psr\Http\Message\MessageInterface;
|
use Psr\Http\Message\MessageInterface;
|
||||||
use Psr\Http\Message\StreamableInterface;
|
use Psr\Http\Message\StreamableInterface;
|
||||||
|
use WellRESTed\Stream\NullStream;
|
||||||
|
|
||||||
abstract class Message implements MessageInterface
|
abstract class Message implements MessageInterface
|
||||||
{
|
{
|
||||||
|
|
@ -17,6 +18,7 @@ abstract class Message implements MessageInterface
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->headers = new HeaderCollection();
|
$this->headers = new HeaderCollection();
|
||||||
|
$this->body = new NullStream();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
|
@ -101,23 +103,49 @@ abstract class Message implements MessageInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a header by the given case-insensitive name, as a string.
|
* Retrieves a message header value by the given case-insensitive name.
|
||||||
|
*
|
||||||
|
* This method returns an array of all the header values of the given
|
||||||
|
* case-insensitive header name.
|
||||||
|
*
|
||||||
|
* If the header does not appear in the message, this method MUST return an
|
||||||
|
* empty array.
|
||||||
|
*
|
||||||
|
* @param string $name Case-insensitive header field name.
|
||||||
|
* @return string[] An array of string values as provided for the given
|
||||||
|
* header. If the header does not appear in the message, this method MUST
|
||||||
|
* return an empty array.
|
||||||
|
*/
|
||||||
|
public function getHeader($name)
|
||||||
|
{
|
||||||
|
if (isset($this->headers[$name])) {
|
||||||
|
return $this->headers[$name];
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the line for a single header, with the header values as a
|
||||||
|
* comma-separated string.
|
||||||
*
|
*
|
||||||
* This method returns all of the header values of the given
|
* This method returns all of the header values of the given
|
||||||
* case-insensitive header name as a string concatenated together using
|
* case-insensitive header name as a string concatenated together using
|
||||||
* a comma.
|
* a comma.
|
||||||
*
|
*
|
||||||
* NOTE: Not all header values may be appropriately represented using
|
* NOTE: Not all header values may be appropriately represented using
|
||||||
* comma concatenation. For such headers, use getHeaderLines() instead
|
* comma concatenation. For such headers, use getHeader() instead
|
||||||
* and supply your own delimiter when concatenating.
|
* and supply your own delimiter when concatenating.
|
||||||
*
|
*
|
||||||
* If the header did not appear in the message, this method should return
|
* If the header does not appear in the message, this method MUST return
|
||||||
* a null value.
|
* a null value.
|
||||||
*
|
*
|
||||||
* @param string $name Case-insensitive header field name.
|
* @param string $name Case-insensitive header field name.
|
||||||
* @return string|null
|
* @return string|null A string of values as provided for the given header
|
||||||
|
* concatenated together using a comma. If the header does not appear in
|
||||||
|
* the message, this method MUST return a null value.
|
||||||
*/
|
*/
|
||||||
public function getHeader($name)
|
public function getHeaderLine($name)
|
||||||
{
|
{
|
||||||
if (isset($this->headers[$name])) {
|
if (isset($this->headers[$name])) {
|
||||||
return join(", ", $this->headers[$name]);
|
return join(", ", $this->headers[$name]);
|
||||||
|
|
@ -126,24 +154,6 @@ abstract class Message implements MessageInterface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves a header by the given case-insensitive name as an array of strings.
|
|
||||||
*
|
|
||||||
* If the header did not appear in the message, this method should return an
|
|
||||||
* empty array.
|
|
||||||
*
|
|
||||||
* @param string $name Case-insensitive header field name.
|
|
||||||
* @return string[]
|
|
||||||
*/
|
|
||||||
public function getHeaderLines($name)
|
|
||||||
{
|
|
||||||
if (isset($this->headers[$name])) {
|
|
||||||
return $this->headers[$name];
|
|
||||||
} else {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new instance with the provided header, replacing any existing
|
* Create a new instance with the provided header, replacing any existing
|
||||||
* values of any headers with the same case-insensitive name.
|
* values of any headers with the same case-insensitive name.
|
||||||
|
|
|
||||||
|
|
@ -50,18 +50,20 @@ class Request extends Message implements RequestInterface
|
||||||
* This method acts exactly like MessageInterface::getHeader(), with
|
* This method acts exactly like MessageInterface::getHeader(), with
|
||||||
* one behavioral change: if the Host header is requested, but has
|
* one behavioral change: if the Host header is requested, but has
|
||||||
* not been previously set, the method MUST attempt to pull the host
|
* not been previously set, the method MUST attempt to pull the host
|
||||||
* segment of the composed URI, if present.
|
* component of the composed URI, if present.
|
||||||
*
|
*
|
||||||
* @see MessageInterface::getHeader()
|
* @see MessageInterface::getHeader()
|
||||||
* @see UriInterface::getHost()
|
* @see UriInterface::getHost()
|
||||||
* @param string $name Case-insensitive header field name.
|
* @param string $name Case-insensitive header field name.
|
||||||
* @return string
|
* @return string[] An array of string values as provided for the given
|
||||||
|
* header. If the header does not appear in the message, this method MUST
|
||||||
|
* return an empty array.
|
||||||
*/
|
*/
|
||||||
public function getHeader($name)
|
public function getHeader($name)
|
||||||
{
|
{
|
||||||
$header = parent::getHeader($name);
|
$header = parent::getHeader($name);
|
||||||
if ($header === null && (strtolower($name) === "host") && isset($this->uri)) {
|
if ($header === [] && (strtolower($name) === "host") && isset($this->uri)) {
|
||||||
$header = $this->uri->getHost();
|
$header = [$this->uri->getHost()];
|
||||||
}
|
}
|
||||||
return $header;
|
return $header;
|
||||||
}
|
}
|
||||||
|
|
@ -70,25 +72,29 @@ class Request extends Message implements RequestInterface
|
||||||
* Extends MessageInterface::getHeaderLines() to provide request-specific
|
* Extends MessageInterface::getHeaderLines() to provide request-specific
|
||||||
* behavior.
|
* behavior.
|
||||||
*
|
*
|
||||||
* Retrieves a header by the given case-insensitive name as an array of strings.
|
* This method returns all of the header values of the given
|
||||||
|
* case-insensitive header name as a string concatenated together using
|
||||||
|
* a comma.
|
||||||
*
|
*
|
||||||
* This method acts exactly like MessageInterface::getHeaderLines(), with
|
* This method acts exactly like MessageInterface::getHeaderLines(), with
|
||||||
* one behavioral change: if the Host header is requested, but has
|
* one behavioral change: if the Host header is requested, but has
|
||||||
* not been previously set, the method MUST attempt to pull the host
|
* not been previously set, the method MUST attempt to pull the host
|
||||||
* segment of the composed URI, if present.
|
* component of the composed URI, if present.
|
||||||
*
|
*
|
||||||
* @see MessageInterface::getHeaderLines()
|
* @see MessageInterface::getHeaderLine()
|
||||||
* @see UriInterface::getHost()
|
* @see UriInterface::getHost()
|
||||||
* @param string $name Case-insensitive header field name.
|
* @param string $name Case-insensitive header field name.
|
||||||
* @return string[]
|
* @return string|null A string of values as provided for the given header
|
||||||
|
* concatenated together using a comma. If the header does not appear in
|
||||||
|
* the message, this method MUST return a null value.
|
||||||
*/
|
*/
|
||||||
public function getHeaderLines($name)
|
public function getHeaderLine($name)
|
||||||
{
|
{
|
||||||
$headerLines = parent::getHeaderLines($name);
|
$headerLine = parent::getHeaderLine($name);
|
||||||
if (!$headerLines && (strtolower($name) === "host") && isset($this->uri)) {
|
if ($headerLine === null && (strtolower($name) === "host") && isset($this->uri)) {
|
||||||
$headerLines = [$this->uri->getHost()];
|
$headerLine = $this->uri->getHost();
|
||||||
}
|
}
|
||||||
return $headerLines;
|
return $headerLine;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -193,17 +199,31 @@ class Request extends Message implements RequestInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new instance with the provided URI.
|
* Returns an instance with the provided URI.
|
||||||
|
*
|
||||||
|
* This method will update the Host header of the returned request by
|
||||||
|
* default if the URI contains a host component. If the URI does not
|
||||||
|
* contain a host component, any pre-existing Host header will be carried
|
||||||
|
* over to the returned request.
|
||||||
|
*
|
||||||
|
* You can opt-in to preserving the original state of the Host header by
|
||||||
|
* setting `$preserveHost` to `true`. When `$preserveHost` is set to
|
||||||
|
* `true`, the returned request will not update the Host header of the
|
||||||
|
* returned message -- even if the message contains no Host header. This
|
||||||
|
* means that a call to `getHeader('Host')` on the original request MUST
|
||||||
|
* equal the return value of a call to `getHeader('Host')` on the returned
|
||||||
|
* request.
|
||||||
*
|
*
|
||||||
* This method MUST be implemented in such a way as to retain the
|
* This method MUST be implemented in such a way as to retain the
|
||||||
* immutability of the message, and MUST return a new instance that has the
|
* immutability of the message, and MUST return an instance that has the
|
||||||
* new UriInterface instance.
|
* new UriInterface instance.
|
||||||
*
|
*
|
||||||
* @link http://tools.ietf.org/html/rfc3986#section-4.3
|
* @link http://tools.ietf.org/html/rfc3986#section-4.3
|
||||||
* @param UriInterface $uri New request URI to use.
|
* @param UriInterface $uri New request URI to use.
|
||||||
|
* @param bool $preserveHost Preserve the original state of the Host header.
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function withUri(UriInterface $uri)
|
public function withUri(UriInterface $uri, $preserveHost = false)
|
||||||
{
|
{
|
||||||
$request = clone $this;
|
$request = clone $this;
|
||||||
$request->uri = $uri;
|
$request->uri = $uri;
|
||||||
|
|
|
||||||
|
|
@ -316,7 +316,7 @@ class ServerRequest extends Request implements ServerRequestInterface
|
||||||
$this->body = $this->getStreamForBody();
|
$this->body = $this->getStreamForBody();
|
||||||
|
|
||||||
$contentType = $this->getHeader("Content-type");
|
$contentType = $this->getHeader("Content-type");
|
||||||
if ($contentType === "application/x-www-form-urlencoded" || $contentType === "multipart/form-data") {
|
if ($contentType === ["application/x-www-form-urlencoded"] || $contentType === ["multipart/form-data"]) {
|
||||||
$this->parsedBody = $_POST;
|
$this->parsedBody = $_POST;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,130 +2,102 @@
|
||||||
|
|
||||||
namespace WellRESTed\Test\Unit\Message;
|
namespace WellRESTed\Test\Unit\Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @uses WellRESTed\Message\Message
|
||||||
|
* @uses WellRESTed\Message\HeaderCollection
|
||||||
|
*/
|
||||||
class MessageTest extends \PHPUnit_Framework_TestCase
|
class MessageTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::__construct
|
* @covers WellRESTed\Message\Message::__construct
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testCreatesInstance()
|
public function testCreatesInstance()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertNotNull($message);
|
$this->assertNotNull($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getProtocolVersion
|
* @covers WellRESTed\Message\Message::getProtocolVersion
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testReturnsProtocolVersion1Point1ByDefault()
|
public function testReturnsProtocolVersion1Point1ByDefault()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertEquals("1.1", $message->getProtocolVersion());
|
$this->assertEquals("1.1", $message->getProtocolVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getProtocolVersion
|
* @covers WellRESTed\Message\Message::getProtocolVersion
|
||||||
* @uses WellRESTed\Message\Message::withProtocolVersion
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testReturnsProtocolVersion()
|
public function testReturnsProtocolVersion()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withProtocolVersion("1.0");
|
$message = $message->withProtocolVersion("1.0");
|
||||||
$this->assertEquals("1.0", $message->getProtocolVersion());
|
$this->assertEquals("1.0", $message->getProtocolVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withProtocolVersion
|
* @covers WellRESTed\Message\Message::withProtocolVersion
|
||||||
* @uses WellRESTed\Message\Message::getProtocolVersion
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testReplacesProtocolVersion()
|
public function testReplacesProtocolVersion()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withProtocolVersion("1.0");
|
$message = $message->withProtocolVersion("1.0");
|
||||||
$this->assertEquals("1.0", $message->getProtocolVersion());
|
$this->assertEquals("1.0", $message->getProtocolVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withHeader
|
* @covers WellRESTed\Message\Message::withHeader
|
||||||
* @uses WellRESTed\Message\Message::getHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithHeaderSetsHeader()
|
public function testWithHeaderSetsHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Content-type", "application/json");
|
$message = $message->withHeader("Content-type", "application/json");
|
||||||
$this->assertEquals("application/json", $message->getHeader("Content-type"));
|
$this->assertEquals(["application/json"], $message->getHeader("Content-type"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withHeader
|
* @covers WellRESTed\Message\Message::withHeader
|
||||||
* @uses WellRESTed\Message\Message::getHeaderLines
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithHeaderReplacesValue()
|
public function testWithHeaderReplacesValue()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
||||||
$message = $message->withHeader("Set-Cookie", "dog=Bear");
|
$message = $message->withHeader("Set-Cookie", "dog=Bear");
|
||||||
$cookies = $message->getHeaderLines("Set-Cookie");
|
$cookies = $message->getHeader("Set-Cookie");
|
||||||
$this->assertNotContains("cat=Molly", $cookies);
|
$this->assertNotContains("cat=Molly", $cookies);
|
||||||
$this->assertContains("dog=Bear", $cookies);
|
$this->assertContains("dog=Bear", $cookies);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withAddedHeader
|
* @covers WellRESTed\Message\Message::withAddedHeader
|
||||||
* @uses WellRESTed\Message\Message::getHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithAddedHeaderSetsHeader()
|
public function testWithAddedHeaderSetsHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withAddedHeader("Content-type", "application/json");
|
$message = $message->withAddedHeader("Content-type", "application/json");
|
||||||
$this->assertEquals("application/json", $message->getHeader("Content-type"));
|
$this->assertEquals(["application/json"], $message->getHeader("Content-type"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withAddedHeader
|
* @covers WellRESTed\Message\Message::withAddedHeader
|
||||||
* @uses WellRESTed\Message\Message::getHeaderLines
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithAddedHeaderAppendsValue()
|
public function testWithAddedHeaderAppendsValue()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withAddedHeader("Set-Cookie", "cat=Molly");
|
$message = $message->withAddedHeader("Set-Cookie", "cat=Molly");
|
||||||
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
||||||
$cookies = $message->getHeaderLines("Set-Cookie");
|
$cookies = $message->getHeader("Set-Cookie");
|
||||||
$this->assertContains("cat=Molly", $cookies);
|
$this->assertContains("cat=Molly", $cookies);
|
||||||
$this->assertContains("dog=Bear", $cookies);
|
$this->assertContains("dog=Bear", $cookies);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::withoutHeader
|
* @covers WellRESTed\Message\Message::withoutHeader
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::hasHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithoutHeaderRemovesHeader()
|
public function testWithoutHeaderRemovesHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Content-type", "application/json");
|
$message = $message->withHeader("Content-type", "application/json");
|
||||||
$message = $message->withoutHeader("Content-type");
|
$message = $message->withoutHeader("Content-type");
|
||||||
$this->assertFalse($message->hasHeader("Content-type"));
|
$this->assertFalse($message->hasHeader("Content-type"));
|
||||||
|
|
@ -133,110 +105,79 @@ class MessageTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeader
|
* @covers WellRESTed\Message\Message::getHeader
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderReturnsSingleHeader()
|
public function testGetHeaderReturnsSingleHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withAddedHeader("Content-type", "application/json");
|
$message = $message->withAddedHeader("Content-type", "application/json");
|
||||||
$this->assertEquals("application/json", $message->getHeader("Content-type"));
|
$this->assertEquals(["application/json"], $message->getHeader("Content-type"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeader
|
* @covers WellRESTed\Message\Message::getHeaderLine
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderReturnsMultipleHeadersJoinedByCommas()
|
public function testGetHeaderReturnsMultipleHeadersJoinedByCommas()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withAddedHeader("X-name", "cat=Molly");
|
$message = $message->withAddedHeader("X-name", "cat=Molly");
|
||||||
$message = $message->withAddedHeader("X-name", "dog=Bear");
|
$message = $message->withAddedHeader("X-name", "dog=Bear");
|
||||||
$this->assertEquals("cat=Molly, dog=Bear", $message->getHeader("X-name"));
|
$this->assertEquals("cat=Molly, dog=Bear", $message->getHeaderLine("X-name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\Message::getHeaderLine
|
||||||
|
*/
|
||||||
|
public function testGetHeaderLineReturnsNullForUnsetHeader()
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
|
$this->assertNull($message->getHeaderLine("X-not-set"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeader
|
* @covers WellRESTed\Message\Message::getHeader
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderReturnsNullForUnsetHeader()
|
public function testGetHeaderReturnsMultipleValuesForHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertNull($message->getHeader("X-not-set"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @covers WellRESTed\Message\Message::getHeaderLines
|
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
|
||||||
public function testGetHeaderLinesReturnsMultipleValuesForHeader()
|
|
||||||
{
|
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
|
||||||
$message = $message->withAddedHeader("X-name", "cat=Molly");
|
$message = $message->withAddedHeader("X-name", "cat=Molly");
|
||||||
$message = $message->withAddedHeader("X-name", "dog=Bear");
|
$message = $message->withAddedHeader("X-name", "dog=Bear");
|
||||||
$this->assertEquals(["cat=Molly", "dog=Bear"], $message->getHeaderLines("X-name"));
|
$this->assertEquals(["cat=Molly", "dog=Bear"], $message->getHeader("X-name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeaderLines
|
* @covers WellRESTed\Message\Message::getHeader
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderLinesReturnsEmptyArrayForUnsetHeader()
|
public function testGetHeaderReturnsEmptyArrayForUnsetHeader()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertEquals([], $message->getHeaderLines("X-name"));
|
$this->assertEquals([], $message->getHeader("X-name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::hasHeader
|
* @covers WellRESTed\Message\Message::hasHeader
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testHasHeaderReturnsTrueWhenHeaderIsSet()
|
public function testHasHeaderReturnsTrueWhenHeaderIsSet()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Content-type", "application/json");
|
$message = $message->withHeader("Content-type", "application/json");
|
||||||
$this->assertTrue($message->hasHeader("Content-type"));
|
$this->assertTrue($message->hasHeader("Content-type"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::hasHeader
|
* @covers WellRESTed\Message\Message::hasHeader
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testHasHeaderReturnsFalseWhenHeaderIsNotSet()
|
public function testHasHeaderReturnsFalseWhenHeaderIsNotSet()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertFalse($message->hasHeader("Content-type"));
|
$this->assertFalse($message->hasHeader("Content-type"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeaders
|
* @covers WellRESTed\Message\Message::getHeaders
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeadersReturnOriginalHeaderNamesAsKeys()
|
public function testGetHeadersReturnOriginalHeaderNamesAsKeys()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
||||||
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
||||||
$message = $message->withHeader("Content-type", "application/json");
|
$message = $message->withHeader("Content-type", "application/json");
|
||||||
|
|
@ -253,15 +194,10 @@ class MessageTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getHeaders
|
* @covers WellRESTed\Message\Message::getHeaders
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::withAddedHeader
|
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeadersReturnOriginalHeaderNamesAndValues()
|
public function testGetHeadersReturnOriginalHeaderNamesAndValues()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
$message = $message->withHeader("Set-Cookie", "cat=Molly");
|
||||||
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
$message = $message->withAddedHeader("Set-Cookie", "dog=Bear");
|
||||||
$message = $message->withHeader("Content-type", "application/json");
|
$message = $message->withHeader("Content-type", "application/json");
|
||||||
|
|
@ -288,45 +224,37 @@ class MessageTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getBody
|
* @covers WellRESTed\Message\Message::getBody
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
* @uses WellRESTed\Stream\NullStream
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetBodyReturnsNullByDefalt()
|
public function testGetBodyReturnsEmptyStreamByDefault()
|
||||||
{
|
{
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$this->assertNull($message->getBody());
|
$this->assertEquals("", (string) $message->getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::getBody
|
* @covers WellRESTed\Message\Message::getBody
|
||||||
* @covers WellRESTed\Message\Message::withBody
|
* @covers WellRESTed\Message\Message::withBody
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::__clone
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetBodyReturnsAttachedStream()
|
public function testGetBodyReturnsAttachedStream()
|
||||||
{
|
{
|
||||||
$stream = $this->prophesize("\\Psr\\Http\\Message\\StreamableInterface");
|
$stream = $this->prophesize('\Psr\Http\Message\StreamableInterface');
|
||||||
$stream = $stream->reveal();
|
$stream = $stream->reveal();
|
||||||
|
|
||||||
$message = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message = $message->withBody($stream);
|
$message = $message->withBody($stream);
|
||||||
$this->assertSame($stream, $message->getBody());
|
$this->assertSame($stream, $message->getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Message::__clone
|
* @covers WellRESTed\Message\Message::__clone
|
||||||
* @uses WellRESTed\Message\Message::__construct
|
|
||||||
* @uses WellRESTed\Message\Message::withHeader
|
|
||||||
* @uses WellRESTed\Message\Message::getHeader
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testCloneMakesDeepCopyOfHeaders()
|
public function testCloneMakesDeepCopyOfHeaders()
|
||||||
{
|
{
|
||||||
$message1 = $this->getMockForAbstractClass("\\WellRESTed\\Message\\Message");
|
$message1 = $this->getMockForAbstractClass('\WellRESTed\Message\Message');
|
||||||
$message1 = $message1->withHeader("Content-type", "text/plain");
|
$message1 = $message1->withHeader("Content-type", "text/plain");
|
||||||
$message2 = $message1->withHeader("Content-type", "application/json");
|
$message2 = $message1->withHeader("Content-type", "application/json");
|
||||||
$this->assertEquals("text/plain", $message1->getHeader("Content-type"));
|
$this->assertEquals(["text/plain"], $message1->getHeader("Content-type"));
|
||||||
$this->assertEquals("application/json", $message2->getHeader("Content-type"));
|
$this->assertEquals(["application/json"], $message2->getHeader("Content-type"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,20 @@ namespace WellRESTed\Test\Unit\Message;
|
||||||
|
|
||||||
use WellRESTed\Message\Request;
|
use WellRESTed\Message\Request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @uses WellRESTed\Message\Request
|
||||||
|
* @uses WellRESTed\Message\Request
|
||||||
|
* @uses WellRESTed\Message\Message
|
||||||
|
* @uses WellRESTed\Message\HeaderCollection
|
||||||
|
*/
|
||||||
class RequestTest extends \PHPUnit_Framework_TestCase
|
class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeaders
|
* @covers WellRESTed\Message\Request::getHeaders
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeadersReturnsHostFromUri()
|
public function testGetHeadersReturnsHostFromUri()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhost");
|
$uri->getHost()->willReturn("localhost");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
|
|
@ -27,15 +29,11 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeaders
|
* @covers WellRESTed\Message\Request::getHeaders
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeadersPrefersExplicitHostHeader()
|
public function testGetHeadersPrefersExplicitHostHeader()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhot");
|
$uri->getHost()->willReturn("localhost");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request = $request->withUri($uri->reveal());
|
$request = $request->withUri($uri->reveal());
|
||||||
|
|
@ -47,82 +45,60 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeader
|
* @covers WellRESTed\Message\Request::getHeader
|
||||||
* @uses WellRESTed\Message\Request::getRequestTarget
|
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderReturnsHostFromUri()
|
public function testGetHeaderReturnsHostFromUri()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhost");
|
$uri->getHost()->willReturn("localhost");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request = $request->withUri($uri->reveal());
|
$request = $request->withUri($uri->reveal());
|
||||||
$this->assertEquals("localhost", $request->getHeader("host"));
|
$this->assertEquals(["localhost"], $request->getHeader("host"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeader
|
* @covers WellRESTed\Message\Request::getHeader
|
||||||
* @uses WellRESTed\Message\Request::getRequestTarget
|
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderPrefersExplicitHostHeader()
|
public function testGetHeaderPrefersExplicitHostHeader()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhot");
|
$uri->getHost()->willReturn("localhot");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request = $request->withUri($uri->reveal());
|
$request = $request->withUri($uri->reveal());
|
||||||
$request = $request->withHeader("Host", "www.mysite.com");
|
$request = $request->withHeader("Host", "www.mysite.com");
|
||||||
$this->assertEquals("www.mysite.com", $request->getHeader("host"));
|
$this->assertEquals(["www.mysite.com"], $request->getHeader("host"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeaderLines
|
* @covers WellRESTed\Message\Request::getHeaderLine
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderLinesReturnsHostFromUri()
|
public function testGetHeaderLineReturnsHostFromUri()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhot");
|
$uri->getHost()->willReturn("localhost");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request = $request->withUri($uri->reveal());
|
$request = $request->withUri($uri->reveal());
|
||||||
$this->assertEquals(["localhot"], $request->getHeaderLines("host"));
|
$this->assertEquals("localhost", $request->getHeaderLine("host"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getHeaderLines
|
* @covers WellRESTed\Message\Request::getHeaderLine
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetHeaderLinesPrefersExplicitHostHeader()
|
public function testGetHeaderLinePrefersExplicitHostHeader()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getHost()->willReturn("localhot");
|
$uri->getHost()->willReturn("localhost");
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request = $request->withUri($uri->reveal());
|
$request = $request->withUri($uri->reveal());
|
||||||
$request = $request->withHeader("Host", "www.mysite.com");
|
$request = $request->withHeader("Host", "www.mysite.com");
|
||||||
$this->assertEquals(["www.mysite.com"], $request->getHeaderLines("host"));
|
$this->assertEquals("www.mysite.com", $request->getHeaderLine("host"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getRequestTarget
|
* @covers WellRESTed\Message\Request::getRequestTarget
|
||||||
* @uses WellRESTed\Message\Request::withRequestTarget
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetRequestTargetPrefersConreteRequestTarget()
|
public function testGetRequestTargetPrefersConreteRequestTarget()
|
||||||
{
|
{
|
||||||
|
|
@ -133,14 +109,10 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getRequestTarget
|
* @covers WellRESTed\Message\Request::getRequestTarget
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetRequestTargetUsesOriginFormOfUri()
|
public function testGetRequestTargetUsesOriginFormOfUri()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri->getPath()->willReturn("/my/path");
|
$uri->getPath()->willReturn("/my/path");
|
||||||
$uri->getQuery()->willReturn("cat=Molly&dog=Bear");
|
$uri->getQuery()->willReturn("cat=Molly&dog=Bear");
|
||||||
|
|
||||||
|
|
@ -151,8 +123,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getRequestTarget
|
* @covers WellRESTed\Message\Request::getRequestTarget
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetRequestTargetReturnsSlashByDefault()
|
public function testGetRequestTargetReturnsSlashByDefault()
|
||||||
{
|
{
|
||||||
|
|
@ -162,8 +132,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::getMethod
|
* @covers WellRESTed\Message\Request::getMethod
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testGetMethodReturnsGetByDefault()
|
public function testGetMethodReturnsGetByDefault()
|
||||||
{
|
{
|
||||||
|
|
@ -174,9 +142,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::withMethod
|
* @covers WellRESTed\Message\Request::withMethod
|
||||||
* @covers WellRESTed\Message\Request::getMethod
|
* @covers WellRESTed\Message\Request::getMethod
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithMethodCreatesNewInstance()
|
public function testWithMethodCreatesNewInstance()
|
||||||
{
|
{
|
||||||
|
|
@ -188,9 +153,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::withRequestTarget
|
* @covers WellRESTed\Message\Request::withRequestTarget
|
||||||
* @covers WellRESTed\Message\Request::getRequestTarget
|
* @covers WellRESTed\Message\Request::getRequestTarget
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithRequestTargetCreatesNewInstance()
|
public function testWithRequestTargetCreatesNewInstance()
|
||||||
{
|
{
|
||||||
|
|
@ -202,13 +164,10 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::withUri
|
* @covers WellRESTed\Message\Request::withUri
|
||||||
* @covers WellRESTed\Message\Request::getUri
|
* @covers WellRESTed\Message\Request::getUri
|
||||||
* @uses WellRESTed\Message\Request::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithUriCreatesNewInstance()
|
public function testWithUriCreatesNewInstance()
|
||||||
{
|
{
|
||||||
$uri = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri = $uri->reveal();
|
$uri = $uri->reveal();
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
|
|
@ -218,20 +177,13 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Request::__clone
|
* @covers WellRESTed\Message\Request::__clone
|
||||||
* @uses WellRESTed\Message\Request::getUri
|
|
||||||
* @uses WellRESTed\Message\Request::withUri
|
|
||||||
* @uses WellRESTed\Message\Request::getHeader
|
|
||||||
* @uses WellRESTed\Message\Request::withHeader
|
|
||||||
* @uses WellRESTed\Message\Request::getRequestTarget
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithUriPreservesOriginalRequest()
|
public function testWithUriPreservesOriginalRequest()
|
||||||
{
|
{
|
||||||
$uri1 = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri1 = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri1 = $uri1->reveal();
|
$uri1 = $uri1->reveal();
|
||||||
|
|
||||||
$uri2 = $this->prophesize("\\Psr\\Http\\Message\\UriInterface");
|
$uri2 = $this->prophesize('\Psr\Http\Message\UriInterface');
|
||||||
$uri2 = $uri2->reveal();
|
$uri2 = $uri2->reveal();
|
||||||
|
|
||||||
$request1 = new Request();
|
$request1 = new Request();
|
||||||
|
|
@ -242,9 +194,9 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
$request2 = $request2->withHeader("Accept", "text/plain");
|
$request2 = $request2->withHeader("Accept", "text/plain");
|
||||||
|
|
||||||
$this->assertEquals($uri1, $request1->getUri());
|
$this->assertEquals($uri1, $request1->getUri());
|
||||||
$this->assertEquals("application/json", $request1->getHeader("Accept"));
|
$this->assertEquals(["application/json"], $request1->getHeader("Accept"));
|
||||||
|
|
||||||
$this->assertEquals($uri2, $request2->getUri());
|
$this->assertEquals($uri2, $request2->getUri());
|
||||||
$this->assertEquals("text/plain", $request2->getHeader("Accept"));
|
$this->assertEquals(["text/plain"], $request2->getHeader("Accept"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,16 @@ namespace WellRESTed\Test\Unit\Message;
|
||||||
|
|
||||||
use WellRESTed\Message\Response;
|
use WellRESTed\Message\Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @uses WellRESTed\Message\Response
|
||||||
|
* @uses WellRESTed\Message\Message
|
||||||
|
* @uses WellRESTed\Message\HeaderCollection
|
||||||
|
*/
|
||||||
class ResponseTest extends \PHPUnit_Framework_TestCase
|
class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Response::withStatus
|
* @covers WellRESTed\Message\Response::withStatus
|
||||||
* @covers WellRESTed\Message\Response::getStatusCode
|
* @covers WellRESTed\Message\Response::getStatusCode
|
||||||
* @uses WellRESTed\Message\Response::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testCreatesNewInstanceWithStatusCode()
|
public function testCreatesNewInstanceWithStatusCode()
|
||||||
{
|
{
|
||||||
|
|
@ -23,9 +25,6 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Response::withStatus
|
* @covers WellRESTed\Message\Response::withStatus
|
||||||
* @covers WellRESTed\Message\Response::getReasonPhrase
|
* @covers WellRESTed\Message\Response::getReasonPhrase
|
||||||
* @uses WellRESTed\Message\Response::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
* @dataProvider statusProvider
|
* @dataProvider statusProvider
|
||||||
*/
|
*/
|
||||||
public function testCreatesNewInstanceWithReasonPhrase($code, $reasonPhrase, $expected)
|
public function testCreatesNewInstanceWithReasonPhrase($code, $reasonPhrase, $expected)
|
||||||
|
|
@ -83,9 +82,6 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\Response::withStatus
|
* @covers WellRESTed\Message\Response::withStatus
|
||||||
* @covers WellRESTed\Message\Response::getStatusCode
|
* @covers WellRESTed\Message\Response::getStatusCode
|
||||||
* @uses WellRESTed\Message\Response::__clone
|
|
||||||
* @uses WellRESTed\Message\Message
|
|
||||||
* @uses WellRESTed\Message\HeaderCollection
|
|
||||||
*/
|
*/
|
||||||
public function testWithStatusCodePreservesOriginalResponse()
|
public function testWithStatusCodePreservesOriginalResponse()
|
||||||
{
|
{
|
||||||
|
|
@ -96,11 +92,10 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
$response2 = $response1->withStatus(404);
|
$response2 = $response1->withStatus(404);
|
||||||
$response2 = $response2->withHeader("Content-type", "text/plain");
|
$response2 = $response2->withHeader("Content-type", "text/plain");
|
||||||
|
|
||||||
|
|
||||||
$this->assertEquals(200, $response1->getStatusCode());
|
$this->assertEquals(200, $response1->getStatusCode());
|
||||||
$this->assertEquals("application/json", $response1->getHeader("Content-type"));
|
$this->assertEquals(["application/json"], $response1->getHeader("Content-type"));
|
||||||
|
|
||||||
$this->assertEquals(404, $response2->getStatusCode());
|
$this->assertEquals(404, $response2->getStatusCode());
|
||||||
$this->assertEquals("text/plain", $response2->getHeader("Content-type"));
|
$this->assertEquals(["text/plain"], $response2->getHeader("Content-type"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
public function testServerRequestProvidesHeaders($request)
|
public function testServerRequestProvidesHeaders($request)
|
||||||
{
|
{
|
||||||
/** @var ServerRequest $request */
|
/** @var ServerRequest $request */
|
||||||
$this->assertEquals("application/json", $request->getHeader("Accept"));
|
$this->assertEquals(["application/json"], $request->getHeader("Accept"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testServerRequestProvidesBody()
|
public function testServerRequestProvidesBody()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue