GIF89a;
Direktori : /home/serb/www/api/vendor/slim/slim/tests/Http/ |
Current File : /home/serb/www/api/vendor/slim/slim/tests/Http/ResponseTest.php |
<?php /** * Slim - a micro PHP 5 framework * * @author Josh Lockhart <info@slimframework.com> * @copyright 2011 Josh Lockhart * @link http://www.slimframework.com * @license http://www.slimframework.com/license * @version 2.6.1 * * MIT LICENSE * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ class ResponseTest extends PHPUnit_Framework_TestCase { public function testConstructWithoutArgs() { $res = new \Slim\Http\Response(); $this->assertAttributeEquals(200, 'status', $res); $this->assertAttributeEquals('', 'body', $res); } public function testConstructWithArgs() { $res = new \Slim\Http\Response('Foo', 201); $this->assertAttributeEquals(201, 'status', $res); $this->assertAttributeEquals('Foo', 'body', $res); } public function testGetStatus() { $res = new \Slim\Http\Response(); $this->assertEquals(200, $res->getStatus()); } public function testSetStatus() { $res = new \Slim\Http\Response(); $res->setStatus(301); $this->assertAttributeEquals(301, 'status', $res); } /** * DEPRECATION WARNING! */ public function testStatusGetOld() { $res = new \Slim\Http\Response('', 201); $this->assertEquals(201, $res->status()); } /** * DEPRECATION WARNING! */ public function testStatusSetOld() { $res = new \Slim\Http\Response(); $prop = new \ReflectionProperty($res, 'status'); $prop->setAccessible(true); $res->status(301); $this->assertEquals(301, $prop->getValue($res)); } public function testGetBody() { $res = new \Slim\Http\Response(); $property = new \ReflectionProperty($res, 'body'); $property->setAccessible(true); $property->setValue($res, 'foo'); $this->assertEquals('foo', $res->getBody()); } public function testSetBody() { $res = new \Slim\Http\Response('bar'); $res->setBody('foo'); // <-- Should replace body $this->assertAttributeEquals('foo', 'body', $res); } public function testWrite() { $res = new \Slim\Http\Response(); $property = new \ReflectionProperty($res, 'body'); $property->setAccessible(true); $property->setValue($res, 'foo'); $res->write('bar'); // <-- Should append to body $this->assertAttributeEquals('foobar', 'body', $res); } public function testLength() { $res = new \Slim\Http\Response('foo'); // <-- Sets body and length $this->assertEquals(3, $res->getLength()); } public function testFinalize() { $res = new \Slim\Http\Response(); $resFinal = $res->finalize(); $this->assertTrue(is_array($resFinal)); $this->assertEquals(3, count($resFinal)); $this->assertEquals(200, $resFinal[0]); $this->assertInstanceOf('\Slim\Http\Headers', $resFinal[1]); $this->assertEquals('', $resFinal[2]); } public function testFinalizeWithEmptyBody() { $res = new \Slim\Http\Response('Foo', 304); $resFinal = $res->finalize(); $this->assertEquals('', $resFinal[2]); } public function testRedirect() { $res = new \Slim\Http\Response(); $res->redirect('/foo'); $pStatus = new \ReflectionProperty($res, 'status'); $pStatus->setAccessible(true); $this->assertEquals(302, $pStatus->getValue($res)); $this->assertEquals('/foo', $res->headers['Location']); } public function testIsEmpty() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(404); $r2->setStatus(201); $this->assertFalse($r1->isEmpty()); $this->assertTrue($r2->isEmpty()); } public function testIsClientError() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(404); $r2->setStatus(500); $this->assertTrue($r1->isClientError()); $this->assertFalse($r2->isClientError()); } public function testIsForbidden() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(403); $r2->setStatus(500); $this->assertTrue($r1->isForbidden()); $this->assertFalse($r2->isForbidden()); } public function testIsInformational() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(100); $r2->setStatus(200); $this->assertTrue($r1->isInformational()); $this->assertFalse($r2->isInformational()); } public function testIsNotFound() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(404); $r2->setStatus(200); $this->assertTrue($r1->isNotFound()); $this->assertFalse($r2->isNotFound()); } public function testIsOk() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(200); $r2->setStatus(201); $this->assertTrue($r1->isOk()); $this->assertFalse($r2->isOk()); } public function testIsSuccessful() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r3 = new \Slim\Http\Response(); $r1->setStatus(200); $r2->setStatus(201); $r3->setStatus(302); $this->assertTrue($r1->isSuccessful()); $this->assertTrue($r2->isSuccessful()); $this->assertFalse($r3->isSuccessful()); } public function testIsRedirect() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(307); $r2->setStatus(304); $this->assertTrue($r1->isRedirect()); $this->assertFalse($r2->isRedirect()); } public function testIsRedirection() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r3 = new \Slim\Http\Response(); $r1->setStatus(307); $r2->setStatus(304); $r3->setStatus(200); $this->assertTrue($r1->isRedirection()); $this->assertTrue($r2->isRedirection()); $this->assertFalse($r3->isRedirection()); } public function testIsServerError() { $r1 = new \Slim\Http\Response(); $r2 = new \Slim\Http\Response(); $r1->setStatus(500); $r2->setStatus(400); $this->assertTrue($r1->isServerError()); $this->assertFalse($r2->isServerError()); } public function testMessageForCode() { $this->assertEquals('200 OK', \Slim\Http\Response::getMessageForCode(200)); } public function testMessageForCodeWithInvalidCode() { $this->assertNull(\Slim\Http\Response::getMessageForCode(600)); } }