protected function prepareWebspaceManager() { if ($this->webspaceManager === null) { $webspace = new Webspace(); $en = new Localization(); $en->setLanguage('en'); $en_us = new Localization(); $en_us->setLanguage('en'); $en_us->setCountry('us'); $en_us->setParent($en); $en->addChild($en_us); $de = new Localization(); $de->setLanguage('de'); $de_at = new Localization(); $de_at->setLanguage('de'); $de_at->setCountry('at'); $de_at->setParent($de); $de->addChild($de_at); $es = new Localization(); $es->setLanguage('es'); $webspace->addLocalization($en); $webspace->addLocalization($de); $webspace->addLocalization($es); $this->webspaceManager = $this->prophesize('Sulu\\Component\\Webspace\\Manager\\WebspaceManagerInterface'); $this->webspaceManager->findWebspaceByKey('sulu_io')->willReturn($webspace); } }
/** * Generates the localization for the webspace from the XML document. */ protected function generateWebspaceLocalizations() { foreach ($this->xpath->query('/x:webspace/x:localizations/x:localization') as $localizationNode) { $localization = $this->generateLocalizationFromNode($localizationNode); $this->webspace->addLocalization($localization); } }
public function testFindLocalization() { $localeDe = $this->getLocalization('de'); $localeDeAt = $this->getLocalization('de', 'at'); $localeDeCh = $this->getLocalization('de', 'ch'); $localeDe->addChild($localeDeAt); $localeDe->addChild($localeDeCh); $localeEn = $this->getLocalization('en'); $this->webspace->addLocalization($localeDe); $this->webspace->addLocalization($localeEn); $result = $this->webspace->getLocalization('de'); $this->assertEquals('de', $result->getLocalization()); $result = $this->webspace->getLocalization('de_at'); $this->assertEquals('de_at', $result->getLocalization()); $result = $this->webspace->getLocalization('de_ch'); $this->assertEquals('de_ch', $result->getLocalization()); $result = $this->webspace->getLocalization('en'); $this->assertEquals('en', $result->getLocalization()); $result = $this->webspace->getLocalization('en_us'); $this->assertEquals(null, $result); }
public function setUp() { $webspaces = []; $portals = []; $portalInformations = ['prod' => [], 'dev' => []]; $this->webspaceCollection = new WebspaceCollection(); // first portal $portal = new Portal(); $portal->setName('Portal1'); $portal->setKey('portal1'); $theme = new Theme(); $theme->setKey('portal1theme'); $environment = new Environment(); $url = new Url(); $url->setUrl('www.portal1.com'); $url->setLanguage('en'); $url->setCountry('us'); $environment->addUrl($url); $environment->setType('prod'); $url = new Url(); $url->setUrl('portal1.com'); $url->setRedirect('www.portal1.com'); $environment->addUrl($url); $portal->addEnvironment($environment); $localizationEnUs = new Localization(); $localizationEnUs->setCountry('us'); $localizationEnUs->setLanguage('en'); $localizationEnUs->setShadow('auto'); $localizationEnUs->setDefault(true); $localizationEnCa = new Localization(); $localizationEnCa->setCountry('ca'); $localizationEnCa->setLanguage('en'); $localizationEnCa->setDefault(false); $localizationEnUs->addChild($localizationEnCa); $localizationFrCa = new Localization(); $localizationFrCa->setCountry('ca'); $localizationFrCa->setLanguage('fr'); $localizationFrCa->setDefault(false); $portal->addLocalization($localizationEnUs); $portal->addLocalization($localizationEnCa); $portal->addLocalization($localizationFrCa); $portal->setDefaultLocalization($localizationEnUs); $portal->setResourceLocatorStrategy('tree'); $webspace = new Webspace(); $webspace->addLocalization($localizationEnUs); $webspace->addLocalization($localizationFrCa); $segmentSummer = new Segment(); $segmentSummer->setName('Summer'); $segmentSummer->setKey('s'); $segmentSummer->setDefault(true); $segmentWinter = new Segment(); $segmentWinter->setName('Winter'); $segmentWinter->setKey('w'); $segmentWinter->setDefault(false); $webspace->addSegment($segmentSummer); $webspace->addSegment($segmentWinter); $webspace->setTheme($theme); $webspace->addPortal($portal); $webspace->setKey('default'); $webspace->setName('Default'); $webspace->addPortal($portal); $webspace->setNavigation(new Navigation([new NavigationContext('main', [])])); $portals[] = $portal; $webspaces[] = $webspace; $portalInformations['prod']['www.portal1.com'] = new PortalInformation(RequestAnalyzerInterface::MATCH_TYPE_FULL, $webspace, $portal, $localizationEnUs, 'www.portal1.com', $segmentSummer); $portalInformations['dev']['portal1.lo'] = new PortalInformation(RequestAnalyzerInterface::MATCH_TYPE_FULL, $webspace, $portal, $localizationEnUs, 'portal1.lo', $segmentSummer); $this->webspaceCollection->setWebspaces($webspaces); $this->webspaceCollection->setPortals($portals); $this->webspaceCollection->setPortalInformations($portalInformations); }