Update tests for messages.
This commit is contained in:
parent
d4ad282abc
commit
614da5f2ff
|
|
@ -4,7 +4,7 @@
|
||||||
* pjdietz\WellRESTed\Message
|
* pjdietz\WellRESTed\Message
|
||||||
*
|
*
|
||||||
* @author PJ Dietz <pj@pjdietz.com>
|
* @author PJ Dietz <pj@pjdietz.com>
|
||||||
* @copyright Copyright 2014 by PJ Dietz
|
* @copyright Copyright 2015 by PJ Dietz
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -134,17 +134,12 @@ abstract class Message
|
||||||
public function unsetHeader($name)
|
public function unsetHeader($name)
|
||||||
{
|
{
|
||||||
$lowerName = strtolower($name);
|
$lowerName = strtolower($name);
|
||||||
|
|
||||||
if (isset($this->headerLookup[$lowerName])) {
|
if (isset($this->headerLookup[$lowerName])) {
|
||||||
|
|
||||||
$realName = $this->headerLookup[$lowerName];
|
$realName = $this->headerLookup[$lowerName];
|
||||||
|
|
||||||
if (isset($this->headers[$realName])) {
|
if (isset($this->headers[$realName])) {
|
||||||
unset($this->headers[$realName]);
|
unset($this->headers[$realName]);
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($this->headerLookup[$lowerName]);
|
unset($this->headerLookup[$lowerName]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use pjdietz\WellRESTed\Request;
|
||||||
class ApacheRequestHeadersTest extends \PHPUnit_Framework_TestCase
|
class ApacheRequestHeadersTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
* @covers pjdietz\WellRESTed\Request::getRequestHeaders
|
||||||
* @runInSeparateProcess
|
* @runInSeparateProcess
|
||||||
* @preserveGlobalState disabled
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace pjdietz\WellRESTed\Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers pjdietz\WellRESTed\Message
|
||||||
|
*/
|
||||||
|
class MessageTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testSetsBody()
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$body = "This is the body";
|
||||||
|
$message->setBody($body);
|
||||||
|
$this->assertEquals($body, $message->getBody());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testBodyIsNullByDefault()
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$this->assertNull($message->getBody());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider headerProvider
|
||||||
|
*/
|
||||||
|
public function testSetsHeader($headerKey, $headerValue, $badCapsKey)
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$message->setHeader($headerKey, $headerValue);
|
||||||
|
$this->assertEquals($headerValue, $message->getHeader($badCapsKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider headerProvider
|
||||||
|
*/
|
||||||
|
public function testUpdatesHeader($headerKey, $headerValue, $testName)
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$message->setHeader($headerKey, $headerValue);
|
||||||
|
$newValue = "newvalue";
|
||||||
|
$message->setHeader($testName, "newvalue");
|
||||||
|
$this->assertEquals($newValue, $message->getHeader($testName));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider headerProvider
|
||||||
|
*/
|
||||||
|
public function testNonsetHeaderIsNull()
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$this->assertNull($message->getHeader("no-header"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider headerProvider
|
||||||
|
*/
|
||||||
|
public function testUnsetHeaderIsNull($headerKey, $headerValue, $testName)
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$message->setHeader($headerKey, $headerValue);
|
||||||
|
$message->unsetHeader($testName);
|
||||||
|
$this->assertNull($message->getHeader($headerKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider headerProvider
|
||||||
|
*/
|
||||||
|
public function testChecksIfHeaderIsSet($headerKey, $headerValue, $testName)
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$message->setHeader($headerKey, $headerValue);
|
||||||
|
$this->assertTrue($message->issetHeader($testName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function headerProvider()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
["Accept-Charset", "utf-8", "accept-charset"],
|
||||||
|
["Accept-Encoding", "gzip, deflate", "ACCEPT-ENCODING"],
|
||||||
|
["Cache-Control", "no-cache", "Cache-Control"],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReturnsListOfHeaders()
|
||||||
|
{
|
||||||
|
$message = $this->getMockForAbstractClass("\\pjdietz\\WellRESTed\\Message");
|
||||||
|
$headers = $this->headerProvider();
|
||||||
|
foreach ($headers as $header) {
|
||||||
|
$message->setHeader($header[0], $header[1]);
|
||||||
|
}
|
||||||
|
$this->assertEquals(count($headers), count($message->getHeaders()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -6,12 +6,15 @@ use Faker\Factory;
|
||||||
use pjdietz\WellRESTed\Request;
|
use pjdietz\WellRESTed\Request;
|
||||||
use pjdietz\WellRESTed\Test;
|
use pjdietz\WellRESTed\Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers pjdietz\WellRESTed\Request
|
||||||
|
*/
|
||||||
class RequestTest extends \PHPUnit_Framework_TestCase
|
class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @dataProvider methodProvider
|
* @dataProvider methodProvider
|
||||||
*/
|
*/
|
||||||
public function testSetMethod($method)
|
public function testSetsMethod($method)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setMethod($method);
|
$rqst->setMethod($method);
|
||||||
|
|
@ -20,20 +23,20 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
public function methodProvider()
|
public function methodProvider()
|
||||||
{
|
{
|
||||||
return array(
|
return [
|
||||||
array("GET"),
|
["GET"],
|
||||||
array("POST"),
|
["POST"],
|
||||||
array("PUT"),
|
["PUT"],
|
||||||
array("DELETE"),
|
["DELETE"],
|
||||||
array("OPTIONS"),
|
["OPTIONS"],
|
||||||
array("HEAD")
|
["HEAD"]
|
||||||
);
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testSetUri($uri, $data)
|
public function testSetsUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->uri, $rqst->getUri());
|
$this->assertEquals($data->uri, $rqst->getUri());
|
||||||
|
|
@ -42,7 +45,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParseSchemeFromUri($uri, $data)
|
public function testParsesSchemeFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->scheme, $rqst->getScheme());
|
$this->assertEquals($data->scheme, $rqst->getScheme());
|
||||||
|
|
@ -51,7 +54,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParseHostnameFromUri($uri, $data)
|
public function testParsesHostnameFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->hostname, $rqst->getHostname());
|
$this->assertEquals($data->hostname, $rqst->getHostname());
|
||||||
|
|
@ -60,7 +63,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParsePortFromUri($uri, $data)
|
public function testParsesPortFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->port, $rqst->getPort());
|
$this->assertEquals($data->port, $rqst->getPort());
|
||||||
|
|
@ -69,7 +72,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParsePathFromUri($uri, $data)
|
public function testParsesPathFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->path, $rqst->getPath());
|
$this->assertEquals($data->path, $rqst->getPath());
|
||||||
|
|
@ -78,7 +81,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParsePathPartsFromUri($uri, $data)
|
public function testParsesPathPartsFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->parts, $rqst->getPathParts());
|
$this->assertEquals($data->parts, $rqst->getPathParts());
|
||||||
|
|
@ -87,7 +90,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider uriProvider
|
* @dataProvider uriProvider
|
||||||
*/
|
*/
|
||||||
public function testParseQueryFromUri($uri, $data)
|
public function testParsesQueryFromUri($uri, $data)
|
||||||
{
|
{
|
||||||
$rqst = new Request($uri);
|
$rqst = new Request($uri);
|
||||||
$this->assertEquals($data->query, $rqst->getQuery());
|
$this->assertEquals($data->query, $rqst->getQuery());
|
||||||
|
|
@ -95,8 +98,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
public function uriProvider()
|
public function uriProvider()
|
||||||
{
|
{
|
||||||
return array(
|
return [
|
||||||
array(
|
[
|
||||||
"http://www.google.com",
|
"http://www.google.com",
|
||||||
(object) [
|
(object) [
|
||||||
"uri" => "http://www.google.com",
|
"uri" => "http://www.google.com",
|
||||||
|
|
@ -107,8 +110,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
"query" => [],
|
"query" => [],
|
||||||
"parts" => []
|
"parts" => []
|
||||||
]
|
]
|
||||||
),
|
],
|
||||||
array(
|
[
|
||||||
"https://www.google.com",
|
"https://www.google.com",
|
||||||
(object) [
|
(object) [
|
||||||
"uri" => "https://www.google.com",
|
"uri" => "https://www.google.com",
|
||||||
|
|
@ -119,8 +122,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
"query" => [],
|
"query" => [],
|
||||||
"parts" => []
|
"parts" => []
|
||||||
]
|
]
|
||||||
),
|
],
|
||||||
array(
|
[
|
||||||
"localhost:8080/my/path/with/parts",
|
"localhost:8080/my/path/with/parts",
|
||||||
(object) [
|
(object) [
|
||||||
"uri" => "http://localhost:8080/my/path/with/parts",
|
"uri" => "http://localhost:8080/my/path/with/parts",
|
||||||
|
|
@ -131,8 +134,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
"query" => [],
|
"query" => [],
|
||||||
"parts" => ["my", "path", "with", "parts"]
|
"parts" => ["my", "path", "with", "parts"]
|
||||||
]
|
]
|
||||||
),
|
],
|
||||||
array(
|
[
|
||||||
"localhost?dog=bear&cat=molly",
|
"localhost?dog=bear&cat=molly",
|
||||||
(object) [
|
(object) [
|
||||||
"uri" => "http://localhost?cat=molly&dog=bear",
|
"uri" => "http://localhost?cat=molly&dog=bear",
|
||||||
|
|
@ -146,8 +149,8 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
],
|
],
|
||||||
"parts" => []
|
"parts" => []
|
||||||
]
|
]
|
||||||
),
|
],
|
||||||
array(
|
[
|
||||||
"/my-page?id=2",
|
"/my-page?id=2",
|
||||||
(object) [
|
(object) [
|
||||||
"uri" => "http://localhost/my-page?id=2",
|
"uri" => "http://localhost/my-page?id=2",
|
||||||
|
|
@ -160,28 +163,14 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
],
|
],
|
||||||
"parts" => ["my-page"]
|
"parts" => ["my-page"]
|
||||||
]
|
]
|
||||||
)
|
]
|
||||||
);
|
];
|
||||||
}
|
|
||||||
|
|
||||||
public function testSetBody()
|
|
||||||
{
|
|
||||||
$body = "This is the body";
|
|
||||||
$rqst = new Request();
|
|
||||||
$rqst->setBody($body);
|
|
||||||
$this->assertEquals($body, $rqst->getBody());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testBodyIsNullByDefault()
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$this->assertNull($rqst->getBody());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider formProvider
|
* @dataProvider formProvider
|
||||||
*/
|
*/
|
||||||
public function testFormFieldsEncodeProperly($form)
|
public function testEncodesFormFields($form)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setFormFields($form);
|
$rqst->setFormFields($form);
|
||||||
|
|
@ -193,7 +182,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider formProvider
|
* @dataProvider formProvider
|
||||||
*/
|
*/
|
||||||
public function testFormFieldsDecodeProperly($form)
|
public function testDecodesFormFields($form)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setFormFields($form);
|
$rqst->setFormFields($form);
|
||||||
|
|
@ -215,81 +204,10 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testSetHeader($headerKey, $headerValue, $badCapsKey)
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$rqst->setHeader($headerKey, $headerValue);
|
|
||||||
$this->assertEquals($headerValue, $rqst->getHeader($badCapsKey));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testUpdateHeader($headerKey, $headerValue, $testName)
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$rqst->setHeader($headerKey, $headerValue);
|
|
||||||
$newValue = "newvalue";
|
|
||||||
$rqst->setHeader($testName, "newvalue");
|
|
||||||
$this->assertEquals($newValue, $rqst->getHeader($testName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testNonsetHeaderIsNull()
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$this->assertNull($rqst->getHeader("no-header"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testUnsetHeaderIsNull($headerKey, $headerValue, $testName)
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$rqst->setHeader($headerKey, $headerValue);
|
|
||||||
$rqst->unsetHeader($testName);
|
|
||||||
$this->assertNull($rqst->getHeader($headerKey));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testCheckIfHeaderIsSet($headerKey, $headerValue, $testName)
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$rqst->setHeader($headerKey, $headerValue);
|
|
||||||
$this->assertTrue($rqst->issetHeader($testName));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function headerProvider()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
array("Accept-Charset", "utf-8", "accept-charset"),
|
|
||||||
array("Accept-Encoding", "gzip, deflate", "ACCEPT-ENCODING"),
|
|
||||||
array("Cache-Control", "no-cache", "Cache-Control"),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCountHeader()
|
|
||||||
{
|
|
||||||
$rqst = new Request();
|
|
||||||
$headers = $this->headerProvider();
|
|
||||||
foreach ($headers as $header) {
|
|
||||||
$rqst->setHeader($header[0], $header[1]);
|
|
||||||
}
|
|
||||||
$this->assertEquals(count($headers), count($rqst->getHeaders()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider queryProvider
|
* @dataProvider queryProvider
|
||||||
*/
|
*/
|
||||||
public function testSetQuery($input, $expected)
|
public function testSetsQuery($input, $expected)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setQuery($input);
|
$rqst->setQuery($input);
|
||||||
|
|
@ -323,7 +241,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
* @dataProvider invalidQueryProvider
|
* @dataProvider invalidQueryProvider
|
||||||
* @expectedException \InvalidArgumentException
|
* @expectedException \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function testFailOnInvalidQuery($query)
|
public function testThrowsExceptionOnInvalidQuery($query)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setQuery($query);
|
$rqst->setQuery($query);
|
||||||
|
|
@ -343,7 +261,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
* @dataProvider invalidSchemeProvider
|
* @dataProvider invalidSchemeProvider
|
||||||
* @expectedException \UnexpectedValueException
|
* @expectedException \UnexpectedValueException
|
||||||
*/
|
*/
|
||||||
public function testFailOnInvalidScheme($scheme)
|
public function testThrowsExceptionOnInvalidScheme($scheme)
|
||||||
{
|
{
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->setScheme($scheme);
|
$rqst->setScheme($scheme);
|
||||||
|
|
@ -363,7 +281,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider defaultPortProvider
|
* @dataProvider defaultPortProvider
|
||||||
*/
|
*/
|
||||||
public function testSetDefaultPort($scheme, $port)
|
public function testSetsDefaultPort($scheme, $port)
|
||||||
{
|
{
|
||||||
$rqst = new Request("http://localhost:9999");
|
$rqst = new Request("http://localhost:9999");
|
||||||
$rqst->setScheme($scheme);
|
$rqst->setScheme($scheme);
|
||||||
|
|
@ -381,84 +299,68 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider serverProvider
|
* @dataProvider serverProvider
|
||||||
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testReadServerRequestMethod($serverVars, $expected)
|
public function testReadsServerRequestMethod($serverVars, $expected)
|
||||||
{
|
{
|
||||||
$original = $_SERVER;
|
|
||||||
$_SERVER = array_merge($_SERVER, $serverVars);
|
$_SERVER = array_merge($_SERVER, $serverVars);
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->readHttpRequest();
|
$rqst->readHttpRequest();
|
||||||
$this->assertEquals($expected->method, $rqst->getMethod());
|
$this->assertEquals($expected->method, $rqst->getMethod());
|
||||||
$_SERVER = $original;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider serverProvider
|
* @dataProvider serverProvider
|
||||||
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testReadServerRequestHost($serverVars, $expected)
|
public function testReadsServerRequestHost($serverVars, $expected)
|
||||||
{
|
{
|
||||||
$original = $_SERVER;
|
|
||||||
$_SERVER = array_merge($_SERVER, $serverVars);
|
$_SERVER = array_merge($_SERVER, $serverVars);
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->readHttpRequest();
|
$rqst->readHttpRequest();
|
||||||
$this->assertEquals($expected->host, $rqst->getHostname());
|
$this->assertEquals($expected->host, $rqst->getHostname());
|
||||||
$_SERVER = $original;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider serverProvider
|
* @dataProvider serverProvider
|
||||||
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testReadServerRequestPath($serverVars, $expected)
|
public function testReadsServerRequestPath($serverVars, $expected)
|
||||||
{
|
{
|
||||||
$original = $_SERVER;
|
|
||||||
$_SERVER = array_merge($_SERVER, $serverVars);
|
$_SERVER = array_merge($_SERVER, $serverVars);
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->readHttpRequest();
|
$rqst->readHttpRequest();
|
||||||
$this->assertEquals($expected->path, $rqst->getPath());
|
$this->assertEquals($expected->path, $rqst->getPath());
|
||||||
$_SERVER = $original;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider serverProvider
|
* @dataProvider serverProvider
|
||||||
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testReadServerRequestHeaders($serverVars, $expected)
|
public function testReadsServerRequestHeaders($serverVars, $expected)
|
||||||
{
|
{
|
||||||
$original = $_SERVER;
|
|
||||||
$_SERVER = array_merge($_SERVER, $serverVars);
|
$_SERVER = array_merge($_SERVER, $serverVars);
|
||||||
$rqst = new Request();
|
$rqst = new Request();
|
||||||
$rqst->readHttpRequest();
|
$rqst->readHttpRequest();
|
||||||
foreach ($expected->headers as $name => $value) {
|
foreach ($expected->headers as $name => $value) {
|
||||||
$this->assertEquals($value, $rqst->getHeader($name));
|
$this->assertEquals($value, $rqst->getHeader($name));
|
||||||
}
|
}
|
||||||
$_SERVER = $original;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We can only test the static member once, so no need for dataProvider.
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testReadStaticRequest()
|
public function testReadsStaticRequest()
|
||||||
{
|
{
|
||||||
$data = $this->serverProvider();
|
$data = $this->serverProvider();
|
||||||
$serverVars = $data[0][0];
|
$serverVars = $data[0][0];
|
||||||
$expected = $data[0][1];
|
$expected = $data[0][1];
|
||||||
|
|
||||||
$original = $_SERVER;
|
|
||||||
$_SERVER = array_merge($_SERVER, $serverVars);
|
$_SERVER = array_merge($_SERVER, $serverVars);
|
||||||
$rqst = Request::getRequest();
|
$rqst = Request::getRequest();
|
||||||
$this->assertEquals($expected->host, $rqst->getHostname());
|
$this->assertEquals($expected->host, $rqst->getHostname());
|
||||||
|
|
||||||
$_SERVER = $original;
|
$rqst2 = Request::getRequest();
|
||||||
|
$this->assertSame($rqst2, $rqst);
|
||||||
return $rqst;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @depends testReadStaticRequest
|
|
||||||
*/
|
|
||||||
public function testReadStaticRequestAgain($previousRequest)
|
|
||||||
{
|
|
||||||
$rqst = Request::getRequest();
|
|
||||||
$this->assertSame($previousRequest, $rqst);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function serverProvider()
|
public function serverProvider()
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,15 @@ namespace pjdietz\WellRESTed\Test;
|
||||||
use Faker\Factory;
|
use Faker\Factory;
|
||||||
use pjdietz\WellRESTed\Response;
|
use pjdietz\WellRESTed\Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers pjdietz\WellRESTed\Response
|
||||||
|
*/
|
||||||
class ResponseTest extends \PHPUnit_Framework_TestCase
|
class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @dataProvider statusCodeProvider
|
* @dataProvider statusCodeProvider
|
||||||
*/
|
*/
|
||||||
public function testSetStatusCodeInConstructor($statusCode, $reasonPhrase, $statusLine)
|
public function testSetsStatusCodeInConstructor($statusCode, $reasonPhrase, $statusLine)
|
||||||
{
|
{
|
||||||
$resp = new Response($statusCode);
|
$resp = new Response($statusCode);
|
||||||
$this->assertEquals($statusCode, $resp->getStatusCode());
|
$this->assertEquals($statusCode, $resp->getStatusCode());
|
||||||
|
|
@ -19,7 +22,17 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider statusCodeProvider
|
* @dataProvider statusCodeProvider
|
||||||
*/
|
*/
|
||||||
public function testReadStatusLine($statusCode, $reasonPhrase, $statusLine)
|
public function testProvidesReasonPhrase($statusCode, $reasonPhrase, $statusLine)
|
||||||
|
{
|
||||||
|
$resp = new Response();
|
||||||
|
$resp->setStatusCode($statusCode, $reasonPhrase);
|
||||||
|
$this->assertEquals(substr($statusLine, 13), $resp->getReasonPhrase());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider statusCodeProvider
|
||||||
|
*/
|
||||||
|
public function testProvidesStatusLine($statusCode, $reasonPhrase, $statusLine)
|
||||||
{
|
{
|
||||||
$resp = new Response();
|
$resp = new Response();
|
||||||
$resp->setStatusCode($statusCode, $reasonPhrase);
|
$resp->setStatusCode($statusCode, $reasonPhrase);
|
||||||
|
|
@ -29,7 +42,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @dataProvider statusCodeProvider
|
* @dataProvider statusCodeProvider
|
||||||
*/
|
*/
|
||||||
public function testReadSuccess($statusCode, $reasonPhrase, $statusLine)
|
public function testDeterminesSuccessFromStatusCode($statusCode, $reasonPhrase, $statusLine)
|
||||||
{
|
{
|
||||||
$resp = new Response();
|
$resp = new Response();
|
||||||
$resp->setStatusCode($statusCode, $reasonPhrase);
|
$resp->setStatusCode($statusCode, $reasonPhrase);
|
||||||
|
|
@ -40,16 +53,6 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider statusCodeProvider
|
|
||||||
*/
|
|
||||||
public function testReadReasonPhrase($statusCode, $reasonPhrase, $statusLine)
|
|
||||||
{
|
|
||||||
$resp = new Response();
|
|
||||||
$resp->setStatusCode($statusCode, $reasonPhrase);
|
|
||||||
$this->assertEquals(substr($statusLine, 13), $resp->getReasonPhrase());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function statusCodeProvider()
|
public function statusCodeProvider()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|
@ -99,7 +102,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
* @dataProvider invalidReasonPhraseProvider
|
* @dataProvider invalidReasonPhraseProvider
|
||||||
* @expectedException \InvalidArgumentException
|
* @expectedException \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function testFailOnInvalidReasonPhrase($statusCode, $reasonPhrase)
|
public function testThrowsExceptionOnInvalidReasonPhrase($statusCode, $reasonPhrase)
|
||||||
{
|
{
|
||||||
$resp = new Response();
|
$resp = new Response();
|
||||||
$resp->setStatusCode($statusCode, $reasonPhrase);
|
$resp->setStatusCode($statusCode, $reasonPhrase);
|
||||||
|
|
@ -114,7 +117,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetBody()
|
public function testSetsBody()
|
||||||
{
|
{
|
||||||
$faker = Factory::create();
|
$faker = Factory::create();
|
||||||
$body = $faker->text();
|
$body = $faker->text();
|
||||||
|
|
@ -123,7 +126,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals($body, $resp->getBody());
|
$this->assertEquals($body, $resp->getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetBodyInConstructor()
|
public function testSetsBodyInConstructor()
|
||||||
{
|
{
|
||||||
$faker = Factory::create();
|
$faker = Factory::create();
|
||||||
$body = $faker->text();
|
$body = $faker->text();
|
||||||
|
|
@ -131,7 +134,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals($body, $resp->getBody());
|
$this->assertEquals($body, $resp->getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetBodyFile()
|
public function testSetsBodyFile()
|
||||||
{
|
{
|
||||||
$path = tempnam(sys_get_temp_dir(), "TST");
|
$path = tempnam(sys_get_temp_dir(), "TST");
|
||||||
$resp = new Response();
|
$resp = new Response();
|
||||||
|
|
@ -140,39 +143,11 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
unlink($path);
|
unlink($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testSetHeaders($headerKey, $headerValue, $testName)
|
|
||||||
{
|
|
||||||
$resp = new Response();
|
|
||||||
$resp->setHeader($headerKey, $headerValue);
|
|
||||||
$this->assertEquals($headerValue, $resp->getHeader($testName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider headerProvider
|
|
||||||
*/
|
|
||||||
public function testSetHeadersInConstructor($headerKey, $headerValue, $testName)
|
|
||||||
{
|
|
||||||
$resp = new Response(200, "Body", array($headerKey => $headerValue));
|
|
||||||
$this->assertEquals($headerValue, $resp->getHeader($testName));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function headerProvider()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
["Content-Encoding", "gzip", "CONTENT-ENCODING"],
|
|
||||||
["Content-Length", "2048", "content-length"],
|
|
||||||
["Content-Type", "text/plain", "Content-Type"]
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @runInSeparateProcess
|
* @runInSeparateProcess
|
||||||
* @preserveGlobalState disabled
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testOutputResponse()
|
public function testOutputsResponse()
|
||||||
{
|
{
|
||||||
$faker = Factory::create();
|
$faker = Factory::create();
|
||||||
$body = $faker->text();
|
$body = $faker->text();
|
||||||
|
|
@ -190,7 +165,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
* @runInSeparateProcess
|
* @runInSeparateProcess
|
||||||
* @preserveGlobalState disabled
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testOutputResponseFromFile()
|
public function testOutputsResponseFromFile()
|
||||||
{
|
{
|
||||||
$path = tempnam(sys_get_temp_dir(), "TST");
|
$path = tempnam(sys_get_temp_dir(), "TST");
|
||||||
$faker = Factory::create();
|
$faker = Factory::create();
|
||||||
|
|
@ -218,7 +193,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
|
||||||
* @runInSeparateProcess
|
* @runInSeparateProcess
|
||||||
* @preserveGlobalState disabled
|
* @preserveGlobalState disabled
|
||||||
*/
|
*/
|
||||||
public function testMissingResponseFile()
|
public function testRespondsWithNoBodyWhenResponseFileIsMissing()
|
||||||
{
|
{
|
||||||
$path = tempnam(sys_get_temp_dir(), "TST");
|
$path = tempnam(sys_get_temp_dir(), "TST");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue