public function testRemoveHeaderWithInstanceWillRemoveThatInstance() { $headers = new Mail\Headers(); $headers->addHeaders(array(array('Foo' => 'foo'), array('Foo' => 'bar'), 'Baz' => 'baz')); $header = $headers->get('foo')->current(); $this->assertEquals(3, $headers->count()); $headers->removeHeader($header); $this->assertEquals(2, $headers->count()); $this->assertTrue($headers->has('foo')); $this->assertNotSame($header, $headers->get('foo')); }
public function testHeadersCanRemoveHeader() { $headers = new Headers(); $headers->addHeaders(array('Foo' => 'bar', 'Baz' => 'baz')); $header = $headers->get('foo'); $this->assertEquals(2, $headers->count()); $headers->removeHeader($header); $this->assertEquals(1, $headers->count()); $this->assertFalse($headers->get('foo')); }
/** * Merge duplicate header fields into single headers field. * The headers must be AbstractAddressList. * * @param Headers $headerBag * @param HeaderInterface|AbstractAddressList[] $headers */ private function mergeDuplicateHeader(Headers $headerBag, $headers) { if ($headers instanceof HeaderInterface) { // all good return; } // use first headers as base and collect addresses there $header = $headers[0]; unset($headers[0]); if (!$header instanceof AbstractAddressList) { throw new DomainException(sprintf('Cannot grab address list from headers of type "%s"; not an AbstractAddressList implementation', get_class($header))); } $addressList = $header->getAddressList(); foreach ($headers as $h) { $addressList->merge($h->getAddressList()); } $headerBag->removeHeader($header->getFieldName()); $headerBag->addHeader($header); }