/**
  * use another name for test sieve script
  */
 protected function _setTestScriptname()
 {
     $this->_oldActiveSieveScriptName = Felamimail_Controller_Sieve::getInstance()->getActiveScriptName($this->_account->getId());
     $this->_testSieveScriptName = 'Felamimail_Unittest';
     Felamimail_Controller_Sieve::getInstance()->setScriptName($this->_testSieveScriptName);
 }
Esempio n. 2
0
 /**
  * set sieve rules for account 
  *
  * @param   array $accountId
  * @param   array $rulesData
  * @return  array
  */
 public function saveRules($accountId, $rulesData)
 {
     $records = new Tinebase_Record_RecordSet('Felamimail_Model_Sieve_Rule', $rulesData);
     $records = Felamimail_Controller_Sieve::getInstance()->setRules($accountId, $records);
     return $this->_multipleRecordsToJson($records);
 }
 /**
  * get vacation message defined by template / do substitutions for dates and representative 
  * 
  * @param array $vacationData
  * @return array
  */
 public function getVacationMessage($vacationData)
 {
     $record = new Felamimail_Model_Sieve_Vacation(array(), TRUE);
     $record->setFromJsonInUsersTimezone($vacationData);
     $message = Felamimail_Controller_Sieve::getInstance()->getVacationMessage($record);
     $htmlMessage = Tinebase_Mail::convertFromTextToHTML($message, 'felamimail-body-blockquote');
     return array('message' => $htmlMessage);
 }
Esempio n. 4
0
 /**
  * sieve test helper
  * 
  * @param array $_sieveData
  */
 protected function _sieveTestHelper($_sieveData, $_isMime = FALSE)
 {
     $this->_oldActiveSieveScriptName = Felamimail_Controller_Sieve::getInstance()->getActiveScriptName($this->_account->getId());
     // use another name for test script
     $this->_testSieveScriptName = 'Felamimail_Unittest';
     Felamimail_Controller_Sieve::getInstance()->setScriptName($this->_testSieveScriptName);
     // check which save fn to use
     if (array_key_exists('reason', $_sieveData)) {
         $resultSet = $this->_json->saveVacation($_sieveData);
         $this->assertEquals($this->_account->email, $resultSet['addresses'][0]);
         $_sieveBackend = Felamimail_Backend_SieveFactory::factory($this->_account->getId());
         if (preg_match('/dbmail/i', $_sieveBackend->getImplementation())) {
             $translate = Tinebase_Translation::getTranslation('Felamimail');
             $this->assertEquals(sprintf($translate->_('Out of Office reply from %1$s'), Tinebase_Core::getUser()->accountFullName), $resultSet['subject']);
         } else {
             $this->assertEquals($_sieveData['subject'], $resultSet['subject']);
         }
         if ($_isMime) {
             $this->assertEquals(html_entity_decode('unittest vacation message', ENT_NOQUOTES, 'UTF-8'), $resultSet['reason']);
         } else {
             $this->assertEquals($_sieveData['reason'], $resultSet['reason']);
         }
     } else {
         if (array_key_exists('action_type', $_sieveData[0])) {
             $resultSet = $this->_json->saveRules($this->_account->getId(), $_sieveData);
             $this->assertEquals($_sieveData, $resultSet);
         }
     }
 }