/** * @magentoAppIsolation enabled * @magentoDataFixture Mage/Core/_files/store.php * @magentoConfigFixture fixturestore_store design/theme/full_name test/default * @magentoDataFixture Mage/Core/Model/Email/_files/theme_registration.php */ public function testGetProcessedTemplateSubject() { $expectedViewUrl = 'theme/frontend/test/default/en_US/Mage_Page/favicon.ico'; $this->_model->setTemplateSubject('{{view url="Mage_Page::favicon.ico"}}'); $this->assertStringEndsNotWith($expectedViewUrl, $this->_model->getProcessedTemplateSubject(array())); $this->_model->setDesignConfig(array('area' => 'frontend', 'store' => Mage::app()->getStore('fixturestore')->getId())); $this->assertStringEndsWith($expectedViewUrl, $this->_model->getProcessedTemplateSubject(array())); }
/** * Send reminder emails * * @return Enterprise_Reminder_Model_Rule */ public function sendReminderEmails() { /* @var $translate Mage_Core_Model_Translate */ $translate = Mage::getSingleton('core/translate'); $translate->setTranslateInline(false); $identity = Mage::helper('enterprise_reminder')->getEmailIdentity(); $this->_matchCustomers(); $limit = Mage::helper('enterprise_reminder')->getOneRunLimit(); $recipients = $this->_getResource()->getCustomersForNotification($limit, $this->getRuleId()); foreach ($recipients as $recipient) { /* @var $customer Mage_Customer_Model_Customer */ $customer = Mage::getModel('customer/customer')->load($recipient['customer_id']); if (!$customer || !$customer->getId()) { continue; } if ($customer->getStoreId()) { $store = $customer->getStore(); } else { $store = Mage::app()->getWebsite($customer->getWebsiteId())->getDefaultStore(); } $storeData = $this->getStoreData($recipient['rule_id'], $store->getId()); if (!$storeData) { continue; } /* @var $coupon Mage_SalesRule_Model_Coupon */ $coupon = Mage::getModel('salesrule/coupon')->load($recipient['coupon_id']); $templateVars = array('store' => $store, 'coupon' => $coupon, 'customer' => $customer, 'promotion_name' => $storeData['label'], 'promotion_description' => $storeData['description']); $this->_mail->setDesignConfig(array('area' => 'frontend', 'store' => $store->getId())); $this->_mail->sendTransactional($storeData['template_id'], $identity, $customer->getEmail(), null, $templateVars, $store->getId()); if ($this->_mail->getSentSuccess()) { $this->_getResource()->addNotificationLog($recipient['rule_id'], $customer->getId()); } else { $this->_getResource()->updateFailedEmailsCounter($recipient['rule_id'], $customer->getId()); } } $translate->setTranslateInline(true); return $this; }
/** * Reset the design configuration so emails sent later during * the request will use the right store config * * @param Mage_Core_Model_Email_Template $mailTemplate * @return $this */ protected function _revertEmailDesignConfig(Mage_Core_Model_Email_Template $mailTemplate) { $mailTemplate->setDesignConfig($this->_origEmailDesignConfig); return $this; }
/** * @dataProvider setDesignConfigExceptionDataProvider * @expectedException Magento_Exception */ public function testSetDesignConfigException($config) { $model = new Mage_Core_Model_Email_Template(); // Mage_Core_Model_Template is an abstract class $model->setDesignConfig($config); }