| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | 
							- <?php
 - 
 - require_once 'Swift/Tests/SwiftUnitTestCase.php';
 - require_once 'Swift/Mime/Headers/IdentificationHeader.php';
 - require_once 'Swift/Mime/Grammar.php';
 - 
 - class Swift_Mime_Headers_IdentificationHeaderTest
 -   extends Swift_Tests_SwiftUnitTestCase
 - {
 -   
 -   public function testTypeIsIdHeader()
 -   {
 -     $header = $this->_getHeader('Message-ID');
 -     $this->assertEqual(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->assertEqual('<id-left@id-right>', $header->getFieldBody());
 -   }
 -   
 -   public function testIdCanBeRetrievedVerbatim()
 -   {
 -     $header = $this->_getHeader('Message-ID');
 -     $header->setId('id-left@id-right');
 -     $this->assertEqual('id-left@id-right', $header->getId());
 -   }
 -   
 -   public function testMultipleIdsCanBeSet()
 -   {
 -     $header = $this->_getHeader('References');
 -     $header->setIds(array('a@b', 'x@y'));
 -     $this->assertEqual(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->assertEqual('<a@b> <x@y>', $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->assertEqual('"ab"@c', $header->getId());
 -     $this->assertEqual('<"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->assertEqual('"a\\<\\>b"@c', $header->getId());
 -     $this->assertEqual('<"a\\<\\>b"@c>', $header->getFieldBody());
 -   }
 -   
 -   public function testIdLeftCanBeDotAtom()
 -   {
 -     $header = $this->_getHeader('References');
 -     $header->setId('a.b+&%$.c@d');
 -     $this->assertEqual('a.b+&%$.c@d', $header->getId());
 -     $this->assertEqual('<a.b+&%$.c@d>', $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)
 -     {
 -       $this->pass();
 -     }
 -   }
 -   
 -   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->assertEqual('a@b.c+&%$.d', $header->getId());
 -     $this->assertEqual('<a@b.c+&%$.d>', $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->assertEqual('a@[1.2.3.4]', $header->getId());
 -     $this->assertEqual('<a@[1.2.3.4]>', $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)
 -     {
 -       $this->pass();
 -     }
 -   }
 -   
 -   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)
 -     {
 -       $this->pass();
 -     }
 -   }
 -   
 -   public function testSetBodyModel()
 -   {
 -     $header = $this->_getHeader('Message-ID');
 -     $header->setFieldBodyModel('a@b');
 -     $this->assertEqual(array('a@b'), $header->getIds());
 -   }
 -   
 -   public function testGetBodyModel()
 -   {
 -     $header = $this->_getHeader('Message-ID');
 -     $header->setId('a@b');
 -     $this->assertEqual(array('a@b'), $header->getFieldBodyModel());
 -   }
 -   
 -   public function testStringValue()
 -   {
 -     $header = $this->_getHeader('References');
 -     $header->setIds(array('a@b', 'x@y'));
 -     $this->assertEqual('References: <a@b> <x@y>' . "\r\n", $header->toString());
 -   }
 -   
 -   // -- Private methods
 -   
 -   private function _getHeader($name)
 -   {
 -     return new Swift_Mime_Headers_IdentificationHeader($name, new Swift_Mime_Grammar());
 -   }
 -   
 - }
 
 
  |