Skip to content

Commit

Permalink
Use HTTP status helper class in TransportRedirectMock
Browse files Browse the repository at this point in the history
  • Loading branch information
pprkut committed Feb 28, 2024
1 parent 4d150be commit 7cec224
Showing 1 changed file with 3 additions and 51 deletions.
54 changes: 3 additions & 51 deletions tests/Fixtures/TransportRedirectMock.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace WpOrg\Requests\Tests\Fixtures;

use WpOrg\Requests\Transport;
use WpOrg\Requests\Utility\HttpStatus;

final class TransportRedirectMock implements Transport {
public $code = 302;
Expand All @@ -14,64 +15,15 @@ final class TransportRedirectMock implements Transport {

public $redirected_transport = null;

private static $messages = [
100 => '100 Continue',
101 => '101 Switching Protocols',
200 => '200 OK',
201 => '201 Created',
202 => '202 Accepted',
203 => '203 Non-Authoritative Information',
204 => '204 No Content',
205 => '205 Reset Content',
206 => '206 Partial Content',
300 => '300 Multiple Choices',
301 => '301 Moved Permanently',
302 => '302 Found',
303 => '303 See Other',
304 => '304 Not Modified',
305 => '305 Use Proxy',
306 => '306 (Unused)',
307 => '307 Temporary Redirect',
400 => '400 Bad Request',
401 => '401 Unauthorized',
402 => '402 Payment Required',
403 => '403 Forbidden',
404 => '404 Not Found',
405 => '405 Method Not Allowed',
406 => '406 Not Acceptable',
407 => '407 Proxy Authentication Required',
408 => '408 Request Timeout',
409 => '409 Conflict',
410 => '410 Gone',
411 => '411 Length Required',
412 => '412 Precondition Failed',
413 => '413 Request Entity Too Large',
414 => '414 Request-URI Too Long',
415 => '415 Unsupported Media Type',
416 => '416 Requested Range Not Satisfiable',
417 => '417 Expectation Failed',
418 => '418 I\'m a teapot',
428 => '428 Precondition Required',
429 => '429 Too Many Requests',
431 => '431 Request Header Fields Too Large',
500 => '500 Internal Server Error',
501 => '501 Not Implemented',
502 => '502 Bad Gateway',
503 => '503 Service Unavailable',
504 => '504 Gateway Timeout',
505 => '505 HTTP Version Not Supported',
511 => '511 Network Authentication Required',
];

public function request($url, $headers = [], $data = [], $options = []) {
if (array_key_exists($url, $this->redirected)) {
return $this->redirected_transport->request($url, $headers, $data, $options);
}

$redirect_url = 'https://example.com/redirected?url=' . urlencode($url);

$status = isset(self::$messages[$this->code]) ? self::$messages[$this->code] : $this->code . ' unknown';
$response = "HTTP/1.0 $status\r\n";
$text = HttpStatus::is_valid_code($this->code) ? HttpStatus::get_text($this->code) : 'unknown';
$response = "HTTP/1.0 {$this->code} $text\r\n";
$response .= "Content-Type: text/plain\r\n";
if ($this->chunked) {
$response .= "Transfer-Encoding: chunked\r\n";
Expand Down

0 comments on commit 7cec224

Please sign in to comment.