public function testMessageIsTranslated()
 {
     $message = "An awesome message";
     $expectedMessage = "Translated message";
     $parameters = array('foo' => 'bar,');
     $domain = "RedKiteCms";
     $locale = 'it';
     $translator = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface');
     $translator->expects($this->once())->method('trans')->with($message, $parameters, $domain, $locale)->will($this->returnValue($expectedMessage));
     Translator::setTranslator($translator);
     $translatedMessage = Translator::translate($message, $parameters, $domain, $locale);
     $this->assertEquals($translatedMessage, $expectedMessage);
 }
 public static function translateException($message, \Exception $exception = null)
 {
     $jsonMessage = json_decode($message, true);
     if (!is_array($jsonMessage)) {
         $jsonMessage = array('message' => $message);
     }
     $parameters = array('message' => '', 'parameters' => array(), 'domain' => 'RedKiteCms', 'locale' => null);
     $cleanedParameters = array_intersect_key($jsonMessage, $parameters);
     $parameters = array_merge($parameters, $cleanedParameters);
     $message = Translator::translate($parameters["message"], $parameters["parameters"], $parameters["domain"], $parameters["locale"]);
     if (null !== $exception && array_key_exists("show_exception", $jsonMessage) && $jsonMessage["show_exception"]) {
         $message = substr(strrchr(get_class($exception), '\\'), 1) . ": " . $message;
     }
     return $message;
 }
 public function testBlockCreated()
 {
     $translator = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface');
     $translator->expects($this->once())->method('trans')->with('', array(), 'RedKiteCms', null);
     Translator::setTranslator($translator);
     $value = "foo";
     $tags = array("class" => "bar");
     $block = new TestExtendableBlock($value, $tags);
     $expectedSource = "value: foo\n";
     $expectedSource .= "tags:\n";
     $expectedSource .= "  class: bar\n";
     $expectedSource .= "type: Foo\n";
     $this->assertEquals($expectedSource, $block->getSource());
     $this->assertEquals($tags, $block->getTags());
     $tags = array("class" => "baz");
     $block->setTags($tags);
     $this->assertEquals($tags, $block->getTags());
     $source = 'foo: bar';
     $block->setSource($source);
     $this->assertEquals($source, $block->getSource());
 }
 private function boot()
 {
     BlockFactory::boot($this->app["red_kite_cms.configuration_handler"]);
     Dispatcher::setDispatcher($this->app["dispatcher"]);
     DataLogger::init($this->app["monolog"]);
     Translator::setTranslator($this->app["translator"]);
     $this->app["red_kite_cms.plugin_manager"]->boot();
     $theme = $this->app["red_kite_cms.plugin_manager"]->getActiveTheme();
     $this->app["red_kite_cms.theme"]->boot($theme);
     $this->app["red_kite_cms.theme_generator"]->boot($theme);
     $this->app["red_kite_cms.slots_generator"]->boot($theme);
     $this->app["red_kite_cms.theme_aligner"]->boot($theme);
     $siteIncompleteFile = $this->app["red_kite_cms.root_dir"] . '/app/data/' . $this->siteName . '/incomplete.json';
     if (file_exists($siteIncompleteFile)) {
         $this->createWebsitePages($theme);
         unlink($siteIncompleteFile);
     }
     $this->app["dispatcher"]->dispatch(CmsEvents::CMS_BOOTING, new CmsBootingEvent($this->app["red_kite_cms.configuration_handler"]));
     $this->app["red_kite_cms.template_assets"]->boot();
     $this->app["red_kite_cms.assetic"]->addFilter('cssrewrite', new CssRewriteFilter());
 }
 /**
  * @dataProvider blockProvider
  */
 public function testBlockCreated($translatorOptions)
 {
     $expectedTranslations = 0;
     if (count($translatorOptions) > 0) {
         $expectedTranslations = 1;
     }
     $params = array_key_exists("params", $translatorOptions) ? $translatorOptions["params"] : array();
     $domain = array_key_exists("domain", $translatorOptions) ? $translatorOptions["domain"] : 'RedKiteCms';
     $translator = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface');
     $translator->expects($this->exactly($expectedTranslations))->method('trans')->with('foo', $params, $domain, null);
     Translator::setTranslator($translator);
     $block = new BlockTest($translatorOptions);
     $this->assertEquals('MyLink', $block->getType());
     $this->assertEquals('mylink', $block->getCustomTag());
     $slotName = 'logo';
     $this->assertNull($block->getSlotName());
     $block->setSlotName($slotName);
     $this->assertEquals($slotName, $block->getSlotName());
     $name = 'link';
     $this->assertEmpty($block->getName());
     $block->setName($name);
     $this->assertEquals($name, $block->getName());
     $history = array('foo' => 'bar');
     $this->assertEmpty($block->getHistory());
     $block->setHistory($history);
     $this->assertEquals($history, $block->getHistory());
     $historyName = 'foo';
     $this->assertEmpty($block->getHistoryName());
     $block->setHistoryName($historyName);
     $this->assertEquals($historyName, $block->getHistoryName());
     $this->assertFalse($block->isInternal());
 }
 /**
  * Translates the block
  */
 protected function translate()
 {
     $translatorOptions = $this->getTranslatorOptions();
     if (empty($translatorOptions) && !array_key_exists("fields", $translatorOptions)) {
         return;
     }
     $params = array();
     if (array_key_exists("params", $translatorOptions)) {
         $params = $translatorOptions["params"];
     }
     $domain = "RedKiteCms";
     if (array_key_exists("domain", $translatorOptions)) {
         $domain = $translatorOptions["domain"];
     }
     foreach ($translatorOptions["fields"] as $field) {
         $field = ucfirst($field);
         $method = 'get' . $field;
         $value = Translator::translate($this->{$method}(), $params, $domain);
         $method = 'set' . $field;
         $this->{$method}($value);
     }
 }