Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Lukas Oppermann
committed
Aug 14, 2015
1 parent
8657da7
commit 3ce63cf
Showing
4 changed files
with
125 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
<?php | ||
|
||
namespace Lukasoppermann\Httpstatus; | ||
|
||
interface Httpstatuscodes | ||
{ | ||
/** | ||
* 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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
<?php | ||
|
||
namespace Lukasoppermann\Httpstatus\tests; | ||
|
||
use League\Csv\Reader; | ||
use PHPUnit_Framework_TestCase; | ||
|
||
/** | ||
* @group formatter | ||
*/ | ||
class HttpstatuscodesTest extends PHPUnit_Framework_TestCase | ||
{ | ||
protected $statuses; | ||
|
||
public function setUp() | ||
{ | ||
// This file is from https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv | ||
// It is a csv of all http codes & texts used for testing here | ||
$csv = Reader::createFromPath(__DIR__.'/data/http-status-codes-1.csv'); | ||
$statuses = $csv->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))) | ||
); | ||
} | ||
} | ||
} |