コード例 #1
0
 /**
  * @depends testGetByBoxAndTypeForNotificationsBox
  */
 public function testSetAndGetFolder()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->user->userModel = $billy;
     $folders = EmailFolder::getAll();
     $this->assertEquals(8, count($folders));
     $box = new EmailBox();
     $box->name = 'Some new mailbox';
     $saved = $box->save();
     $this->assertTrue($saved);
     $this->assertEquals(0, $box->folders->count());
     $folder = new EmailFolder();
     $folder->name = 'Billy\'s Inbox';
     $folder->type = EmailFolder::TYPE_INBOX;
     $saved = $folder->save();
     //Missing 'box', so it should not save
     $this->assertFalse($saved);
     $folder->emailBox = $box;
     $saved = $folder->save();
     $this->assertTrue($saved);
     $folderId = $folder->id;
     $folder->forget();
     unset($folder);
     $folder = EmailFolder::getById($folderId);
     $this->assertEquals($box->id, $folder->emailBox->id);
     //Now check the box has the correct folder related to it
     $boxId = $box->id;
     $box->forget();
     unset($box);
     $box = EmailBox::getById($boxId);
     $this->assertEquals(1, $box->folders->count());
     $this->assertEquals('Billy\'s Inbox', $box->folders[0]->name);
     $this->assertEquals(EmailFolder::TYPE_INBOX, $box->folders[0]->type);
     $folders = EmailFolder::getAll();
     $this->assertEquals(9, count($folders));
     //Now delete billy's inbox
     $folder->delete();
     $folders = EmailFolder::getAll();
     $this->assertEquals(8, count($folders));
     $box->forget();
     unset($box);
     $box = EmailBox::getById($boxId);
     $this->assertEquals(0, $box->folders->count());
 }
コード例 #2
0
ファイル: EmailBoxUtil.php プロジェクト: youprofit/Zurmo
 /**
  * Given a box name and user, create an email box with the default folders.
  * @param User $user
  * @param string $name
  */
 public static function createBoxAndDefaultFoldersByUserAndName(User $user, $name)
 {
     assert('$user->id > 0');
     assert('is_string($name)');
     $box = new EmailBox();
     $box->name = $name;
     $box->user = $user;
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultDraftName();
     $folder->type = EmailFolder::TYPE_DRAFT;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultInboxName();
     $folder->type = EmailFolder::TYPE_INBOX;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultSentName();
     $folder->type = EmailFolder::TYPE_SENT;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxName();
     $folder->type = EmailFolder::TYPE_OUTBOX;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxErrorName();
     $folder->type = EmailFolder::TYPE_OUTBOX_ERROR;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxFailureName();
     $folder->type = EmailFolder::TYPE_OUTBOX_FAILURE;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultArchivedName();
     $folder->type = EmailFolder::TYPE_ARCHIVED;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultArchivedUnmatchedName();
     $folder->type = EmailFolder::TYPE_ARCHIVED_UNMATCHED;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $saved = $box->save();
     if (!$saved) {
         throw new NotSupportedException();
     }
     return $box;
 }
コード例 #3
0
 /**
  * @depends testNotificationsBoxResolvesCorrectly
  */
 public function testSetAndGetMailbox()
 {
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     $boxes = EmailBox::getAll();
     $this->assertEquals(1, count($boxes));
     $box = new EmailBox();
     $box->name = 'Some new mailbox';
     $saved = $box->save();
     $this->assertTrue($saved);
     $this->assertEquals(0, $box->folders->count());
     $this->assertTrue($box->isDeletable());
     //Now try deleting the box
     $boxes = EmailBox::getAll();
     $this->assertEquals(2, count($boxes));
     $box->delete();
     $boxes = EmailBox::getAll();
     $this->assertEquals(1, count($boxes));
 }
コード例 #4
0
ファイル: EmailBox.php プロジェクト: youprofit/Zurmo
 protected static function makeSystemMissingBox($name)
 {
     $box = new EmailBox();
     $box->name = $name;
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultDraftName();
     $folder->type = EmailFolder::TYPE_DRAFT;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultSentName();
     $folder->type = EmailFolder::TYPE_SENT;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxName();
     $folder->type = EmailFolder::TYPE_OUTBOX;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxErrorName();
     $folder->type = EmailFolder::TYPE_OUTBOX_ERROR;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultOutboxFailureName();
     $folder->type = EmailFolder::TYPE_OUTBOX_FAILURE;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultInboxName();
     $folder->type = EmailFolder::TYPE_INBOX;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultArchivedName();
     $folder->type = EmailFolder::TYPE_ARCHIVED;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $folder = new EmailFolder();
     $folder->name = EmailFolder::getDefaultArchivedUnmatchedName();
     $folder->type = EmailFolder::TYPE_ARCHIVED_UNMATCHED;
     $folder->emailBox = $box;
     $box->folders->add($folder);
     $saved = $box->save();
     assert('$saved');
     return $box;
 }