Skip to content

Commit 893e271

Browse files
stobrien89Sean O'Brien
andauthored
[2.8] Allow empty lists as header values (#625)
Co-authored-by: Sean O'Brien <obrien.sean.dev@gmail.com>
1 parent b0b99b8 commit 893e271

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/MessageTrait.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,6 @@ private function normalizeHeaderValue($value): array
174174
return $this->trimAndValidateHeaderValues([$value]);
175175
}
176176

177-
if (count($value) === 0) {
178-
throw new \InvalidArgumentException('Header value can not be an empty array.');
179-
}
180-
181177
return $this->trimAndValidateHeaderValues($value);
182178
}
183179

tests/RequestTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,14 @@ public function testHeaderValueWithWhitespace(): void
188188
], $r->getHeaders());
189189
}
190190

191+
public function testEmptyListHeaderValue(): void
192+
{
193+
$r = new Request('GET', 'https://example.com/', ['Foo' => []]);
194+
self::assertSame('', $r->getHeaderLine('Foo'));
195+
self::assertSame([], $r->getHeader('Foo'));
196+
self::assertSame(['Host' => ['example.com'], 'Foo' => []], $r->getHeaders());
197+
}
198+
191199
public function testCanGetHeaderAsCsv(): void
192200
{
193201
$r = new Request('GET', 'http://foo.com/baz?bar=bam', [

tests/ResponseTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,14 @@ public function testPassNumericHeaderNameInConstructor(): void
253253
self::assertSame('bar', $r->getHeaderLine('123'));
254254
}
255255

256+
public function testConstructResponseEmptyListHeaderValue(): void
257+
{
258+
$r = new Response(200, ['Foo' => []]);
259+
self::assertSame('', $r->getHeaderLine('Foo'));
260+
self::assertSame([], $r->getHeader('Foo'));
261+
self::assertSame(['Foo' => []], $r->getHeaders());
262+
}
263+
256264
/**
257265
* @dataProvider invalidHeaderProvider
258266
*/
@@ -266,7 +274,6 @@ public function testConstructResponseInvalidHeader($header, $headerValue, $expec
266274
public static function invalidHeaderProvider(): iterable
267275
{
268276
return [
269-
['foo', [], 'Header value can not be an empty array.'],
270277
['', '', '"" is not valid header name'],
271278
['foo', new \stdClass(), 'Header value must be scalar or null but stdClass provided.'],
272279
];

0 commit comments

Comments
 (0)