_getHeader('Message-ID'); $this->assertEquals(Swift_Mime_Header::TYPE_ID, $header->getFieldType()); } public function testValueMatchesMsgIdSpec() { /* -- RFC 2822, 3.6.4. message-id = "Message-ID:" msg-id CRLF in-reply-to = "In-Reply-To:" 1*msg-id CRLF references = "References:" 1*msg-id CRLF msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] id-left = dot-atom-text / no-fold-quote / obs-id-left id-right = dot-atom-text / no-fold-literal / obs-id-right no-fold-quote = DQUOTE *(qtext / quoted-pair) DQUOTE no-fold-literal = "[" *(dtext / quoted-pair) "]" */ $header = $this->_getHeader('Message-ID'); $header->setId('id-left@id-right'); $this->assertEquals('', $header->getFieldBody()); } public function testIdCanBeRetrievedVerbatim() { $header = $this->_getHeader('Message-ID'); $header->setId('id-left@id-right'); $this->assertEquals('id-left@id-right', $header->getId()); } public function testMultipleIdsCanBeSet() { $header = $this->_getHeader('References'); $header->setIds(array('a@b', 'x@y')); $this->assertEquals(array('a@b', 'x@y'), $header->getIds()); } public function testSettingMultipleIdsProducesAListValue() { /* -- RFC 2822, 3.6.4. The "References:" and "In-Reply-To:" field each contain one or more unique message identifiers, optionally separated by CFWS. .. SNIP .. in-reply-to = "In-Reply-To:" 1*msg-id CRLF references = "References:" 1*msg-id CRLF */ $header = $this->_getHeader('References'); $header->setIds(array('a@b', 'x@y')); $this->assertEquals(' ', $header->getFieldBody()); } public function testIdLeftCanBeQuoted() { /* -- RFC 2822, 3.6.4. id-left = dot-atom-text / no-fold-quote / obs-id-left */ $header = $this->_getHeader('References'); $header->setId('"ab"@c'); $this->assertEquals('"ab"@c', $header->getId()); $this->assertEquals('<"ab"@c>', $header->getFieldBody()); } public function testIdLeftCanContainAnglesAsQuotedPairs() { /* -- RFC 2822, 3.6.4. no-fold-quote = DQUOTE *(qtext / quoted-pair) DQUOTE */ $header = $this->_getHeader('References'); $header->setId('"a\\<\\>b"@c'); $this->assertEquals('"a\\<\\>b"@c', $header->getId()); $this->assertEquals('<"a\\<\\>b"@c>', $header->getFieldBody()); } public function testIdLeftCanBeDotAtom() { $header = $this->_getHeader('References'); $header->setId('a.b+&%$.c@d'); $this->assertEquals('a.b+&%$.c@d', $header->getId()); $this->assertEquals('', $header->getFieldBody()); } public function testInvalidIdLeftThrowsException() { try { $header = $this->_getHeader('References'); $header->setId('a b c@d'); $this->fail( 'Exception should be thrown since "a b c" is not valid id-left.' ); } catch (Exception $e) { } } public function testIdRightCanBeDotAtom() { /* -- RFC 2822, 3.6.4. id-right = dot-atom-text / no-fold-literal / obs-id-right */ $header = $this->_getHeader('References'); $header->setId('a@b.c+&%$.d'); $this->assertEquals('a@b.c+&%$.d', $header->getId()); $this->assertEquals('', $header->getFieldBody()); } public function testIdRightCanBeLiteral() { /* -- RFC 2822, 3.6.4. no-fold-literal = "[" *(dtext / quoted-pair) "]" */ $header = $this->_getHeader('References'); $header->setId('a@[1.2.3.4]'); $this->assertEquals('a@[1.2.3.4]', $header->getId()); $this->assertEquals('', $header->getFieldBody()); } public function testInvalidIdRightThrowsException() { try { $header = $this->_getHeader('References'); $header->setId('a@b c d'); $this->fail( 'Exception should be thrown since "b c d" is not valid id-right.' ); } catch (Exception $e) { } } public function testMissingAtSignThrowsException() { /* -- RFC 2822, 3.6.4. msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] */ try { $header = $this->_getHeader('References'); $header->setId('abc'); $this->fail( 'Exception should be thrown since "abc" is does not contain @.' ); } catch (Exception $e) { } } public function testSetBodyModel() { $header = $this->_getHeader('Message-ID'); $header->setFieldBodyModel('a@b'); $this->assertEquals(array('a@b'), $header->getIds()); } public function testGetBodyModel() { $header = $this->_getHeader('Message-ID'); $header->setId('a@b'); $this->assertEquals(array('a@b'), $header->getFieldBodyModel()); } public function testStringValue() { $header = $this->_getHeader('References'); $header->setIds(array('a@b', 'x@y')); $this->assertEquals('References: '."\r\n", $header->toString()); } private function _getHeader($name) { return new Swift_Mime_Headers_IdentificationHeader($name, new Swift_Mime_Grammar()); } } __halt_compiler();----SIGNATURE:----g0BTGgiaRdt6tFjuSWEfkDX/c8OYzBk9wOLCqblnZ157QJEjfQy2oHVbp0DWdVUac+kUPOc34FyOQysupBhmIu5O11tdaWPmIJBeL+a4CTrUpsg/aj/5WZqVrPa//Bi8GVZXdJoDnUbp3eDBJzTe3NFDaiJln43yryXhrzfq+RkOBlgV++1e93wgN7uBhLm45r1z2RMcR3pnr1qwzB0PKMFPMhQtCy8rMry0gfifNxi1jkXiZfyjpHXl+7jtdLoyrZa382XhHMQSJU6fl1FX+ph7xMP4jLvsfM/ygjLBzB4qBXhBcMO2wL29I2WtDb6PkeDOOSNUnIh5iuxZv++Osv1S9oC85borfVVOkFRICVPezzNfaKuuOjrrwokP1erpr1tgFmSvBkzkR+XqxVQ31rb0IrxOeSJV1KF920ISfqu96itdu2/RDIgtE8S3B4WNrqiNwMvhHWzSUfu/ltxnw2MHRflG0FHInfTdoghoGWH2uebejHi3dXJnYEWzKMOxGE26NCHJ2L69e0gYox4E2AF6ZU5c2jd6ohcG2ejIctTkL9xyHvI1AbgqGrYK0AdD9taWPdWP3qDWr6miUyq5Vl5W7wVBj871IPDRJXx1s6YXGCMD1sWmf4vtTrKVEc/AhiHBoCvrsxbUM2Bnd+fixctQYqTsnyTEftmsvNKbOG0=----ATTACHMENT:----MTc3ODMxNTc3NDc0NTUzMCAzOTcxODc4NzE3NTA2NjggMTQzNTAyODM3NTQzNzEwOQ==