/**
  * @test
  * @dataProvider renderDataProvider()
  * @param string $expectedResult
  * @param array $flashMessages
  * @param string $class
  * @return void
  */
 public function renderTests($expectedResult, array $flashMessages = [], $class = null)
 {
     $this->mockFlashMessageContainer->expects($this->once())->method('getMessagesAndFlush')->will($this->returnValue($flashMessages));
     $this->mockTagBuilder->expects($this->once())->method('setContent')->with($expectedResult);
     $this->viewHelper->_set('arguments', ['class' => $class]);
     $this->viewHelper->render();
 }
示例#2
0
 /**
  * Executes this finisher
  * @see AbstractFinisher::execute()
  *
  * @return void
  * @throws \Neos\Form\Exception\FinisherException
  */
 protected function executeInternal()
 {
     $messageBody = $this->parseOption('messageBody');
     if (!is_string($messageBody)) {
         throw new \Neos\Form\Exception\FinisherException(sprintf('The message body must be of type string, "%s" given.', gettype($messageBody)), 1335980069);
     }
     $messageTitle = $this->parseOption('messageTitle');
     $messageArguments = $this->parseOption('messageArguments');
     $messageCode = $this->parseOption('messageCode');
     $severity = $this->parseOption('severity');
     switch ($severity) {
         case Message::SEVERITY_NOTICE:
             $message = new \Neos\Error\Messages\Notice($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         case Message::SEVERITY_WARNING:
             $message = new \Neos\Error\Messages\Warning($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         case Message::SEVERITY_ERROR:
             $message = new \Neos\Error\Messages\Error($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         default:
             $message = new Message($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
     }
     $this->flashMessageContainer->addMessage($message);
 }
 /**
  * @test
  */
 public function getMessagesAndFlushCanAlsoFilterBySeverity()
 {
     $messages = [0 => new FlowError\Notice('This is a test message', 1), 1 => new FlowError\Warning('This is another test message', 2)];
     $this->flashMessageContainer->addMessage($messages[0]);
     $this->flashMessageContainer->addMessage($messages[1]);
     $filteredFlashMessages = $this->flashMessageContainer->getMessagesAndFlush(FlowError\Message::SEVERITY_NOTICE);
     $this->assertEquals(count($filteredFlashMessages), 1);
     reset($filteredFlashMessages);
     $flashMessage = current($filteredFlashMessages);
     $this->assertEquals($messages[0], $flashMessage);
     $this->assertEquals([], $this->flashMessageContainer->getMessages(FlowError\Message::SEVERITY_NOTICE));
     $this->assertEquals([$messages[1]], array_values($this->flashMessageContainer->getMessages()));
 }
 /**
  * If Site Packages already exist and are active, we will deactivate them in order to prevent
  * interactions with the newly created or imported package (like Content Dimensions being used).
  *
  * @param string $packageKey
  * @return array
  */
 protected function deactivateOtherSitePackages($packageKey)
 {
     $sitePackagesToDeactivate = $this->packageManager->getFilteredPackages('active', null, 'neos-site');
     $deactivatedSitePackages = array();
     foreach ($sitePackagesToDeactivate as $sitePackageToDeactivate) {
         if ($sitePackageToDeactivate->getPackageKey() !== $packageKey) {
             $this->packageManager->deactivatePackage($sitePackageToDeactivate->getPackageKey());
             $deactivatedSitePackages[] = $sitePackageToDeactivate->getPackageKey();
         }
     }
     if (count($deactivatedSitePackages) >= 1) {
         $this->flashMessageContainer->addMessage(new Message(sprintf('The existing Site Packages "%s" were deactivated, in order to prevent interactions with the newly created package "%s".', implode(', ', $deactivatedSitePackages), $packageKey)));
     }
 }
 /**
  * Creates a Message object and adds it to the FlashMessageContainer.
  *
  * This method should be used to add FlashMessages rather than interacting with the container directly.
  *
  * @param string $messageBody text of the FlashMessage
  * @param string $messageTitle optional header of the FlashMessage
  * @param string $severity severity of the FlashMessage (one of the Message::SEVERITY_* constants)
  * @param array $messageArguments arguments to be passed to the FlashMessage
  * @param integer $messageCode
  * @return void
  * @throws \InvalidArgumentException if the message body is no string
  * @see Error\Message
  * @api
  */
 public function addFlashMessage($messageBody, $messageTitle = '', $severity = Error\Message::SEVERITY_OK, array $messageArguments = [], $messageCode = null)
 {
     if (!is_string($messageBody)) {
         throw new \InvalidArgumentException('The message body must be of type string, "' . gettype($messageBody) . '" given.', 1243258395);
     }
     switch ($severity) {
         case Error\Message::SEVERITY_NOTICE:
             $message = new Error\Notice($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         case Error\Message::SEVERITY_WARNING:
             $message = new Error\Warning($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         case Error\Message::SEVERITY_ERROR:
             $message = new Error\Error($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
         default:
             $message = new Error\Message($messageBody, $messageCode, $messageArguments, $messageTitle);
             break;
     }
     $this->flashMessageContainer->addMessage($message);
 }