File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -266,23 +266,16 @@ public function getHeaderLine(string $name): string
266266 */
267267 public function setHeader (string $ name , $ value )
268268 {
269- if (! isset ($ this ->headers [$ name ]))
269+ $ origName = $ this ->getHeaderName ($ name );
270+
271+ if (isset ($ this ->headers [$ origName ]) && is_array ($ this ->headers [$ origName ]))
270272 {
271- $ this ->headers [$ name ] = new Header ($ name , $ value );
272-
273- $ this ->headerMap [strtolower ($ name )] = $ name ;
274-
275- return $ this ;
276- }
277-
278- if (! is_array ($ this ->headers [$ name ]))
279- {
280- $ this ->headers [$ name ] = [$ this ->headers [$ name ]];
273+ $ this ->appendHeader ($ origName , $ value );
281274 }
282-
283- if (isset ($ this ->headers [$ name ]))
275+ else
284276 {
285- $ this ->headers [$ name ] = new Header ($ name , $ value );
277+ $ this ->headers [$ origName ] = new Header ($ origName , $ value );
278+ $ this ->headerMap [strtolower ($ origName )] = $ origName ;
286279 }
287280
288281 return $ this ;
Original file line number Diff line number Diff line change @@ -181,17 +181,25 @@ public function testAppendBody()
181181
182182 public function testSetHeaderReplacingHeader ()
183183 {
184- $ this ->message ->setHeader ('Accept ' , 'json ' );
184+ $ this ->message ->setHeader ('Accept ' , 'json ' );
185185
186- $ this ->assertEquals ('json ' , $ this ->message ->getHeaderLine ('Accept ' ));
186+ $ this ->assertEquals ('json ' , $ this ->message ->getHeaderLine ('Accept ' ));
187187 }
188188
189189 public function testSetHeaderDuplicateSettings ()
190190 {
191191 $ this ->message ->setHeader ('Accept ' , 'json ' );
192192 $ this ->message ->setHeader ('Accept ' , 'xml ' );
193193
194- $ this ->assertEquals ('xml ' , $ this ->message ->getHeaderLine ('Accept ' ));
194+ $ this ->assertEquals ('xml ' , $ this ->message ->getHeaderLine ('Accept ' ));
195+ }
196+
197+ public function testSetHeaderDuplicateSettingsInsensitive ()
198+ {
199+ $ this ->message ->setHeader ('Accept ' , 'json ' );
200+ $ this ->message ->setHeader ('accept ' , 'xml ' );
201+
202+ $ this ->assertEquals ('xml ' , $ this ->message ->getHeaderLine ('Accept ' ));
195203 }
196204
197205 public function testSetHeaderArrayValues ()
You can’t perform that action at this time.
0 commit comments