QpEncoderAcceptanceTest.php 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. require_once 'Swift/Tests/SwiftUnitTestCase.php';
  3. require_once 'Swift/Encoder/QpEncoder.php';
  4. require_once 'Swift/CharacterStream/ArrayCharacterStream.php';
  5. require_once 'Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php';
  6. class Swift_Encoder_QpEncoderAcceptanceTest
  7. extends Swift_Tests_SwiftUnitTestCase
  8. {
  9. private $_samplesDir;
  10. private $_factory;
  11. public function setUp()
  12. {
  13. $this->_samplesDir = realpath(dirname(__FILE__) . '/../../../_samples/charsets');
  14. $this->_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory();
  15. }
  16. public function testEncodingAndDecodingSamples()
  17. {
  18. $sampleFp = opendir($this->_samplesDir);
  19. while (false !== $encodingDir = readdir($sampleFp)) {
  20. if (substr($encodingDir, 0, 1) == '.') {
  21. continue;
  22. }
  23. $encoding = $encodingDir;
  24. $charStream = new Swift_CharacterStream_ArrayCharacterStream(
  25. $this->_factory, $encoding);
  26. $encoder = new Swift_Encoder_QpEncoder($charStream);
  27. $sampleDir = $this->_samplesDir . '/' . $encodingDir;
  28. if (is_dir($sampleDir)) {
  29. $fileFp = opendir($sampleDir);
  30. while (false !== $sampleFile = readdir($fileFp)) {
  31. if (substr($sampleFile, 0, 1) == '.') {
  32. continue;
  33. }
  34. $text = file_get_contents($sampleDir . '/' . $sampleFile);
  35. $encodedText = $encoder->encodeString($text);
  36. $this->assertEqual(
  37. quoted_printable_decode($encodedText), $text,
  38. '%s: Encoded string should decode back to original string for sample ' .
  39. $sampleDir . '/' . $sampleFile
  40. );
  41. }
  42. closedir($fileFp);
  43. }
  44. }
  45. closedir($sampleFp);
  46. }
  47. }