Header parsing improvements

* Made headers public readonly in HeadersFrame
* Fetching headers by value implemented
* Initial tests for HeaderBag
This commit is contained in:
2024-07-25 14:41:21 +02:00
parent 5c2279a544
commit d41cfb1be2
3 changed files with 69 additions and 1 deletions

View File

@ -0,0 +1,33 @@
<?php
namespace NoccyLabs\React\Http2\Header;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(HeaderBag::class)]
#[CoversClass(HeaderPacker::class)]
class HeaderBagTest extends \PHPUnit\Framework\TestCase
{
public function testHeadersInExamplesFromRfc7541()
{
$packer = new HeaderPacker();
$in = "\x82\x86\x84\x41\x8c\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x90\xf4\xff";
$expect = new HeaderBag([
':method' => 'GET',
':scheme' => 'http',
':path' => '/',
':authority' => 'www.example.com'
]);
$out = $packer->unpackHeaders($in);
$this->assertEquals('GET', $out->getHeaderLine(':method'));
$this->assertEquals('http', $out->getHeaderLine(':scheme'));
$this->assertEquals('/', $out->getHeaderLine(':path'));
$this->assertEquals('www.example.com', $out->getHeaderLine(':authority'));
}
}