/** * Build the reminder messages * * @param Tracker_DateReminder $reminder Reminder that will send notifications * @param Tracker_Artifact $artifact Artifact for which reminders will be sent * @param Array $messages Messages * @param PFUser $user Receipient * * return Array */ protected function buildMessage(Tracker_DateReminder $reminder, Tracker_Artifact $artifact, &$messages, $user) { $mailManager = new MailManager(); $recipient = $user->getEmail(); $lang = $user->getLanguage(); $format = $mailManager->getMailPreferencesByUser($user); //We send multipart mail: html & text body in case of preferences set to html $htmlBody = ''; if ($format == Codendi_Mail_Interface::FORMAT_HTML) { $htmlBody .= $this->getBodyHtml($reminder, $artifact, $user, $lang); } $txtBody = $this->getBodyText($reminder, $artifact, $user, $lang); $subject = $this->getSubject($reminder, $artifact, $user); $headers = array(); $hash = md5($htmlBody . $txtBody . serialize($headers) . serialize($subject)); if (isset($messages[$hash])) { $messages[$hash]['recipients'][] = $recipient; } else { $messages[$hash] = array('headers' => $headers, 'htmlBody' => $htmlBody, 'txtBody' => $txtBody, 'subject' => $subject, 'recipients' => array($recipient)); } }
function testGetLanguageShouldUserLanguageFactoryIfNotDefined() { $langFactory = new MockBaseLanguageFactory(); $langFactory->expectOnce('getBaseLanguage', array('fr_BE')); $user = new PFUser(array('language_id' => 'fr_BE')); $user->setLanguageFactory($langFactory); $user->getLanguage(); }