Ejemplo n.º 1
0
 public function testProcessTranslationsEnableKey()
 {
     $language = CMTest_TH::createLanguage('test');
     $languageKey = CM_Model_LanguageKey::create('Hello World');
     $this->assertSame(false, $languageKey->getJavascript());
     $site = CM_Site_Abstract::factory();
     $render = new CM_Frontend_Render(new CM_Frontend_Environment(null, null, $language));
     // Check that key is *not* included in the JS translations list
     $versionJavascript = CM_Model_Language::getVersionJavascript();
     $request = new CM_Http_Request_Get($render->getUrlResource('library-js', "translations/{$versionJavascript}.js"));
     $response = CM_Http_Response_Resource_Javascript_Library::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertNotContains('Hello World', $response->getContent());
     // Request JS-enabling of language key via RPC call
     $body = CM_Params::jsonEncode(['method' => 'CM_Model_Language.requestTranslationJs', 'params' => ['Hello World']]);
     $request = new CM_Http_Request_Post('/rpc', null, null, $body);
     $response = CM_Http_Response_RPC::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     CMTest_TH::reinstantiateModel($languageKey);
     $this->assertSame(true, $languageKey->getJavascript());
     // Check that key *is* included in the JS translations list
     $versionJavascript = CM_Model_Language::getVersionJavascript();
     $request = new CM_Http_Request_Get($render->getUrlResource('library-js', "translations/{$versionJavascript}.js"));
     $response = CM_Http_Response_Resource_Javascript_Library::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertContains('Hello World', $response->getContent());
 }
Ejemplo n.º 2
0
 protected function setUp()
 {
     CMTest_TH::createLanguage();
     $this->_configInternalFile = new CM_File(DIR_ROOT . 'resources/config/js/internal.js');
     $this->_configInternalFile->ensureParentDirectory();
     $this->_configInternalFile->write('console.log("hello world")');
 }
Ejemplo n.º 3
0
 public function testCreate()
 {
     $language = CMTest_TH::createLanguage('foo');
     $this->assertCount(0, $language->getTranslations());
     $languageKey = CM_Model_LanguageKey::create('foo', ['bar']);
     $this->assertTrue(CM_Model_LanguageKey::exists('foo'));
     $this->assertCount(1, $language->getTranslations());
     $this->assertSame(['bar'], $languageKey->getVariables());
 }
Ejemplo n.º 4
0
 public function testProcessLanguageRedirect()
 {
     CMTest_TH::createLanguage('en');
     $response = CMTest_TH::createResponsePageEmbed('/en/mock7');
     $response->process();
     $this->assertNull($response->getRedirectUrl());
     $response = CMTest_TH::createResponsePageEmbed('/en/mock7', null, CMTest_TH::createUser());
     $response->process();
     $this->assertSame($response->getSite()->getUrl() . '/mock7', $response->getRedirectUrl());
 }
Ejemplo n.º 5
0
 public function testGetLanguageByBrowser()
 {
     $defaultLanguage = CMTest_TH::createLanguage('en');
     $browserLanguage = CMTest_TH::createLanguage('de');
     $this->assertEquals(CM_Model_Language::findDefault(), $defaultLanguage);
     $request = $this->_prepareRequest('/', array('Accept-Language' => 'de'));
     $this->assertEquals($request->getLanguage(), $browserLanguage);
     $request = $this->_prepareRequest('/', array('Accept-Language' => 'pl'));
     $this->assertEquals($request->getLanguage(), $defaultLanguage);
 }
Ejemplo n.º 6
0
 public function setUp()
 {
     $smarty = new Smarty();
     $this->_render = new CM_Frontend_Render();
     $this->_template = $smarty->createTemplate('string:');
     $this->_template->assignGlobal('render', $this->_render);
     $language = CMTest_TH::createLanguage();
     $language->setTranslation('.date.period.years', '{$count} years', ['count']);
     $language->setTranslation('.date.period.hour', '1 hour');
     $language->setTranslation('.date.period.day', '1 day');
 }
Ejemplo n.º 7
0
 public function testLoadPageRedirectLanguage()
 {
     $site = CM_Site_Abstract::factory();
     CMTest_TH::createLanguage('en');
     $viewer = CMTest_TH::createUser();
     $environment = new CM_Frontend_Environment(null, $viewer);
     $component = new CM_Page_View_Ajax_Test_Mock();
     $response = $this->getResponseAjax($component, 'loadPage', ['path' => '/en' . CM_Page_View_Ajax_Test_Mock::getPath()], $environment);
     $this->assertViewResponseSuccess($response);
     $responseDecoded = CM_Params::jsonDecode($response->getContent());
     $this->assertSame($site->getUrl() . CM_Page_View_Ajax_Test_Mock::getPath(), $responseDecoded['success']['data']['url']);
 }
Ejemplo n.º 8
0
 public function testLanguageAlternatives()
 {
     $site = $this->getMockSite('CM_Site_Abstract', null, array('url' => 'http://www.example.com'));
     $language1 = CMTest_TH::createLanguage('en');
     $language2 = CMTest_TH::createLanguage('de');
     $environment = new CM_Frontend_Environment($site, null, $language2, null, true);
     $render = new CM_Frontend_Render($environment, true);
     $this->getMockForAbstractClass('CM_Layout_Abstract', array(), 'CM_Layout_Default');
     $page = new CM_Page_Example();
     $renderAdapter = new CM_RenderAdapter_Document($render, $page);
     $html = $renderAdapter->fetch();
     $this->assertContains('<link rel="alternate" href="http://www.example.com/example" hreflang="x-default">', $html);
     $this->assertContains('<link rel="alternate" href="http://www.example.com/en/example" hreflang="en">', $html);
     $this->assertContains('<link rel="alternate" href="http://www.example.com/de/example" hreflang="de">', $html);
 }
Ejemplo n.º 9
0
 public function testGetUrlPageLanguageRewrite()
 {
     $page = $this->getMockForAbstractClass('CM_Page_Abstract', array(), 'CM_Page_Test', false);
     $baseUrl = 'http://www.default.dev';
     $render = new CM_Frontend_Render();
     $this->assertSame($baseUrl . '/test', $render->getUrlPage($page));
     $render = new CM_Frontend_Render(null, true);
     // This should never happen in application, but lets test it
     $this->assertSame($baseUrl . '/test', $render->getUrlPage($page));
     $language = CMTest_TH::createLanguage('en');
     $environment = new CM_Frontend_Environment(null, null, $language);
     $render = new CM_Frontend_Render($environment);
     $this->assertSame($baseUrl . '/test', $render->getUrlPage($page));
     $render = new CM_Frontend_Render($environment, true);
     $this->assertSame($baseUrl . '/en/test', $render->getUrlPage($page));
 }
Ejemplo n.º 10
0
 public function testProcessLanguageNoRedirect()
 {
     $language = CMTest_TH::createLanguage('en');
     $user = CMTest_TH::createUser();
     $response = CMTest_TH::createResponsePage('/en/mock5');
     $response->process();
     $this->assertEquals($language, $response->getRequest()->getLanguageUrl());
     $response = CMTest_TH::createResponsePage('/mock5');
     $response->process();
     $this->assertNull($response->getRequest()->getLanguageUrl());
     $response = CMTest_TH::createResponsePage('/mock5', null, $user);
     $response->process();
     $this->assertNull($response->getRequest()->getLanguageUrl());
     foreach ($response->getHeaders() as $header) {
         $this->assertNotContains('Location:', $header);
     }
 }
Ejemplo n.º 11
0
 public function testProcessLanguageNoRedirect()
 {
     $language = CMTest_TH::createLanguage('en');
     $site = CM_Site_Abstract::factory();
     $request = new CM_Http_Request_Get('/en/mock5', ['host' => $site->getHost()]);
     $response = CM_Http_Response_Page::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertEquals($language, $response->getRequest()->getLanguageUrl());
     $request = new CM_Http_Request_Get('/mock5', ['host' => $site->getHost()]);
     $response = CM_Http_Response_Page::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertNull($response->getRequest()->getLanguageUrl());
     $viewer = CMTest_TH::createUser();
     $request = new CM_Http_Request_Get('/mock5', ['host' => $site->getHost()], null, $viewer);
     $response = CM_Http_Response_Page::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertNull($response->getRequest()->getLanguageUrl());
     foreach ($response->getHeaders() as $header) {
         $this->assertNotContains('Location:', $header);
     }
 }
Ejemplo n.º 12
0
 public function testSetLanguage()
 {
     $language = CMTest_TH::createLanguage();
     $user = CMTest_TH::createUser();
     $this->assertNotEquals($language, $user->getLanguage());
     $user->setLanguage($language);
     $this->assertEquals($language, $user->getLanguage());
 }
Ejemplo n.º 13
0
 public function testSetName()
 {
     $language = CMTest_TH::createLanguage();
     $key = CM_Model_LanguageKey::create('foo');
     $key->setName('bar');
     $this->assertSame('bar', $key->getName());
     $this->assertTrue(Functional\some($language->getTranslations()->getItems(), function ($translation) {
         return $translation['key'] === 'bar';
     }));
 }
Ejemplo n.º 14
0
 public function testLoadPageRedirectLanguage()
 {
     $site = $this->getMockSite(null, null, ['url' => 'http://my-site.com']);
     CMTest_TH::createLanguage('en');
     $viewer = CMTest_TH::createUser();
     $page = new CM_Page_View_Ajax_Test_Mock();
     $env = new CM_Frontend_Environment($site, $viewer);
     $params = ['path' => '/en' . $page::getPath(), 'currentLayout' => $page->getLayout($env)];
     $request = $this->createRequestAjax($page, 'loadPage', $params, null, null, $site);
     $request->mockMethod('getViewer')->set($viewer);
     /** @var CM_Http_Response_View_Abstract $response */
     $response = $this->processRequest($request);
     $this->assertViewResponseSuccess($response);
     $responseDecoded = CM_Params::jsonDecode($response->getContent());
     $this->assertSame($site->getUrl() . CM_Page_View_Ajax_Test_Mock::getPath(), $responseDecoded['success']['data']['url']);
 }