mirror of
https://github.com/retailcrm/Fetch.git
synced 2024-11-22 11:16:03 +03:00
Merge pull request #131 from Lewiscowles1986/patch-2
can now get number of messages in a sub-folder
This commit is contained in:
commit
a17ae8abbf
@ -322,11 +322,22 @@ class Server
|
||||
/**
|
||||
* This returns the number of messages that the current mailbox contains.
|
||||
*
|
||||
* @param string $mailbox
|
||||
* @return int
|
||||
*/
|
||||
public function numMessages()
|
||||
public function numMessages($mailbox='')
|
||||
{
|
||||
return imap_num_msg($this->getImapStream());
|
||||
$cnt = 0;
|
||||
if ($mailbox==='') {
|
||||
$cnt = imap_num_msg($this->getImapStream());
|
||||
} elseif ($this->hasMailbox($mailbox) && $mailbox !== '') {
|
||||
$oldMailbox = $this->getMailBox();
|
||||
$this->setMailbox($mailbox);
|
||||
$cnt = $this->numMessages();
|
||||
$this->setMailbox($oldMailbox);
|
||||
}
|
||||
|
||||
return ((int) $cnt);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -212,32 +212,29 @@ class MessageTest extends \PHPUnit_Framework_TestCase
|
||||
// Testing by moving message from "Test Folder" to "Sent"
|
||||
|
||||
// Count Test Folder
|
||||
$server->setMailBox('Test Folder');
|
||||
$testFolderNumStart = $server->numMessages();
|
||||
$testFolderNumStart = $server->numMessages('Test Folder');
|
||||
$server->setMailbox('Test Folder');
|
||||
$this->assertEquals($testFolderNumStart, $server->numMessages(), 'Server presents consistent information between numMessages when mailbox set and directly queried for number of messages');
|
||||
|
||||
// Get message from Test Folder
|
||||
$message = $server->getMessageByUid(1);
|
||||
$message = current($server->getMessages(1));
|
||||
$this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.');
|
||||
|
||||
// Switch to Sent folder, count messages
|
||||
$server->setMailBox('Sent');
|
||||
$sentFolderNumStart = $server->numMessages();
|
||||
$sentFolderNumStart = $server->numMessages('Sent');
|
||||
$server->setMailbox('Sent');
|
||||
$this->assertEquals($sentFolderNumStart, $server->numMessages(), 'Server presents consistent information between numMessages when mailbox set and directly queried for number of messages');
|
||||
|
||||
// Switch to "Flagged" folder in order to test that function properly returns to it
|
||||
$this->assertTrue($server->setMailBox('Flagged Email'));
|
||||
|
||||
// Move the message!
|
||||
$this->assertTrue($message->moveToMailBox('Sent'));
|
||||
|
||||
// Make sure we're still in the same folder
|
||||
$this->assertEquals('Flagged Email', $server->getMailBox(), 'Returned Server back to right mailbox.');
|
||||
|
||||
$this->assertAttributeEquals('Sent', 'mailbox', $message, 'Message mailbox changed to new location.');
|
||||
|
||||
// Make sure Test Folder lost a message
|
||||
$this->assertTrue($server->setMailBox('Test Folder'));
|
||||
$this->assertEquals($testFolderNumStart - 1, $server->numMessages(), 'Message moved out of Test Folder.');
|
||||
|
||||
// Make sure Sent folder gains one
|
||||
$this->assertTrue($server->setMailBox('Sent'));
|
||||
$this->assertEquals($sentFolderNumStart + 1, $server->numMessages(), 'Message moved into Sent Folder.');
|
||||
|
@ -100,6 +100,7 @@ class ServerTest extends \PHPUnit_Framework_TestCase
|
||||
$server = static::getServer();
|
||||
$numMessages = $server->numMessages();
|
||||
$this->assertEquals(self::$num_messages_inbox, $numMessages);
|
||||
$this->assertEquals(0, $server->numMessages( 'DOESNOTEXIST'.time() ) );
|
||||
}
|
||||
|
||||
public function testGetMessages()
|
||||
|
Loading…
Reference in New Issue
Block a user