private function getWebspace() { $webspace = new Webspace(); $webspace->setName('test'); $theme = new Theme(); $theme->setKey('default'); $webspace->setTheme($theme); return $webspace; }
public function testAddDefaultTemplate() { $expected = ['key' => 'foo', 'errorTemplates' => [], 'defaultTemplates' => ['page' => 'default', 'homepage' => 'overview']]; $theme = new Theme(); $theme->setKey($expected['key']); $theme->addDefaultTemplate('page', 'default'); $theme->addDefaultTemplate('homepage', 'overview'); $this->assertEquals($expected['defaultTemplates'], $theme->getDefaultTemplates()); $this->assertEquals($expected['defaultTemplates']['page'], $theme->getDefaultTemplate('page')); $this->assertEquals($expected['defaultTemplates']['homepage'], $theme->getDefaultTemplate('homepage')); $this->assertNull($theme->getDefaultTemplate('other-type')); $this->assertEquals($expected, $theme->toArray()); }
protected function prepareWebspaceManager() { if ($this->webspaceManager !== null) { return; } $this->webspace = new Webspace(); $this->webspace->setKey('sulu_io'); $local1 = new Localization(); $local1->setLanguage('en'); $local2 = new Localization(); $local2->setLanguage('en'); $local2->setCountry('us'); $this->webspace->setLocalizations([$local1, $local2]); $this->webspace->setName('Default'); $theme = new Theme(); $theme->setKey('test'); $theme->addDefaultTemplate('page', 'default'); $this->webspace->setTheme($theme); $this->webspace->setNavigation(new Navigation([new NavigationContext('main', []), new NavigationContext('footer', [])])); $this->webspaceManager = $this->getMock('Sulu\\Component\\Webspace\\Manager\\WebspaceManagerInterface'); $this->webspaceManager->expects($this->any())->method('findWebspaceByKey')->will($this->returnValue($this->webspace)); }
/** * @internal param \DOMNode $webspaceNode * * @return Theme */ private function generateTheme() { $theme = new Theme(); $theme->setKey($this->xpath->query('/x:webspace/x:theme/x:key')->item(0)->nodeValue); $this->generateErrorTemplates($theme); $this->generateDefaultTemplates($theme); return $theme; }
public function testGetCollectionMovedResourceLocator() { // Set up test $path = '/qwertz/'; $prefix = '/de'; $uuid = 1; $portal = new Portal(); $portal->setKey('portal'); $theme = new Theme(); $theme->setKey('theme'); $webspace = new Webspace(); $webspace->setTheme($theme); $portal->setWebspace($webspace); $localization = new Localization(); $localization->setLanguage('de'); $structure = $this->getStructureMock($uuid); $requestAnalyzer = $this->getRequestAnalyzerMock($portal, $path, $prefix, $localization, RequestAnalyzerInterface::MATCH_TYPE_FULL, 'sulu.lo', 'sulu.lo/en-us'); $activeTheme = $this->getActiveThemeMock(); $contentMapper = $this->getContentMapperMock(); $contentMapper->expects($this->any())->method('loadByResourceLocator')->will($this->throwException(new ResourceLocatorMovedException('/new-test', '123-123-123'))); $portalRouteProvider = new ContentRouteProvider($contentMapper, $requestAnalyzer, $activeTheme); $request = $this->getRequestMock($path); // Test the route provider $routes = $portalRouteProvider->getRouteCollectionForRequest($request); $this->assertCount(1, $routes); $route = $routes->getIterator()->current(); $this->assertEquals('SuluWebsiteBundle:Default:redirect', $route->getDefaults()['_controller']); $this->assertEquals('/de/new-test', $route->getDefaults()['url']); }
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); }