PlainContentEncoderAcceptanceTest.php 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. require_once 'Swift/Mime/ContentEncoder/PlainContentEncoder.php';
  3. require_once 'Swift/ByteStream/ArrayByteStream.php';
  4. class Swift_Mime_ContentEncoder_PlainContentEncoderAcceptanceTest
  5. extends UnitTestCase
  6. {
  7. private $_samplesDir;
  8. private $_encoder;
  9. public function setUp()
  10. {
  11. $this->_samplesDir = realpath(dirname(__FILE__) . '/../../../../_samples/charsets');
  12. $this->_encoder = new Swift_Mime_ContentEncoder_PlainContentEncoder('8bit');
  13. }
  14. public function testEncodingAndDecodingSamplesString()
  15. {
  16. $sampleFp = opendir($this->_samplesDir);
  17. while (false !== $encodingDir = readdir($sampleFp)) {
  18. if (substr($encodingDir, 0, 1) == '.') {
  19. continue;
  20. }
  21. $sampleDir = $this->_samplesDir . '/' . $encodingDir;
  22. if (is_dir($sampleDir)) {
  23. $fileFp = opendir($sampleDir);
  24. while (false !== $sampleFile = readdir($fileFp)) {
  25. if (substr($sampleFile, 0, 1) == '.') {
  26. continue;
  27. }
  28. $text = file_get_contents($sampleDir . '/' . $sampleFile);
  29. $encodedText = $this->_encoder->encodeString($text);
  30. $this->assertEqual(
  31. $encodedText, $text,
  32. '%s: Encoded string should be identical to original string for sample ' .
  33. $sampleDir . '/' . $sampleFile
  34. );
  35. }
  36. closedir($fileFp);
  37. }
  38. }
  39. closedir($sampleFp);
  40. }
  41. public function testEncodingAndDecodingSamplesByteStream()
  42. {
  43. $sampleFp = opendir($this->_samplesDir);
  44. while (false !== $encodingDir = readdir($sampleFp)) {
  45. if (substr($encodingDir, 0, 1) == '.') {
  46. continue;
  47. }
  48. $sampleDir = $this->_samplesDir . '/' . $encodingDir;
  49. if (is_dir($sampleDir)) {
  50. $fileFp = opendir($sampleDir);
  51. while (false !== $sampleFile = readdir($fileFp)) {
  52. if (substr($sampleFile, 0, 1) == '.') {
  53. continue;
  54. }
  55. $text = file_get_contents($sampleDir . '/' . $sampleFile);
  56. $os = new Swift_ByteStream_ArrayByteStream();
  57. $os->write($text);
  58. $is = new Swift_ByteStream_ArrayByteStream();
  59. $this->_encoder->encodeByteStream($os, $is);
  60. $encoded = '';
  61. while (false !== $bytes = $is->read(8192)) {
  62. $encoded .= $bytes;
  63. }
  64. $this->assertEqual(
  65. $encoded, $text,
  66. '%s: Encoded string should be identical to original string for sample ' .
  67. $sampleDir . '/' . $sampleFile
  68. );
  69. }
  70. closedir($fileFp);
  71. }
  72. }
  73. closedir($sampleFp);
  74. }
  75. }