diff --git a/src/Fetch/Server.php b/src/Fetch/Server.php index 4fca523..38d2bcb 100644 --- a/src/Fetch/Server.php +++ b/src/Fetch/Server.php @@ -159,8 +159,6 @@ class Server return false; } - - $this->mailbox = $mailbox; if (isset($this->imapStream)) { $this->setImapStream(); @@ -445,4 +443,16 @@ class Server { return imap_createmailbox($this->getImapStream(), $this->getServerSpecification() . $mailbox); } + + /** + * List available mailboxes + * + * @param string $pattern + * + * @return array + */ + public function listMailbox($pattern = '*') + { + return imap_list($this->getImapStream(), $this->getServerSpecification(), $pattern); + } } diff --git a/tests/Fetch/Test/ServerTest.php b/tests/Fetch/Test/ServerTest.php index 4255ed2..128e424 100644 --- a/tests/Fetch/Test/ServerTest.php +++ b/tests/Fetch/Test/ServerTest.php @@ -164,6 +164,16 @@ class ServerTest extends \PHPUnit_Framework_TestCase $this->assertFalse($server->hasMailBox('Cheese'), 'Does not have mailbox "Cheese"'); } + public function testListMailbox() + { + $server = Static::getServer(); + $spec = sprintf('{%s:143/novalidate-cert}', TESTING_SERVER_HOST); + + $list = $server->listMailbox('*'); + $this->assertContains($spec.'Sent', $list, 'Has mailbox "Sent"'); + $this->assertNotContains($spec.'Cheese', $list, 'Does not have mailbox "Cheese"'); + } + public function testCreateMailbox() { $server = Static::getServer();