Skip to content

Commit

Permalink
Add unit test for Horde_Imap_Client_Base_Mailbox
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Mar 7, 2014
1 parent 115bb1d commit 3d85bc0
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 2 deletions.
8 changes: 6 additions & 2 deletions framework/Imap_Client/package.xml
Expand Up @@ -10,7 +10,7 @@
<email>slusarz@horde.org</email>
<active>yes</active>
</lead>
<date>2014-03-05</date>
<date>2014-03-07</date>
<version>
<release>2.19.0</release>
<api>2.19.0</api>
Expand Down Expand Up @@ -224,6 +224,9 @@
<dir name="Horde">
<dir name="Imap">
<dir name="Client">
<dir name="Base">
<file name="MailboxTest.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Base -->
<dir name="Cache">
<file name="CacheTest.php" role="test" />
<file name="DbTest.php" role="test" />
Expand Down Expand Up @@ -539,6 +542,7 @@
<install as="Horde/Imap/Client/UrlParseTest.php" name="test/Horde/Imap/Client/UrlParseTest.php" />
<install as="Horde/Imap/Client/Utf7ConvertTest.php" name="test/Horde/Imap/Client/Utf7ConvertTest.php" />
<install as="Horde/Imap/Client/Xoauth2Test.php" name="test/Horde/Imap/Client/Xoauth2Test.php" />
<install as="Horde/Imap/Client/Base/MailboxTest.php" name="test/Horde/Imap/Client/Base/MailboxTest.php" />
<install as="Horde/Imap/Client/Cache/CacheTest.php" name="test/Horde/Imap/Client/Cache/CacheTest.php" />
<install as="Horde/Imap/Client/Cache/DbTest.php" name="test/Horde/Imap/Client/Cache/DbTest.php" />
<install as="Horde/Imap/Client/Cache/MongoTest.php" name="test/Horde/Imap/Client/Cache/MongoTest.php" />
Expand Down Expand Up @@ -2282,7 +2286,7 @@
<stability>
<release>stable</release>
<api>stable</api></stability>
<date>2014-03-05</date>
<date>2014-03-07</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
* [mms] The Hashtable cache driver now allows the lifetime of the message data to be specified.
Expand Down
154 changes: 154 additions & 0 deletions framework/Imap_Client/test/Horde/Imap/Client/Base/MailboxTest.php
@@ -0,0 +1,154 @@
<?php
/**
* Copyright 2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/

/**
* Tests for the Horde_Imap_Client_Base_Mailbox object.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2014 Horde LLC
* @ignore
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/
class Horde_Imap_Client_Base_MailboxTest extends PHPUnit_Framework_TestCase
{
private $ob;

public function setUp()
{
$this->ob = new Horde_Imap_Client_Base_Mailbox();
}

public function testInitialStatus()
{
$this->assertInstanceOf(
'Horde_Imap_Client_Ids_Map',
$this->ob->map
);
}

public function testFirstUnseen()
{
$this->assertFalse(
$this->ob->getStatus(Horde_Imap_Client::STATUS_FIRSTUNSEEN)
);

$this->ob->setStatus(Horde_Imap_Client::STATUS_MESSAGES, 1);

$this->assertNull(
$this->ob->getStatus(Horde_Imap_Client::STATUS_FIRSTUNSEEN)
);

$this->ob->setStatus(Horde_Imap_Client::STATUS_FIRSTUNSEEN, 1);

$this->assertEquals(
1,
$this->ob->getStatus(Horde_Imap_Client::STATUS_FIRSTUNSEEN)
);
}

public function testDefaultPermFlags()
{
$this->assertTrue(
in_array('\\*', $this->ob->getStatus(Horde_Imap_Client::STATUS_PERMFLAGS))
);
}

public function testUnseen()
{
$this->assertEquals(
0,
$this->ob->getStatus(Horde_Imap_Client::STATUS_UNSEEN)
);

$this->ob->setStatus(Horde_Imap_Client::STATUS_MESSAGES, 1);

$this->assertNull(
$this->ob->getStatus(Horde_Imap_Client::STATUS_FIRSTUNSEEN)
);

$this->ob->setStatus(Horde_Imap_Client::STATUS_UNSEEN, 1);

$this->assertEquals(
1,
$this->ob->getStatus(Horde_Imap_Client::STATUS_UNSEEN)
);
}

public function testStatusRecent()
{
$this->ob->setStatus(Horde_Imap_Client::STATUS_RECENT, 1);
$this->ob->setStatus(Horde_Imap_Client::STATUS_RECENT, 1);
$this->ob->setStatus(Horde_Imap_Client::STATUS_RECENT, 1);

$this->assertEquals(
3,
$this->ob->getStatus(Horde_Imap_Client::STATUS_RECENT_TOTAL)
);
}

public function testSyncModseqIsOnlySetOnce()
{
$this->ob->setStatus(Horde_Imap_Client::STATUS_SYNCMODSEQ, 1);
$this->ob->setStatus(Horde_Imap_Client::STATUS_SYNCMODSEQ, 2);

$this->assertEquals(
1,
$this->ob->getStatus(Horde_Imap_Client::STATUS_SYNCMODSEQ)
);
}

public function testStatusEntriesAreAdditive()
{
$testing = array(
Horde_Imap_Client::STATUS_SYNCFLAGUIDS,
Horde_Imap_Client::STATUS_SYNCVANISHED
);

foreach ($testing as $val) {
$this->ob->setStatus($val, array(1));
$this->ob->setStatus($val, array(2));

$this->assertEquals(
array(1, 2),
$this->ob->getStatus($val)
);
}
}

public function testReset()
{
$this->ob->map->update((array(1 => 2)));
$this->ob->setStatus(Horde_Imap_Client::STATUS_SYNCMODSEQ, 1);
$this->ob->setStatus(Horde_Imap_Client::STATUS_RECENT_TOTAL, 1);

$this->ob->reset();

$this->assertEquals(
0,
count($this->ob->map)
);
$this->assertEquals(
1,
$this->ob->getStatus(Horde_Imap_Client::STATUS_SYNCMODSEQ)
);
$this->assertEquals(
0,
$this->ob->getStatus(Horde_Imap_Client::STATUS_RECENT_TOTAL)
);
}

}

0 comments on commit 3d85bc0

Please sign in to comment.