/** * set and get vacation sieve script */ public function testGetSetVacation() { $vacationData = array('id' => $this->_account->getId(), 'subject' => 'unittest vacation subject', 'from' => $this->_account->from . ' <' . $this->_account->email . '>', 'days' => 7, 'enabled' => TRUE, 'reason' => 'unittest vacation message<br /><br />signature', 'mime' => ''); $this->_sieveTestHelper($vacationData); // check if script was activated $activeScriptName = Felamimail_Controller_Sieve::getInstance()->getActiveScriptName($this->_account->getId()); $this->assertEquals($this->_testSieveScriptName, $activeScriptName); $updatedAccount = Felamimail_Controller_Account::getInstance()->get($this->_account->getId()); $this->assertTrue((bool) $updatedAccount->sieve_vacation_active); $result = $this->_json->getVacation($this->_account->getId()); $this->assertEquals($this->_account->email, $result['addresses'][0]); unset($result['addresses']); $sieveBackend = Felamimail_Backend_SieveFactory::factory($this->_account->getId()); if (preg_match('/dbmail/i', $sieveBackend->getImplementation())) { $translate = Tinebase_Translation::getTranslation('Felamimail'); $vacationData['subject'] = sprintf($translate->_('Out of Office reply from %1$s'), Tinebase_Core::getUser()->accountFullName); } $this->assertEquals($vacationData, $result); }
/** * set and get vacation sieve script * * @see 0007768: Sieve - Vacation notify frequency not being set (Cyrus) */ public function testGetSetVacation() { $vacationData = $this->_getVacationData(); $this->_sieveTestHelper($vacationData); // check if script was activated $activeScriptName = Felamimail_Controller_Sieve::getInstance()->getActiveScriptName($this->_account->getId()); $this->assertEquals($this->_testSieveScriptName, $activeScriptName); $updatedAccount = Felamimail_Controller_Account::getInstance()->get($this->_account->getId()); $this->assertTrue((bool) $updatedAccount->sieve_vacation_active); $result = $this->_json->getVacation($this->_account->getId()); $this->assertEquals($this->_account->email, $result['addresses'][0]); $sieveBackend = Felamimail_Backend_SieveFactory::factory($this->_account->getId()); if (preg_match('/dbmail/i', $sieveBackend->getImplementation())) { $translate = Tinebase_Translation::getTranslation('Felamimail'); $vacationData['subject'] = sprintf($translate->_('Out of Office reply from %1$s'), Tinebase_Core::getUser()->accountFullName); } foreach (array('reason', 'enabled', 'subject', 'from', 'days') as $field) { $this->assertEquals($vacationData[$field], $result[$field], 'vacation data mismatch: ' . $field); } }