MboxMessageOldTest.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. /**
  3. * @category Zend
  4. * @package Zend_Mail
  5. * @subpackage UnitTests
  6. */
  7. /**
  8. * Zend_Mail_Storage_Mbox
  9. */
  10. require_once 'Zend/Mail/Storage/Mbox.php';
  11. /**
  12. * Zend_Config
  13. */
  14. require_once 'Zend/Config.php';
  15. /**
  16. * PHPUnit test case
  17. */
  18. require_once 'PHPUnit/Framework/TestCase.php';
  19. /**
  20. * Maildir class, which uses old message class
  21. *
  22. * @category Zend
  23. * @package Zend_Mail
  24. * @subpackage UnitTests
  25. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  26. * @license http://framework.zend.com/license/new-bsd New BSD License
  27. */
  28. class Zend_Mail_Storage_Mbox_OldMessage extends Zend_Mail_Storage_Mbox
  29. {
  30. /**
  31. * used message class
  32. * @var string
  33. */
  34. protected $_messageClass = 'Zend_Mail_Message';
  35. }
  36. /**
  37. * @category Zend
  38. * @package Zend_Mail
  39. * @subpackage UnitTests
  40. */
  41. class Zend_Mail_MboxMessageOldTest extends PHPUnit_Framework_TestCase
  42. {
  43. protected $_mboxOriginalFile;
  44. protected $_mboxFile;
  45. protected $_tmpdir;
  46. public function setUp()
  47. {
  48. if ($this->_tmpdir == null) {
  49. if (TESTS_ZEND_MAIL_TEMPDIR != null) {
  50. $this->_tmpdir = TESTS_ZEND_MAIL_TEMPDIR;
  51. } else {
  52. $this->_tmpdir = dirname(__FILE__) . '/_files/test.tmp/';
  53. }
  54. if (!file_exists($this->_tmpdir)) {
  55. mkdir($this->_tmpdir);
  56. }
  57. $count = 0;
  58. $dh = opendir($this->_tmpdir);
  59. while (readdir($dh) !== false) {
  60. ++$count;
  61. }
  62. closedir($dh);
  63. if ($count != 2) {
  64. $this->markTestSkipped('Are you sure your tmp dir is a valid empty dir?');
  65. return;
  66. }
  67. }
  68. $this->_mboxOriginalFile = dirname(__FILE__) . '/_files/test.mbox/INBOX';
  69. $this->_mboxFile = $this->_tmpdir . 'INBOX';
  70. copy($this->_mboxOriginalFile, $this->_mboxFile);
  71. }
  72. public function tearDown()
  73. {
  74. unlink($this->_mboxFile);
  75. }
  76. public function testFetchHeader()
  77. {
  78. $mail = new Zend_Mail_Storage_Mbox_OldMessage(array('filename' => $this->_mboxFile));
  79. $subject = $mail->getMessage(1)->subject;
  80. $this->assertEquals('Simple Message', $subject);
  81. }
  82. /*
  83. public function testFetchTopBody()
  84. {
  85. $mail = new Zend_Mail_Storage_Mbox_OldMessage(array('filename' => $this->_mboxFile));
  86. $content = $mail->getHeader(3, 1)->getContent();
  87. $this->assertEquals('Fair river! in thy bright, clear flow', trim($content));
  88. }
  89. */
  90. public function testFetchMessageHeader()
  91. {
  92. $mail = new Zend_Mail_Storage_Mbox_OldMessage(array('filename' => $this->_mboxFile));
  93. $subject = $mail->getMessage(1)->subject;
  94. $this->assertEquals('Simple Message', $subject);
  95. }
  96. public function testFetchMessageBody()
  97. {
  98. $mail = new Zend_Mail_Storage_Mbox_OldMessage(array('filename' => $this->_mboxFile));
  99. $content = $mail->getMessage(3)->getContent();
  100. list($content, ) = explode("\n", $content, 2);
  101. $this->assertEquals('Fair river! in thy bright, clear flow', trim($content));
  102. }
  103. public function testShortMbox()
  104. {
  105. $fh = fopen($this->_mboxFile, 'w');
  106. fputs($fh, "From \r\nSubject: test\r\nFrom \r\nSubject: test2\r\n");
  107. fclose($fh);
  108. $mail = new Zend_Mail_Storage_Mbox_OldMessage(array('filename' => $this->_mboxFile));
  109. $this->assertEquals($mail->countMessages(), 2);
  110. $this->assertEquals($mail->getMessage(1)->subject, 'test');
  111. $this->assertEquals($mail->getMessage(1)->getContent(), '');
  112. $this->assertEquals($mail->getMessage(2)->subject, 'test2');
  113. $this->assertEquals($mail->getMessage(2)->getContent(), '');
  114. }
  115. }