From 7009ee32ce419e5878c178d7bc7d850054d32d03 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Fri, 23 Jan 2015 01:40:56 -0700 Subject: [PATCH] Add serialization and clone tests --- .../lib/Horde/Imap/Client/Tokenize.php | 7 ++++ .../test/Horde/Imap/Client/DateTimeTest.php | 31 +++++++++++++++ .../test/Horde/Imap/Client/IdsTest.php | 29 ++++++++++++++ .../test/Horde/Imap/Client/MailboxTest.php | 12 ++++++ .../test/Horde/Imap/Client/MapTest.php | 38 +++++++++++++++---- .../test/Horde/Imap/Client/SearchTest.php | 18 +++++++++ .../test/Horde/Imap/Client/TokenizeTest.php | 22 +++++++++++ 7 files changed, 149 insertions(+), 8 deletions(-) diff --git a/framework/Imap_Client/lib/Horde/Imap/Client/Tokenize.php b/framework/Imap_Client/lib/Horde/Imap/Client/Tokenize.php index 09d2c43fefd..7969b505fa8 100644 --- a/framework/Imap_Client/lib/Horde/Imap/Client/Tokenize.php +++ b/framework/Imap_Client/lib/Horde/Imap/Client/Tokenize.php @@ -79,6 +79,13 @@ public function __construct($data = null) } } + /** + */ + public function __clone() + { + throw new LogicException('Object can not be cloned.'); + } + /** */ public function __get($name) diff --git a/framework/Imap_Client/test/Horde/Imap/Client/DateTimeTest.php b/framework/Imap_Client/test/Horde/Imap/Client/DateTimeTest.php index 6847bb76acc..7fb07cf2692 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/DateTimeTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/DateTimeTest.php @@ -53,4 +53,35 @@ public function testDateTimeParsing($date, $expected) ); } + public function testClone() + { + $ob = new Horde_Imap_Client_DateTime('12 Sep 2007 15:49:12 UTC'); + + $ob2 = clone $ob; + + $ob2->modify('+1 minute'); + + $this->assertEquals( + 1189612152, + intval(strval($ob)) + ); + + $this->assertEquals( + 1189612152 + 60, + intval(strval($ob2)) + ); + } + + public function testSerialize() + { + $ob = new Horde_Imap_Client_DateTime('12 Sep 2007 15:49:12 UTC'); + + $ob2 = unserialize(serialize($ob)); + + $this->assertEquals( + 1189612152, + intval(strval($ob2)) + ); + } + } diff --git a/framework/Imap_Client/test/Horde/Imap/Client/IdsTest.php b/framework/Imap_Client/test/Horde/Imap/Client/IdsTest.php index 9f262fc32b5..317b3a704fc 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/IdsTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/IdsTest.php @@ -330,4 +330,33 @@ public function sequenceStringGenerationProvider() ); } + public function testClone() + { + $ids = new Horde_Imap_Client_Ids(array(1, 3)); + + $ids2 = clone $ids; + $ids2->add(5); + + $this->assertEquals( + array(1, 3), + iterator_to_array($ids) + ); + $this->assertEquals( + array(1, 3, 5), + iterator_to_array($ids2) + ); + } + + public function testSerialize() + { + $ids = new Horde_Imap_Client_Ids(array(1, 3, 5)); + + $ids2 = unserialize(serialize($ids)); + + $this->assertEquals( + array(1, 3, 5), + iterator_to_array($ids2) + ); + } + } diff --git a/framework/Imap_Client/test/Horde/Imap/Client/MailboxTest.php b/framework/Imap_Client/test/Horde/Imap/Client/MailboxTest.php index 1e1808d6e71..4ea40206a53 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/MailboxTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/MailboxTest.php @@ -25,6 +25,18 @@ */ class Horde_Imap_Client_MailboxTest extends PHPUnit_Framework_TestCase { + public function testMailboxClone() + { + $ob = new Horde_Imap_Client_Mailbox('Envoyé'); + + $ob2 = clone $ob; + + $this->assertEquals( + 'Envoyé', + $ob2->utf8 + ); + } + public function testMailboxSerialize() { $mailbox = unserialize( diff --git a/framework/Imap_Client/test/Horde/Imap/Client/MapTest.php b/framework/Imap_Client/test/Horde/Imap/Client/MapTest.php index 36c741a4acf..bc6db285dc6 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/MapTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/MapTest.php @@ -94,8 +94,37 @@ public function testUpdate() ); } + public function testCount() + { + $this->assertEquals( + 6, + count($this->map) + ); + } + + /** + * @depends testCount + */ + public function testClone() + { + $map2 = clone $this->map; + $map2->update(array( + 1 => 1 + )); + + $this->assertEquals( + 6, + count($this->map) + ); + $this->assertEquals( + 7, + count($map2) + ); + } + /** * @dataProvider lookupProvider + * @depends testClone */ public function testLookup($range, $expected = null) { @@ -134,6 +163,7 @@ public function lookupProvider() /** * @dataProvider removeProvider + * @depends testClone */ public function testRemove($range, $expected) { @@ -221,14 +251,6 @@ public function testRemoveWithDuplicateSequenceNumbers() ); } - public function testCount() - { - $this->assertEquals( - 6, - count($this->map) - ); - } - public function testIterator() { $this->assertEquals( diff --git a/framework/Imap_Client/test/Horde/Imap/Client/SearchTest.php b/framework/Imap_Client/test/Horde/Imap/Client/SearchTest.php index 0c559534bff..06c61f26082 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/SearchTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/SearchTest.php @@ -558,6 +558,24 @@ public function previousSearchQueryProvider() ); } + public function testClone() + { + $ob = new Horde_Imap_Client_Search_Query(); + $ob->text('foo'); + + $ob2 = clone $ob; + $ob2->text('bar'); + + $this->assertEquals( + 'BODY foo', + strval($ob) + ); + $this->assertEquals( + 'BODY foo BODY bar', + strval($ob2) + ); + } + public function testSerialize() { $ob = new Horde_Imap_Client_Search_Query(); diff --git a/framework/Imap_Client/test/Horde/Imap/Client/TokenizeTest.php b/framework/Imap_Client/test/Horde/Imap/Client/TokenizeTest.php index 860f65eadb8..5f005076056 100644 --- a/framework/Imap_Client/test/Horde/Imap/Client/TokenizeTest.php +++ b/framework/Imap_Client/test/Horde/Imap/Client/TokenizeTest.php @@ -466,4 +466,26 @@ public function testLiteralLength() ); } + /** + * @expectedException LogicException + */ + public function testClone() + { + $test = 'FOO BAR'; + $token = new Horde_Imap_Client_Tokenize($test); + + clone $token; + } + + /** + * @expectedException LogicException + */ + public function testSerialize() + { + $test = 'FOO BAR'; + $token = new Horde_Imap_Client_Tokenize($test); + + serialize($token); + } + }