diff --git a/src/Httpstatus.php b/src/Httpstatus.php index e5808e9..786db6c 100755 --- a/src/Httpstatus.php +++ b/src/Httpstatus.php @@ -26,70 +26,6 @@ class Httpstatus implements Countable, IteratorAggregate const CLASS_CLIENT_ERROR = 4; const CLASS_SERVER_ERROR = 5; - /** - * Every standard HTTP status code as a constant - */ - const HTTP_CONTINUE = 100; - const HTTP_SWITCHING_PROTOCOLS = 101; - const HTTP_PROCESSING = 102; // RFC2518 - const HTTP_OK = 200; - const HTTP_CREATED = 201; - const HTTP_ACCEPTED = 202; - const HTTP_NON_AUTHORITATIVE_INFORMATION = 203; - const HTTP_NO_CONTENT = 204; - const HTTP_RESET_CONTENT = 205; - const HTTP_PARTIAL_CONTENT = 206; - const HTTP_MULTI_STATUS = 207; // RFC4918 - const HTTP_ALREADY_REPORTED = 208; // RFC5842 - const HTTP_IM_USED = 226; // RFC3229 - const HTTP_MULTIPLE_CHOICES = 300; - const HTTP_MOVED_PERMANENTLY = 301; - const HTTP_FOUND = 302; - const HTTP_SEE_OTHER = 303; - const HTTP_NOT_MODIFIED = 304; - const HTTP_USE_PROXY = 305; - const HTTP_RESERVED = 306; - const HTTP_TEMPORARY_REDIRECT = 307; - const HTTP_PERMANENT_REDIRECT = 308; // RFC7238 - const HTTP_BAD_REQUEST = 400; - const HTTP_UNAUTHORIZED = 401; - const HTTP_PAYMENT_REQUIRED = 402; - const HTTP_FORBIDDEN = 403; - const HTTP_NOT_FOUND = 404; - const HTTP_METHOD_NOT_ALLOWED = 405; - const HTTP_NOT_ACCEPTABLE = 406; - const HTTP_PROXY_AUTHENTICATION_REQUIRED = 407; - const HTTP_REQUEST_TIMEOUT = 408; - const HTTP_CONFLICT = 409; - const HTTP_GONE = 410; - const HTTP_LENGTH_REQUIRED = 411; - const HTTP_PRECONDITION_FAILED = 412; - const HTTP_PAYLOAD_TOO_LARGE = 413; - const HTTP_URI_TOO_LONG = 414; - const HTTP_UNSUPPORTED_MEDIA_TYPE = 415; - const HTTP_RANGE_NOT_SATISFIABLE = 416; - const HTTP_EXPECTATION_FAILED = 417; - const HTTP_MISDIRECTED_REQUEST = 421; - const HTTP_UNPROCESSABLE_ENTITY = 422; // RFC4918 - const HTTP_LOCKED = 423; // RFC4918 - const HTTP_FAILED_DEPENDENCY = 424; // RFC4918 - const HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL = 425; // RFC2817 - const HTTP_UPGRADE_REQUIRED = 426; // RFC2817 - const HTTP_PRECONDITION_REQUIRED = 428; // RFC6585 - const HTTP_TOO_MANY_REQUESTS = 429; // RFC6585 - const HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = 431; // RFC6585 - const HTTP_INTERNAL_SERVER_ERROR = 500; - const HTTP_NOT_IMPLEMENTED = 501; - const HTTP_BAD_GATEWAY = 502; - const HTTP_SERVICE_UNAVAILABLE = 503; - const HTTP_GATEWAY_TIMEOUT = 504; - const HTTP_VERSION_NOT_SUPPORTED = 505; - const HTTP_VARIANT_ALSO_NEGOTIATES = 506; // RFC2295 - const HTTP_INSUFFICIENT_STORAGE = 507; // RFC4918 - const HTTP_LOOP_DETECTED = 508; // RFC5842 - const HTTP_NOT_EXTENDED = 510; // RFC2774 - const HTTP_NETWORK_AUTHENTICATION_REQUIRED = 511; // RFC6585 - protected $httpStatus = [ 100 => 'Continue', 101 => 'Switching Protocols', diff --git a/src/Httpstatuscodes.php b/src/Httpstatuscodes.php new file mode 100644 index 0000000..0b665f1 --- /dev/null +++ b/src/Httpstatuscodes.php @@ -0,0 +1,70 @@ +assertSame($custom[404], $Httpstatus->getReasonPhrase(404), 'Expected $Httpstatus->getReasonPhrase("404") to return '.$custom[404]); } - public function testConstants() - { - $prefix = 'Lukasoppermann\Httpstatus\Httpstatus::HTTP_'; - foreach ($this->statuses as $code => $text) { - $this->assertSame( - $code, - constant($prefix.strtoupper(str_replace([' ', '-', 'HTTP_'], ['_', '_', ''], $text))) - ); - } - } + // public function testConstants() + // { + // $prefix = 'Lukasoppermann\Httpstatus\$Httpstatuscodes::HTTP_'; + // foreach ($this->statuses as $code => $text) { + // $this->assertSame( + // $code, + // constant($prefix.strtoupper(str_replace([' ', '-', 'HTTP_'], ['_', '_', ''], $text))) + // ); + // } + // } /** * @expectedException InvalidArgumentException @@ -271,17 +271,18 @@ public function testGetResponseClass($expectedClass, $statusCode) */ public function responseClasses() { + $Httpstatuscodes = $this->getMock('Lukasoppermann\Httpstatus\Httpstatuscodes'); return [ - [Httpstatus::CLASS_INFORMATIONAL, Httpstatus::HTTP_CONTINUE], - [Httpstatus::CLASS_INFORMATIONAL, Httpstatus::HTTP_SWITCHING_PROTOCOLS], - [Httpstatus::CLASS_SUCCESS, Httpstatus::HTTP_OK], - [Httpstatus::CLASS_SUCCESS, Httpstatus::HTTP_PARTIAL_CONTENT], - [Httpstatus::CLASS_REDIRECTION, Httpstatus::HTTP_MULTIPLE_CHOICES], - [Httpstatus::CLASS_REDIRECTION, Httpstatus::HTTP_MOVED_PERMANENTLY], - [Httpstatus::CLASS_CLIENT_ERROR, Httpstatus::HTTP_BAD_REQUEST], - [Httpstatus::CLASS_CLIENT_ERROR, Httpstatus::HTTP_NOT_FOUND], - [Httpstatus::CLASS_SERVER_ERROR, Httpstatus::HTTP_INTERNAL_SERVER_ERROR], - [Httpstatus::CLASS_SERVER_ERROR, Httpstatus::HTTP_GATEWAY_TIMEOUT], + [Httpstatus::CLASS_INFORMATIONAL, $Httpstatuscodes::HTTP_CONTINUE], + [Httpstatus::CLASS_INFORMATIONAL, $Httpstatuscodes::HTTP_SWITCHING_PROTOCOLS], + [Httpstatus::CLASS_SUCCESS, $Httpstatuscodes::HTTP_OK], + [Httpstatus::CLASS_SUCCESS, $Httpstatuscodes::HTTP_PARTIAL_CONTENT], + [Httpstatus::CLASS_REDIRECTION, $Httpstatuscodes::HTTP_MULTIPLE_CHOICES], + [Httpstatus::CLASS_REDIRECTION, $Httpstatuscodes::HTTP_MOVED_PERMANENTLY], + [Httpstatus::CLASS_CLIENT_ERROR, $Httpstatuscodes::HTTP_BAD_REQUEST], + [Httpstatus::CLASS_CLIENT_ERROR, $Httpstatuscodes::HTTP_NOT_FOUND], + [Httpstatus::CLASS_SERVER_ERROR, $Httpstatuscodes::HTTP_INTERNAL_SERVER_ERROR], + [Httpstatus::CLASS_SERVER_ERROR, $Httpstatuscodes::HTTP_GATEWAY_TIMEOUT], ]; } diff --git a/tests/HttpstatuscodesTest.php b/tests/HttpstatuscodesTest.php new file mode 100644 index 0000000..13baad7 --- /dev/null +++ b/tests/HttpstatuscodesTest.php @@ -0,0 +1,44 @@ +setOffset(1)->addFilter(function ($row) { + if (!isset($row[1])) { + return false; + } + $desc = trim($row[1]); + return !(empty($desc) || in_array($desc, ['Unassigned', '(Unused)'])); + })->fetchAssoc(['Value', 'Description']); + + // preapre statuses + foreach ($statuses as $key => $code) { + $this->statuses[$code['Value']] = $code['Description']; + } + } + + public function testConstants() + { + $prefix = 'Lukasoppermann\Httpstatus\Httpstatuscodes::HTTP_'; + foreach ($this->statuses as $code => $text) { + $this->assertSame( + $code, + constant($prefix.strtoupper(str_replace([' ', '-', 'HTTP_'], ['_', '_', ''], $text))) + ); + } + } +}