diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2022-04-04 12:30:02 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2022-04-04 12:30:02 +0300 |
commit | 27a4485ecd28618b93cafcebfd7859a51f476f04 (patch) | |
tree | 6548301b9f1e17269fb30b59a0856aec3ecdeb0c /tests/Integration | |
parent | 0b365745a9c478cdabef5a4836cb7a7cf3e10778 (diff) | |
parent | b39111631fff252b6fe2050cdb27de62e647d2c2 (diff) |
Merge remote-tracking branch 'origin/main' into chore/update-feature-outbox-III
Diffstat (limited to 'tests/Integration')
-rw-r--r-- | tests/Integration/Framework/ImapTest.php | 49 | ||||
-rw-r--r-- | tests/Integration/IMAP/AbstractTest.php | 17 | ||||
-rw-r--r-- | tests/Integration/IMAP/MessageMapperTest.php | 69 |
3 files changed, 64 insertions, 71 deletions
diff --git a/tests/Integration/Framework/ImapTest.php b/tests/Integration/Framework/ImapTest.php index 1a68ad415..da18d3d1d 100644 --- a/tests/Integration/Framework/ImapTest.php +++ b/tests/Integration/Framework/ImapTest.php @@ -52,7 +52,7 @@ trait ImapTest { /** * @return Horde_Imap_Client_Socket */ - private function getTestClient() { + private function getTestClient(): Horde_Imap_Client_Socket { if ($this->client === null) { $this->client = new Horde_Imap_Client_Socket([ 'username' => 'user@domain.tld', @@ -134,8 +134,6 @@ trait ImapTest { * @return int id of the new message */ public function saveMessage(string $mailbox, SimpleMessage $message, MailAccount $account = null) { - $client = $this->getClient($account); - $headers = [ 'From' => new Horde_Mail_Rfc822_Address($message->getFrom()), 'To' => new Horde_Mail_Rfc822_Address($message->getTo()), @@ -155,32 +153,43 @@ trait ImapTest { $raw = $mail->getRaw(); $data = stream_get_contents($raw); - return $client->append($mailbox, [ - [ - 'data' => $data, - ] - ])->ids[0]; + $client = $this->getClient($account); + try { + return $client->append($mailbox, [ + [ + 'data' => $data, + ] + ])->ids[0]; + } finally { + $client->logout(); + } } public function flagMessage($mailbox, $id, MailAccount $account = null) { $client = $this->getClient($account); - - $client->store($mailbox, [ - 'ids' => new Horde_Imap_Client_Ids([$id]), - 'add' => [ - Horde_Imap_Client::FLAG_FLAGGED, - ], - ]); + try { + $client->store($mailbox, [ + 'ids' => new Horde_Imap_Client_Ids([$id]), + 'add' => [ + Horde_Imap_Client::FLAG_FLAGGED, + ], + ]); + } finally { + $client->logout(); + } } public function deleteMessage($mailbox, $id, MailAccount $account = null) { $client = $this->getClient($account); - $ids = new Horde_Imap_Client_Ids([$id]); - $client->expunge($mailbox, [ - 'ids' => $ids, - 'delete' => true, - ]); + try { + $client->expunge($mailbox, [ + 'ids' => $ids, + 'delete' => true, + ]); + } finally { + $client->logout(); + } } /** diff --git a/tests/Integration/IMAP/AbstractTest.php b/tests/Integration/IMAP/AbstractTest.php index bbaaddf46..a5119efc5 100644 --- a/tests/Integration/IMAP/AbstractTest.php +++ b/tests/Integration/IMAP/AbstractTest.php @@ -78,23 +78,6 @@ abstract class AbstractTest extends TestCase { } /** - * @param string $name - * @return Mailbox - */ - public function createMailBox($name) { - try { - $this->getTestAccount()->getMailbox($name); - $this->deleteMailbox($name); - } catch (Exception $e) { - // Ignore mailbox not found - } - - $mailbox = $this->getTestAccount()->createMailbox($name); - self::$createdMailboxes[$name] = $mailbox; - return $mailbox; - } - - /** * @return Account */ protected function getTestAccount() { diff --git a/tests/Integration/IMAP/MessageMapperTest.php b/tests/Integration/IMAP/MessageMapperTest.php index 20e93e688..d537bcaa1 100644 --- a/tests/Integration/IMAP/MessageMapperTest.php +++ b/tests/Integration/IMAP/MessageMapperTest.php @@ -77,10 +77,13 @@ class MessageMapperTest extends TestCase { $newUid = $this->saveMessage($inbox->getName(), $message, $account); // now we tag this message! + $client = $this->getClient($account); try { - $imapMessageMapper->addFlag($this->getClient($account), $mailBox, [$newUid], '$label1'); + $imapMessageMapper->addFlag($client, $mailBox, [$newUid], '$label1'); } catch (Horde_Imap_Client_Exception $e) { self::fail('Could not tag message'); + } finally { + $client->logout(); } // sync @@ -103,10 +106,13 @@ class MessageMapperTest extends TestCase { // now we untag this message! + $client = $this->getClient($account); try { - $imapMessageMapper->removeFlag($this->getClient($account), $mailBox, [$newUid], '$label1'); + $imapMessageMapper->removeFlag($client, $mailBox, [$newUid], '$label1'); } catch (Horde_Imap_Client_Exception $e) { self::fail('Could not untag message'); + } finally { + $client->logout(); } // sync again @@ -151,7 +157,6 @@ class MessageMapperTest extends TestCase { ->finish(); $newUid = $this->saveMessage($inbox->getName(), $message, $account); - // Put another new message into the mailbox $message = $this->getMessageBuilder() ->from('fluffington@domain.tld') @@ -166,38 +171,34 @@ class MessageMapperTest extends TestCase { ->finish(); $this->saveMessage($inbox->getName(), $message, $account); - // now we tag this message with $label1 + $client = $this->getClient($account); try { - $imapMessageMapper->addFlag($this->getClient($account), $mailBox, [$newUid], '$label1'); - } catch (Horde_Imap_Client_Exception $e) { - self::fail('Could not tag message'); + // now we tag this message with $label1 + $imapMessageMapper->addFlag($client, $mailBox, [$newUid], '$label1'); + // now we tag this and the previous message with $label2 + $imapMessageMapper->addFlag($client, $mailBox, [$newUid, $newUid2], '$label2'); + + // test for labels + $tagged = $imapMessageMapper->getFlagged($client, $mailBox, '$label1'); + self::assertNotEmpty($tagged); + // are the counts correct? + self::assertCount(1, $tagged); + + $tagged = $imapMessageMapper->getFlagged($client, $mailBox, '$label2'); + self::assertNotEmpty($tagged); + self::assertCount(2, $tagged); + + // test for labels that wasn't set + $tagged = $imapMessageMapper->getFlagged($client, $mailBox, '$notAvailable'); + self::assertEmpty($tagged); + + // test for regular flag - recent + $tagged = $imapMessageMapper->getFlagged($client, $mailBox, Horde_Imap_Client::FLAG_RECENT); + self::assertNotEmpty($tagged); + // should return all messages + self::assertCount(3, $tagged); + } finally { + $client->logout(); } - - // now we tag this and the previous message with $label2 - try { - $imapMessageMapper->addFlag($this->getClient($account), $mailBox, [$newUid, $newUid2], '$label2'); - } catch (Horde_Imap_Client_Exception $e) { - self::fail('Could not tag message'); - } - - // test for labels - $tagged = $imapMessageMapper->getFlagged($this->getClient($account), $mailBox, '$label1'); - self::assertNotEmpty($tagged); - // are the counts correct? - self::assertCount(1, $tagged); - - $tagged = $imapMessageMapper->getFlagged($this->getClient($account), $mailBox, '$label2'); - self::assertNotEmpty($tagged); - self::assertCount(2, $tagged); - - // test for labels that wasn't set - $tagged = $imapMessageMapper->getFlagged($this->getClient($account), $mailBox, '$notAvailable'); - self::assertEmpty($tagged); - - // test for regular flag - recent - $tagged = $imapMessageMapper->getFlagged($this->getClient($account), $mailBox, Horde_Imap_Client::FLAG_RECENT); - self::assertNotEmpty($tagged); - // should return all messages - self::assertCount(3, $tagged); } } |