Bug206Test.php 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. require_once 'Swift/Tests/SwiftUnitTestCase.php';
  3. class Swift_Bug206Test extends Swift_Tests_SwiftUnitTestCase
  4. {
  5. private $_factory;
  6. public function setUp()
  7. {
  8. $factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory();
  9. $headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder(
  10. new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')
  11. );
  12. $paramEncoder = new Swift_Encoder_Rfc2231Encoder(
  13. new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')
  14. );
  15. $grammar = new Swift_Mime_Grammar();
  16. $this->_factory = new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $grammar);
  17. }
  18. public function testMailboxHeaderEncoding()
  19. {
  20. $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Name, Name', ' "Family Name, Name" <email@example.org>');
  21. $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé, Name', ' Family =?utf-8?Q?Nam=C3=A9=2C?= Name');
  22. $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé , Name', ' Family =?utf-8?Q?Nam=C3=A9_=2C?= Name');
  23. $this->_testHeaderIsFullyEncoded('email@example.org', 'Family Namé ;Name', ' Family =?utf-8?Q?Nam=C3=A9_=3BName?= ');
  24. }
  25. private function _testHeaderIsFullyEncoded($email, $name, $expected)
  26. {
  27. $mailboxHeader = $this->_factory->createMailboxHeader('To', array(
  28. $email => $name
  29. ));
  30. $headerBody = substr($mailboxHeader->toString(), 3, strlen($expected));
  31. $this->assertEqual($expected, $headerBody);
  32. }
  33. }