/** * Add a raw header line, either in name => value, or as a single string 'name: value' * * This method allows for lazy-loading in that the parsing and instantiation of HeaderInterface object * will be delayed until they are retrieved by either get() or current() * * @throws Exception\InvalidArgumentException * @param string $headerFieldNameOrLine * @param string $fieldValue optional * @return Headers */ public function addHeaderLine($headerFieldNameOrLine, $fieldValue = null) { if (!is_string($headerFieldNameOrLine)) { throw new Exception\InvalidArgumentException(sprintf('%s expects its first argument to be a string; received "%s"', is_object($headerFieldNameOrLine) ? get_class($headerFieldNameOrLine) : gettype($headerFieldNameOrLine))); } if ($fieldValue === null) { $this->addHeader(Header\GenericHeader::fromString($headerFieldNameOrLine)); } elseif (is_array($fieldValue)) { foreach ($fieldValue as $i) { $this->addHeader(new Header\GenericMultiHeader($headerFieldNameOrLine, $i)); } } else { $this->addHeader(new Header\GenericHeader($headerFieldNameOrLine, $fieldValue)); } return $this; }
/** * @dataProvider getEmbeddedContentIdProvider * @param $rawHeaders * @param $expected */ public function testGetEmbeddedContentId($rawHeaders, $expected) { $headers = Headers::fromString(implode(PHP_EOL, $rawHeaders), PHP_EOL); $contentIdHeader = null; $contentDispositionHeader = null; if (isset($rawHeaders['Content-ID'])) { $contentIdHeader = GenericHeader::fromString($rawHeaders['Content-ID']); } if (isset($rawHeaders['Content-Disposition'])) { $contentDispositionHeader = GenericHeader::fromString($rawHeaders['Content-Disposition']); } $this->part->expects($this->any())->method('getHeader')->willReturnMap([['Content-ID', null, $contentIdHeader], ['Content-Disposition', null, $contentDispositionHeader]]); $this->part->expects($this->any())->method('getHeaders')->willReturn($headers); $this->assertEquals($expected, $this->attachment->getEmbeddedContentId()); }