Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

Commit a804a73

Browse files
committed
Merge pull request #101 from pdscopes/master
Fixing issue #100 withHeader does not remove old header value
2 parents 3f626b6 + fca9eee commit a804a73

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/MessageTrait.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ public function withHeader($header, $value)
204204
$normalized = strtolower($header);
205205

206206
$new = clone $this;
207+
if ($new->hasHeader($header)) {
208+
unset($new->headers[$new->headerNames[$normalized]]);
209+
}
207210
$new->headerNames[$normalized] = $header;
208211
$new->headers[$header] = $value;
209212

test/MessageTraitTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,14 @@ public function testWithHeaderRaisesExceptionForInvalidValueType($value)
175175
$message = $this->message->withHeader('X-Foo', $value);
176176
}
177177

178+
public function testWithHeaderReplacesDifferentCapitalization()
179+
{
180+
$this->message = $this->message->withHeader('X-Foo', ['foo']);
181+
$new = $this->message->withHeader('X-foo', ['bar']);
182+
$this->assertEquals(['bar'], $new->getHeader('x-foo'));
183+
$this->assertEquals(['X-foo' => ['bar']], $new->getHeaders());
184+
}
185+
178186
/**
179187
* @dataProvider invalidGeneralHeaderValues
180188
*/

0 commit comments

Comments
 (0)