示例#1
0
 /**
  * @param INotification $notification
  * @param string $languageCode The code of the language that should be used to prepare the notification
  * @return INotification
  */
 public function prepare(INotification $notification, $languageCode)
 {
     if ($notification->getApp() !== 'files_sharing') {
         // Not my app => throw
         throw new \InvalidArgumentException();
     }
     // Read the language from the notification
     $l = $this->factory->get('files_sharing', $languageCode);
     switch ($notification->getSubject()) {
         // Deal with known subjects
         case 'remote_share':
             $params = $notification->getSubjectParameters();
             if ($params[0] !== $params[1] && $params[1] !== null) {
                 $notification->setParsedSubject((string) $l->t('You received "/%3$s" as a remote share from %1$s (on behalf of %2$s)', $params));
             } else {
                 $notification->setParsedSubject((string) $l->t('You received "/%3$s" as a remote share from %1$s', $params));
             }
             // Deal with the actions for a known subject
             foreach ($notification->getActions() as $action) {
                 switch ($action->getLabel()) {
                     case 'accept':
                         $action->setParsedLabel((string) $l->t('Accept'))->setPrimary(true);
                         break;
                     case 'decline':
                         $action->setParsedLabel((string) $l->t('Decline'));
                         break;
                 }
                 $notification->addParsedAction($action);
             }
             return $notification;
         default:
             // Unknown subject => Unknown notification => throw
             throw new \InvalidArgumentException();
     }
 }
示例#2
0
 /**
  * @dataProvider dataSetParsedSubjectInvalid
  * @param mixed $subject
  *
  * @expectedException \InvalidArgumentException
  */
 public function testSetParsedSubjectInvalid($subject)
 {
     $this->notification->setParsedSubject($subject);
 }