MaildirMessageOldTest.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. /**
  3. * @category Zend
  4. * @package Zend_Mail
  5. * @subpackage UnitTests
  6. */
  7. /**
  8. * Zend_Mail_Storage_Maildir
  9. */
  10. require_once 'Zend/Mail/Storage/Maildir.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_Maildir_OldMessage extends Zend_Mail_Storage_Maildir
  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_MaildirMessageOldTest extends PHPUnit_Framework_TestCase
  42. {
  43. protected $_originalMaildir;
  44. protected $_maildir;
  45. protected $_tmpdir;
  46. public function setUp()
  47. {
  48. $this->_originalMaildir = dirname(__FILE__) . '/_files/test.maildir/';
  49. if (!is_dir($this->_originalMaildir . '/cur/')) {
  50. $this->markTestSkipped('You have to unpack maildir.tar in Zend/Mail/_files/test.maildir/ '
  51. . 'directory before enabling the maildir tests');
  52. return;
  53. }
  54. if ($this->_tmpdir == null) {
  55. if (TESTS_ZEND_MAIL_TEMPDIR != null) {
  56. $this->_tmpdir = TESTS_ZEND_MAIL_TEMPDIR;
  57. } else {
  58. $this->_tmpdir = dirname(__FILE__) . '/_files/test.tmp/';
  59. }
  60. if (!file_exists($this->_tmpdir)) {
  61. mkdir($this->_tmpdir);
  62. }
  63. $count = 0;
  64. $dh = opendir($this->_tmpdir);
  65. while (readdir($dh) !== false) {
  66. ++$count;
  67. }
  68. closedir($dh);
  69. if ($count != 2) {
  70. $this->markTestSkipped('Are you sure your tmp dir is a valid empty dir?');
  71. return;
  72. }
  73. }
  74. $this->_maildir = $this->_tmpdir;
  75. foreach (array('cur', 'new') as $dir) {
  76. mkdir($this->_tmpdir . $dir);
  77. $dh = opendir($this->_originalMaildir . $dir);
  78. while (($entry = readdir($dh)) !== false) {
  79. $entry = $dir . '/' . $entry;
  80. if (!is_file($this->_originalMaildir . $entry)) {
  81. continue;
  82. }
  83. copy($this->_originalMaildir . $entry, $this->_tmpdir . $entry);
  84. }
  85. closedir($dh);
  86. }
  87. }
  88. public function tearDown()
  89. {
  90. foreach (array('cur', 'new') as $dir) {
  91. $dh = opendir($this->_tmpdir . $dir);
  92. while (($entry = readdir($dh)) !== false) {
  93. $entry = $this->_tmpdir . $dir . '/' . $entry;
  94. if (!is_file($entry)) {
  95. continue;
  96. }
  97. unlink($entry);
  98. }
  99. closedir($dh);
  100. rmdir($this->_tmpdir . $dir);
  101. }
  102. }
  103. public function testFetchHeader()
  104. {
  105. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  106. $subject = $mail->getMessage(1)->subject;
  107. $this->assertEquals('Simple Message', $subject);
  108. }
  109. /*
  110. public function testFetchTopBody()
  111. {
  112. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  113. $content = $mail->getHeader(3, 1)->getContent();
  114. $this->assertEquals('Fair river! in thy bright, clear flow', trim($content));
  115. }
  116. */
  117. public function testFetchMessageHeader()
  118. {
  119. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  120. $subject = $mail->getMessage(1)->subject;
  121. $this->assertEquals('Simple Message', $subject);
  122. }
  123. public function testFetchMessageBody()
  124. {
  125. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  126. $content = $mail->getMessage(3)->getContent();
  127. list($content, ) = explode("\n", $content, 2);
  128. $this->assertEquals('Fair river! in thy bright, clear flow', trim($content));
  129. }
  130. public function testHasFlag()
  131. {
  132. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  133. $this->assertFalse($mail->getMessage(5)->hasFlag(Zend_Mail_Storage::FLAG_SEEN));
  134. $this->assertTrue($mail->getMessage(5)->hasFlag(Zend_Mail_Storage::FLAG_RECENT));
  135. $this->assertTrue($mail->getMessage(2)->hasFlag(Zend_Mail_Storage::FLAG_FLAGGED));
  136. $this->assertFalse($mail->getMessage(2)->hasFlag(Zend_Mail_Storage::FLAG_ANSWERED));
  137. }
  138. public function testGetFlags()
  139. {
  140. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  141. $flags = $mail->getMessage(1)->getFlags();
  142. $this->assertTrue(isset($flags[Zend_Mail_Storage::FLAG_SEEN]));
  143. $this->assertTrue(in_array(Zend_Mail_Storage::FLAG_SEEN, $flags));
  144. }
  145. public function testFetchPart()
  146. {
  147. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  148. $this->assertEquals($mail->getMessage(4)->getPart(2)->contentType, 'text/x-vertical');
  149. }
  150. public function testPartSize()
  151. {
  152. $mail = new Zend_Mail_Storage_Maildir_OldMessage(array('dirname' => $this->_maildir));
  153. $this->assertEquals($mail->getMessage(4)->getPart(2)->getSize(), 80);
  154. }
  155. }