/** * @param array $data * @return mixed */ public function conduct($data) { $queue = new FlashMessageQueue(self::FLASHMESSAGE_QUEUE); $flashMessage = new FlashMessage($this->getMessage(), $this->getTitle(), $this->getSeverity(), $this->getStoreInSession()); $queue->enqueue($flashMessage); return $data; }
/** * @test */ public function getAllMessagesAndFlushClearsSessionStack() { $flashMessage = new \TYPO3\CMS\Core\Messaging\FlashMessage('Transient', 'Title', \TYPO3\CMS\Core\Messaging\FlashMessage::OK, TRUE); $this->flashMessageQueue->enqueue($flashMessage); $this->flashMessageQueue->getAllMessagesAndFlush(); /** @var $frontendUser \TYPO3\CMS\Frontend\Authentication\FrontendUserAuthentication */ $frontendUser = $this->flashMessageQueue->_call('getUserByContext'); $this->assertNull($frontendUser->getSessionData('core.template.flashMessages')); }
/** * @test */ public function getMessagesAndFlushCanAlsoFilterBySeverity() { $messages = array(0 => new \TYPO3\CMS\Core\Messaging\FlashMessage('This is a test message', 1, \TYPO3\CMS\Core\Messaging\FlashMessage::NOTICE), 1 => new \TYPO3\CMS\Core\Messaging\FlashMessage('This is another test message', 2, \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING)); $this->flashMessageQueue->enqueue($messages[0]); $this->flashMessageQueue->enqueue($messages[1]); $filteredFlashMessages = $this->flashMessageQueue->getAllMessagesAndFlush(\TYPO3\CMS\Core\Messaging\FlashMessage::NOTICE); $this->assertEquals(count($filteredFlashMessages), 1); reset($filteredFlashMessages); $flashMessage = current($filteredFlashMessages); $this->assertEquals($messages[0], $flashMessage); $this->assertEquals(array(), $this->flashMessageQueue->getAllMessages(\TYPO3\CMS\Core\Messaging\FlashMessage::NOTICE)); $this->assertEquals(array($messages[1]), array_values($this->flashMessageQueue->getAllMessages())); }
/** * @param LanguageService $languageService * @param FlashMessageQueue $messageQueue * @param bool $isAjaxCall * @internal Only public to be used in tests * @return \Closure */ public static function getMessageClosure(LanguageService $languageService, FlashMessageQueue $messageQueue, $isAjaxCall) { return function () use($languageService, $messageQueue, $isAjaxCall) { /** @var \TYPO3\CMS\Core\Messaging\FlashMessage $flashMessage */ $flashMessage = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessage::class, $languageService->sL('LLL:EXT:lang/locallang_core.xlf:error.formProtection.tokenInvalid'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR, !$isAjaxCall); $messageQueue->enqueue($flashMessage); }; }
/** * Enqueues the instance into the given FlashMessageQueue * * @param FlashMessageQueue $queue The queue to enqueue to * * @return void * * @throws \TYPO3\CMS\Core\Exception If the given message instance is not a * FlashMessage instance */ public function enqueueIn(FlashMessageQueue $queue) { $queue->enqueue($this); }