/** * @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()); }
/** * @dataProvider getContentProvider */ public function testGetContent($contentTransferEncoding, $contentType, $contentCharset, $contentValue, $expected, $decodedValue) { // Content-Type header $contentTypeHeader = $this->getMockBuilder('Zend\\Mail\\Header\\ContentType')->disableOriginalConstructor()->getMock(); if ($contentType !== null) { $contentTypeHeader->expects($this->once())->method('getType')->will($this->returnValue($contentType)); $contentTypeHeader->expects($this->once())->method('getParameter')->with($this->equalTo('charset'))->will($this->returnValue($contentCharset)); } // Content-Transfer-Encoding header $contentTransferEncodingHeader = $this->getMockBuilder('Zend\\Mail\\Header\\GenericHeader')->disableOriginalConstructor()->getMock(); if ($contentTransferEncoding !== null) { $contentTransferEncodingHeader->expects($this->once())->method('getFieldValue')->will($this->returnValue($contentTransferEncoding)); } // Headers object $headers = $this->getMockBuilder('Zend\\Mail\\Headers')->disableOriginalConstructor()->getMock(); $headers->expects($this->any())->method('has')->will($this->returnValueMap(array(array('Content-Type', $contentType !== null), array('Content-Transfer-Encoding', $contentTransferEncoding !== null)))); // Part object $this->part->expects($this->any())->method('getHeaders')->will($this->returnValue($headers)); $this->part->expects($this->any())->method('getHeader')->will($this->returnValueMap(array(array('Content-Type', null, $contentTypeHeader), array('Content-Transfer-Encoding', null, $contentTransferEncodingHeader)))); $this->part->expects($this->once())->method('getContent')->will($this->returnValue($contentValue)); $result = $this->attachment->getContent(); $this->assertEquals($expected, $result); $this->assertEquals($decodedValue, $result->getDecodedContent()); }