Fix IHTTPResult::getHeader/s()

- Split functionality "getHeader()" and "getHeaders()" analog to IMessageInterface::getHeader/s()
- Fix functionality at various places
- Adapt CurlResultTest
This commit is contained in:
Philipp Holzer 2020-10-09 19:33:19 +02:00
commit 933ea7c9ce
No known key found for this signature in database
GPG key ID: 9A28B7D4FF5667BD
11 changed files with 96 additions and 28 deletions

View file

@ -0,0 +1,20 @@
<?php
return [
'http/2 200' => '',
'date' => 'Thu, 11 Oct 2018 18:43:54 GMT',
'content-type' => 'text/html; charset=utf-8',
'vary' => 'Accept-Encoding',
'server' => 'Mastodon',
'x-frame-options' => 'SAMEORIGIN',
'x-content-type-options' => 'nosniff',
'x-xss-protection' => '1; mode=block',
'etag' => 'W/"706e6c48957e1d46ecf9d7597a7880af"',
'cache-control' => 'max-age=0, private, must-revalidate',
'set-cookie' => '_mastodon_session=v3kcy%2FW3aZYBBvZUohuwksEKwzYIyEUlEuJ1KqTAfWPKvVQq%2F4UuJ39zp621VyfpQNlvY46TL%2FYutzXowSLYQBNFCJcrEiF04aU0TdtHls9zynMiyeHhoVgCijOXWXNt9%2FCmpQ49RkNEujkv9NaJ0cum32MCVZKjE9%2BMKmLM%2F8ZygZeLBGJ7sg%3D%3D--QGIiU0%2FpXc3Aym8F--he2iRRPePOdtEs3z%2BufSXg%3D%3D; path=/; secure; HttpOnly',
'x-request-id' => 'a0c0b8e7-cd60-4efa-b79b-cf1b0d5a0784',
'x-runtime' => '0.049566',
'strict-transport-security' => 'max-age=31536000; includeSubDomains; preload',
'referrer-policy' => 'same-origin',
'content-security-policy' => "frame-ancestors 'none'; script-src 'self'; object-src 'self'; img-src * data: blob:; media-src 'self' data:; font-src 'self' data: https://fonts.gstatic.com/; connect-src 'self' blob: wss://mastodonten.de",
];

View file

@ -0,0 +1,21 @@
<?php
return [
'http/2 301' => '',
'date' => 'Thu, 11 Oct 2018 18:43:54 GMT',
'content-type' => 'text/html; charset=utf-8',
'vary' => 'Accept-Encoding',
'server' => 'Mastodon',
'location' => 'https://test.other/some/',
'x-frame-options' => 'SAMEORIGIN',
'x-content-type-options' => 'nosniff',
'x-xss-protection' => '1; mode=block',
'etag' => 'W/"706e6c48957e1d46ecf9d7597a7880af"',
'cache-control' => 'max-age=0, private, must-revalidate',
'set-cookie' => '_mastodon_session=v3kcy%2FW3aZYBBvZUohuwksEKwzYIyEUlEuJ1KqTAfWPKvVQq%2F4UuJ39zp621VyfpQNlvY46TL%2FYutzXowSLYQBNFCJcrEiF04aU0TdtHls9zynMiyeHhoVgCijOXWXNt9%2FCmpQ49RkNEujkv9NaJ0cum32MCVZKjE9%2BMKmLM%2F8ZygZeLBGJ7sg%3D%3D--QGIiU0%2FpXc3Aym8F--he2iRRPePOdtEs3z%2BufSXg%3D%3D; path=/; secure; HttpOnly',
'x-request-id' => 'a0c0b8e7-cd60-4efa-b79b-cf1b0d5a0784',
'x-runtime' => '0.049566',
'strict-transport-security' => 'max-age=31536000; includeSubDomains; preload',
'referrer-policy' => 'same-origin',
'content-security-policy' => "frame-ancestors 'none'; script-src 'self'; object-src 'self'; img-src * data: blob:; media-src 'self' data:; font-src 'self' data: https://fonts.gstatic.com/; connect-src 'self' blob: wss://mastodonten.de",
];

View file

@ -53,6 +53,7 @@ class CurlResultTest extends TestCase
public function testNormal()
{
$header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
$headerArray = include(__DIR__ . '/../../datasets/curl/about.head.php');
$body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
@ -65,7 +66,7 @@ class CurlResultTest extends TestCase
$this->assertTrue($curlResult->isSuccess());
$this->assertFalse($curlResult->isTimeout());
$this->assertFalse($curlResult->isRedirectUrl());
$this->assertSame($header, $curlResult->getHeader());
$this->assertSame($headerArray, $curlResult->getHeaders());
$this->assertSame($body, $curlResult->getBody());
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
$this->assertSame('https://test.local', $curlResult->getUrl());
@ -80,6 +81,7 @@ class CurlResultTest extends TestCase
public function testRedirect()
{
$header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
$headerArray = include(__DIR__ . '/../../datasets/curl/about.head.php');
$body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
@ -93,7 +95,7 @@ class CurlResultTest extends TestCase
$this->assertTrue($curlResult->isSuccess());
$this->assertFalse($curlResult->isTimeout());
$this->assertTrue($curlResult->isRedirectUrl());
$this->assertSame($header, $curlResult->getHeader());
$this->assertSame($headerArray, $curlResult->getHeaders());
$this->assertSame($body, $curlResult->getBody());
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
$this->assertSame('https://test.local/test/it', $curlResult->getUrl());
@ -106,6 +108,7 @@ class CurlResultTest extends TestCase
public function testTimeout()
{
$header = file_get_contents(__DIR__ . '/../../datasets/curl/about.head');
$headerArray = include(__DIR__ . '/../../datasets/curl/about.head.php');
$body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
@ -119,7 +122,7 @@ class CurlResultTest extends TestCase
$this->assertFalse($curlResult->isSuccess());
$this->assertTrue($curlResult->isTimeout());
$this->assertFalse($curlResult->isRedirectUrl());
$this->assertSame($header, $curlResult->getHeader());
$this->assertSame($headerArray, $curlResult->getHeaders());
$this->assertSame($body, $curlResult->getBody());
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
$this->assertSame('https://test.local/test/it', $curlResult->getRedirectUrl());
@ -134,6 +137,7 @@ class CurlResultTest extends TestCase
public function testRedirectHeader()
{
$header = file_get_contents(__DIR__ . '/../../datasets/curl/about.redirect');
$headerArray = include(__DIR__ . '/../../datasets/curl/about.redirect.php');
$body = file_get_contents(__DIR__ . '/../../datasets/curl/about.body');
@ -146,7 +150,7 @@ class CurlResultTest extends TestCase
$this->assertTrue($curlResult->isSuccess());
$this->assertFalse($curlResult->isTimeout());
$this->assertTrue($curlResult->isRedirectUrl());
$this->assertSame($header, $curlResult->getHeader());
$this->assertSame($headerArray, $curlResult->getHeaders());
$this->assertSame($body, $curlResult->getBody());
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
$this->assertSame('https://test.local/test/it?key=value', $curlResult->getUrl());
@ -204,7 +208,7 @@ class CurlResultTest extends TestCase
'url' => 'https://test.local'
]);
$this->assertNotEmpty($curlResult->getHeader());
$this->assertNotEmpty($curlResult->getHeaders());
$this->assertEmpty($curlResult->getHeader('wrongHeader'));
}
}