From 397b748370c8a0a2cf3c457af0d954348284300f Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sat, 23 May 2015 23:10:58 +0100 Subject: [PATCH 01/18] can now get number of messages in a sub-folder --- src/Fetch/Server.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index c5c9ced..883ca0c 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -318,11 +318,18 @@ class Server /** * This returns the number of messages that the current mailbox contains. * + * @param string $mailbox the mailbox path if required to get sub-folder counts * @return int */ - public function numMessages() + public function numMessages( $mailbox='' ) { - return imap_num_msg($this->getImapStream()); + $oldMailbox = $this->getMailBox(); + if( $mailbox !== '' ) { + $this->setMailbox( $mailbox ); + } + $cnt = imap_num_msg($this->getImapStream()); + $this->setMailbox( $oldMailbox ); + return $cnt; } /** From c40d2ce48c8723eaffe96b0967a60b329a4bba05 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 10:38:53 +0100 Subject: [PATCH 02/18] more accurate check with support for zero --- src/Fetch/Server.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 883ca0c..2ba2fa1 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -323,13 +323,16 @@ class Server */ public function numMessages( $mailbox='' ) { - $oldMailbox = $this->getMailBox(); - if( $mailbox !== '' ) { + $mboxExists = $this->hasMailbox( $mailbox ); + if( $mboxExists ) { + $oldMailbox = $this->getMailBox(); $this->setMailbox( $mailbox ); } - $cnt = imap_num_msg($this->getImapStream()); - $this->setMailbox( $oldMailbox ); - return $cnt; + $cnt = imap_num_msg( $this->getImapStream() ); + if( $mboxExists ) { + $this->setMailbox( $oldMailbox ); + } + return ( !$mboxExists && $mailbox !== '' ) ? 0 : $cnt; } /** From 9c3fe885e83541df898e78effb8e004735b13ac2 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 10:41:14 +0100 Subject: [PATCH 03/18] Update ServerTest.php --- tests/Fetch/Test/ServerTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Fetch/Test/ServerTest.php b/tests/Fetch/Test/ServerTest.php index d9875a6..4dcb6d6 100644 --- a/tests/Fetch/Test/ServerTest.php +++ b/tests/Fetch/Test/ServerTest.php @@ -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() From 53b3aabca070b04e351b444a93f80a785128408e Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 10:46:32 +0100 Subject: [PATCH 04/18] updated test to encompass new numMessages syntax --- tests/Fetch/Test/MessageTest.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index 970cd30..d65ae7f 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -175,16 +175,14 @@ 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'); // Get message from Test Folder $message = $server->getMessageByUid(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'); // Switch to "Flagged" folder in order to test that function properly returns to it $this->assertTrue($server->setMailBox('Flagged Email')); @@ -199,11 +197,11 @@ class MessageTest extends \PHPUnit_Framework_TestCase // 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.'); + $this->assertEquals($testFolderNumStart - 1, $server->numMessages('Test Folder'), '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.'); + $this->assertEquals($sentFolderNumStart + 1, $server->numMessages('Sent'), 'Message moved into Sent Folder.'); } public function testDecode() From 030dade51bf45b5c340c9f5d79c92b7a4a9240da Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 11:37:16 +0100 Subject: [PATCH 05/18] More PSR BS! --- src/Fetch/Server.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 2ba2fa1..6700b98 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -321,18 +321,18 @@ class Server * @param string $mailbox the mailbox path if required to get sub-folder counts * @return int */ - public function numMessages( $mailbox='' ) + public function numMessages($mailbox='') { - $mboxExists = $this->hasMailbox( $mailbox ); - if( $mboxExists ) { + $mboxExists = $this->hasMailbox($mailbox); + if ($mboxExists){ $oldMailbox = $this->getMailBox(); - $this->setMailbox( $mailbox ); + $this->setMailbox($mailbox); } - $cnt = imap_num_msg( $this->getImapStream() ); - if( $mboxExists ) { - $this->setMailbox( $oldMailbox ); + $cnt = imap_num_msg($this->getImapStream()); + if ( $mboxExists ){ + $this->setMailbox($oldMailbox); } - return ( !$mboxExists && $mailbox !== '' ) ? 0 : $cnt; + return ((!$mboxExists && $mailbox !== '') ? 0 : $cnt); } /** From d491510b278edb011d6d843c8a188a399ff9d55b Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 11:49:11 +0100 Subject: [PATCH 06/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index d65ae7f..56fb546 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -178,7 +178,7 @@ class MessageTest extends \PHPUnit_Framework_TestCase $testFolderNumStart = $server->numMessages('Test Folder'); // Get message from Test Folder - $message = $server->getMessageByUid(1); + $message = $server->getMessage(1); $this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.'); // Switch to Sent folder, count messages From e6f39923296f1509553803070589efb9c797c410 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 11:53:23 +0100 Subject: [PATCH 07/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index 56fb546..e5ec0cf 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -178,7 +178,7 @@ class MessageTest extends \PHPUnit_Framework_TestCase $testFolderNumStart = $server->numMessages('Test Folder'); // Get message from Test Folder - $message = $server->getMessage(1); + $message = $server->getMessages(1); $this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.'); // Switch to Sent folder, count messages From 234a771ea1be0c817dcf868b89a4f488ae1d596b Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 11:56:59 +0100 Subject: [PATCH 08/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index e5ec0cf..27edcb4 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -178,7 +178,7 @@ class MessageTest extends \PHPUnit_Framework_TestCase $testFolderNumStart = $server->numMessages('Test Folder'); // Get message from Test Folder - $message = $server->getMessages(1); + $message = current($server->getMessages(1)); $this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.'); // Switch to Sent folder, count messages From 0034aa69e9cb11e364430458dda71c0ed4981f92 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:05:01 +0100 Subject: [PATCH 09/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index 27edcb4..caa5c1b 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -175,14 +175,18 @@ 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('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 = current($server->getMessages(1)); $this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.'); // Switch to Sent folder, count messages + $server->setMailbox('Sent'); $sentFolderNumStart = $server->numMessages('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')); From d52ceb17ece2533799389befb1ab3811e7a378ed Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:08:51 +0100 Subject: [PATCH 10/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index caa5c1b..fed04da 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -175,8 +175,8 @@ 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('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 @@ -184,8 +184,8 @@ class MessageTest extends \PHPUnit_Framework_TestCase $this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.'); // Switch to Sent folder, count messages - $server->setMailbox('Sent'); $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 From 470cc114b0d237cb99961d539ac87fac264d06d7 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:19:25 +0100 Subject: [PATCH 11/18] Logic modification --- src/Fetch/Server.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 6700b98..7c4bb44 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -323,13 +323,13 @@ class Server */ public function numMessages($mailbox='') { - $mboxExists = $this->hasMailbox($mailbox); + $oldMailbox = $this->getMailBox(); + $mboxExists = ($this->hasMailbox($mailbox) && $oldMailbox != $mailbox); if ($mboxExists){ - $oldMailbox = $this->getMailBox(); $this->setMailbox($mailbox); } $cnt = imap_num_msg($this->getImapStream()); - if ( $mboxExists ){ + if ($mboxExists){ $this->setMailbox($oldMailbox); } return ((!$mboxExists && $mailbox !== '') ? 0 : $cnt); From 5e11d722ad3508831fc52a4edfc03c1a960db2a0 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:27:42 +0100 Subject: [PATCH 12/18] logic update... --- src/Fetch/Server.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 7c4bb44..3b401ca 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -324,11 +324,11 @@ class Server public function numMessages($mailbox='') { $oldMailbox = $this->getMailBox(); - $mboxExists = ($this->hasMailbox($mailbox) && $oldMailbox != $mailbox); + $mboxExists = ($this->hasMailbox($mailbox) && $oldMailbox !== $mailbox && $mailbox !== ''); if ($mboxExists){ $this->setMailbox($mailbox); } - $cnt = imap_num_msg($this->getImapStream()); + $cnt = imap_num_msg( $this->getImapStream() ); if ($mboxExists){ $this->setMailbox($oldMailbox); } From 6986ef830fc930143851db91838fa5a45c98c9ba Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:33:21 +0100 Subject: [PATCH 13/18] Update MessageTest.php --- tests/Fetch/Test/MessageTest.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/Fetch/Test/MessageTest.php b/tests/Fetch/Test/MessageTest.php index fed04da..52b6dbb 100644 --- a/tests/Fetch/Test/MessageTest.php +++ b/tests/Fetch/Test/MessageTest.php @@ -190,22 +190,17 @@ class MessageTest extends \PHPUnit_Framework_TestCase // 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('Test Folder'), 'Message moved out of 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('Sent'), 'Message moved into Sent Folder.'); + $this->assertEquals($sentFolderNumStart + 1, $server->numMessages(), 'Message moved into Sent Folder.'); } public function testDecode() From 743ceff0dec75b0be2ffd539287a13c70373dd62 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:41:39 +0100 Subject: [PATCH 14/18] logic update (should be the last) --- src/Fetch/Server.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 3b401ca..743f6db 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -323,16 +323,17 @@ class Server */ public function numMessages($mailbox='') { + if ($mailbox===''){ + return imap_num_msg( $this->getImapStream() ); + } + if (!$this->hasMailbox($mailbox) && $mailbox !== ''){ + return 0; + } $oldMailbox = $this->getMailBox(); - $mboxExists = ($this->hasMailbox($mailbox) && $oldMailbox !== $mailbox && $mailbox !== ''); - if ($mboxExists){ - $this->setMailbox($mailbox); - } - $cnt = imap_num_msg( $this->getImapStream() ); - if ($mboxExists){ - $this->setMailbox($oldMailbox); - } - return ((!$mboxExists && $mailbox !== '') ? 0 : $cnt); + $this->setMailbox($mailbox); + $cnt = imap_num_msg($this->getImapStream()); + $this->setMailbox($oldMailbox); + return $cnt; } /** From 44a2080f3ed0a11b018ed29c79d15c9a6a474311 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:46:35 +0100 Subject: [PATCH 15/18] Update Server.php --- src/Fetch/Server.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 743f6db..b59b731 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -319,19 +319,19 @@ class Server * This returns the number of messages that the current mailbox contains. * * @param string $mailbox the mailbox path if required to get sub-folder counts - * @return int + * @return int */ public function numMessages($mailbox='') { - if ($mailbox===''){ - return imap_num_msg( $this->getImapStream() ); + if ($mailbox==='') { + return imap_num_msg($this->getImapStream()); } - if (!$this->hasMailbox($mailbox) && $mailbox !== ''){ + if (!$this->hasMailbox($mailbox) && $mailbox !== '') { return 0; } $oldMailbox = $this->getMailBox(); $this->setMailbox($mailbox); - $cnt = imap_num_msg($this->getImapStream()); + $cnt = $this->numMessages(); $this->setMailbox($oldMailbox); return $cnt; } From 5317b9955fac7887bbcd9fe4a002a409fe2266bb Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 12:53:50 +0100 Subject: [PATCH 16/18] PSR getting on my nerves again --- src/Fetch/Server.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index b59b731..06a2369 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -323,17 +323,16 @@ class Server */ public function numMessages($mailbox='') { + $cnt = 0; if ($mailbox==='') { - return imap_num_msg($this->getImapStream()); + $cnt = imap_num_msg($this->getImapStream()); + } elseif ($this->hasMailbox($mailbox) && $mailbox !== '') { + $oldMailbox = $this->getMailBox(); + $this->setMailbox($mailbox); + $cnt = $this->numMessages(); + $this->setMailbox($oldMailbox); } - if (!$this->hasMailbox($mailbox) && $mailbox !== '') { - return 0; - } - $oldMailbox = $this->getMailBox(); - $this->setMailbox($mailbox); - $cnt = $this->numMessages(); - $this->setMailbox($oldMailbox); - return $cnt; + return ((int)$cnt); } /** From 92105be73d0db3af513093bcd3398f89daed976b Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 13:02:47 +0100 Subject: [PATCH 17/18] PSR Madness at least google led me to this for the cryptic messages... http://cs.sensiolabs.org/ --- src/Fetch/Server.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 06a2369..a91f4fa 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -318,8 +318,8 @@ class Server /** * This returns the number of messages that the current mailbox contains. * - * @param string $mailbox the mailbox path if required to get sub-folder counts - * @return int + * @param string $mailbox the mailbox path if required to get sub-folder counts + * @return int */ public function numMessages($mailbox='') { @@ -332,7 +332,8 @@ class Server $cnt = $this->numMessages(); $this->setMailbox($oldMailbox); } - return ((int)$cnt); + + return ((int) $cnt); } /** From a3b85d5e32a82f9cd561f014ce93be3d2d432d37 Mon Sep 17 00:00:00 2001 From: Lewis Cowles Date: Sun, 24 May 2015 13:08:32 +0100 Subject: [PATCH 18/18] Update Server.php --- src/Fetch/Server.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index a91f4fa..2ae577a 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -318,7 +318,7 @@ class Server /** * This returns the number of messages that the current mailbox contains. * - * @param string $mailbox the mailbox path if required to get sub-folder counts + * @param string $mailbox * @return int */ public function numMessages($mailbox='') @@ -332,7 +332,7 @@ class Server $cnt = $this->numMessages(); $this->setMailbox($oldMailbox); } - + return ((int) $cnt); }