Base64HeaderEncoderAcceptanceTest.php 1.3KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. require_once 'Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php';
  3. require_once 'Swift/ByteStream/ArrayByteStream.php';
  4. class Swift_Mime_HeaderEncoder_Base64HeaderEncoderAcceptanceTest extends UnitTestCase
  5. {
  6. private $_encoder;
  7. public function setUp()
  8. {
  9. $this->_encoder = new Swift_Mime_HeaderEncoder_Base64HeaderEncoder();
  10. }
  11. public function testEncodingJIS()
  12. {
  13. if (function_exists('mb_convert_encoding')) {
  14. // base64_encode and split cannot handle long JIS text to fold
  15. $subject = "長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い件名";
  16. $encodedWrapperLength = strlen('=?iso-2022-jp?' . $this->_encoder->getName() . '??=');
  17. $old = mb_internal_encoding();
  18. mb_internal_encoding('utf-8');
  19. $newstring = mb_encode_mimeheader($subject, 'iso-2022-jp', 'B', "\r\n");
  20. mb_internal_encoding($old);
  21. $encoded = $this->_encoder->encodeString($subject, 0, 75 - $encodedWrapperLength, 'iso-2022-jp');
  22. $this->assertEqual(
  23. $encoded, $newstring,
  24. 'Encoded string should decode back to original string for sample '
  25. );
  26. }
  27. }
  28. }