/**
  * Refreshs the cache item containing the JSON encoded
  * messages object.
  * Fires the 'JsLocalization.refresh' event.
  *
  * @return void
  */
 public function refreshMessageCache()
 {
     JsLocalizationHelper::triggerRegisterMessages();
     $locales = $this->getLocales();
     $messageKeys = $this->getMessageKeys();
     $translatedMessages = $this->getTranslatedMessagesForLocales($messageKeys, $locales);
     Cache::forever(self::CACHE_KEY, json_encode($translatedMessages));
     Cache::forever(self::CACHE_TIMESTAMP_KEY, time());
 }
 public function testEventBasedAdding()
 {
     $additionalMessageKeys = $this->additionalMessageKeys;
     Event::listen('JsLocalization.registerMessages', function () use($additionalMessageKeys) {
         JsLocalizationHelper::addMessagesToExport($additionalMessageKeys);
     });
     $this->assertEquals(array(), JsLocalizationHelper::getAdditionalMessages());
     JsLocalizationHelper::triggerRegisterMessages();
     $this->assertEquals($this->additionalMessageKeysFlat, JsLocalizationHelper::getAdditionalMessages());
     $this->addTestMessage('en', 'another', 'Another test text.');
     Event::listen('JsLocalization.registerMessages', function () {
         JsLocalizationHelper::addMessagesToExport(array('another'));
     });
     JsLocalizationHelper::triggerRegisterMessages();
     $this->assertEquals(array_merge($this->additionalMessageKeysFlat, array('another')), JsLocalizationHelper::getAdditionalMessages());
 }