/** * the singleton pattern * * @return Felamimail_Controller_Message_Move */ public static function getInstance() { if (self::$_instance === NULL) { self::$_instance = new Felamimail_Controller_Message_Move(); } return self::$_instance; }
/** * move message test helper * * @param mixed $_toMove * @param Felamimail_Model_Folder $_folder */ protected function _moveTestHelper($_toMove, $_folder) { Felamimail_Controller_Message_Move::getInstance()->moveMessages($_toMove, $_folder); $message = $this->_searchMessage('multipart/mixed', $_folder); $folder = $this->_cache->updateCache($_folder, 30); while ($folder->cache_status === Felamimail_Model_Folder::CACHE_STATUS_INCOMPLETE) { $folder = $this->_cache->updateCache($folder, 30); } $result = $this->_controller->search($this->_getFilter($folder->getId())); foreach ($result as $messageInCache) { if ($messageInCache->messageuid == $message['uid']) { $foundMessage = $messageInCache; break; } } $this->assertTrue(isset($foundMessage)); $this->_createdMessages[] = $foundMessage; $completeMessage = $this->_controller->getCompleteMessage($foundMessage); $this->assertContains('The attached list notes all of the packages that were added or removed', $completeMessage->body); }
/** * move messsages to folder * * @param array $filterData filter data * @param string $targetFolderId * @return array source folder status */ public function moveMessages($filterData, $targetFolderId) { // close session to allow other requests Tinebase_Session::writeClose(true); $filter = new Felamimail_Model_MessageFilter(array()); $filter->setFromArrayInUsersTimezone($filterData); $updatedFolders = Felamimail_Controller_Message_Move::getInstance()->moveMessages($filter, $targetFolderId); $result = $updatedFolders !== NULL ? $this->_multipleRecordsToJson($updatedFolders) : array(); return $result; }
/** * get test alarm emails * * @param boolean $deleteThem * @return Tinebase_Record_RecordSet */ protected function _getAlarmMails($deleteThem = FALSE) { // search and assert alarm mail $folder = $this->_emailTestClass->getFolder('INBOX'); $folder = Felamimail_Controller_Cache_Message::getInstance()->updateCache($folder, 10, 1); $i = 0; while ($folder->cache_status != Felamimail_Model_Folder::CACHE_STATUS_COMPLETE && $i < 10) { $folder = Felamimail_Controller_Cache_Message::getInstance()->updateCache($folder, 10); $i++; } $account = Felamimail_Controller_Account::getInstance()->search()->getFirstRecord(); $filter = new Felamimail_Model_MessageFilter(array(array('field' => 'folder_id', 'operator' => 'equals', 'value' => $folder->getId()), array('field' => 'account_id', 'operator' => 'equals', 'value' => $account->getId()), array('field' => 'subject', 'operator' => 'startswith', 'value' => 'Alarm for event "Wakeup" at'))); $result = Felamimail_Controller_Message::getInstance()->search($filter); if ($deleteThem) { Felamimail_Controller_Message_Move::getInstance()->moveMessages($filter, Felamimail_Model_Folder::FOLDER_TRASH); } return $result; }
/** * (non-PHPdoc) * @see ActiveSync_Frontend_Abstract::moveItem() */ public function moveItem($srcFolderId, $serverId, $dstFolderId) { $filter = new Felamimail_Model_MessageFilter(array(array('field' => 'id', 'operator' => 'equals', 'value' => $serverId))); Felamimail_Controller_Message_Move::getInstance()->moveMessages($filter, $dstFolderId); return $serverId; }