/** * @dataProvider contextPathsAndRequestPathsDataProvider * @test */ public function resolveConsidersDimensionValuesPassedViaTheContextPathForRenderingTheUrl($contextPath, $expectedUriPath) { $this->contentDimensionPresetSource->setConfiguration(array('language' => array('default' => 'en_US', 'defaultPreset' => 'en_US', 'presets' => array('en_US' => array('label' => 'English (US)', 'values' => array('en_US'), 'uriSegment' => 'en'), 'de_DE' => array('label' => 'Deutsch', 'values' => array('de_DE', 'en_US'), 'uriSegment' => 'de'))), 'country' => array('default' => 'global', 'defaultPreset' => 'global', 'presets' => array('global' => array('label' => 'Global', 'values' => array('global'), 'uriSegment' => 'global'), 'us' => array('label' => 'USA', 'values' => array('us'), 'uriSegment' => 'us'), 'de' => array('label' => 'Deutschland', 'values' => array('de'), 'uriSegment' => 'de'))))); $mockContext = $this->buildMockContext(array('workspaceName' => 'live')); $mockContext->mockSite = $this->getMockBuilder(Site::class)->disableOriginalConstructor()->getMock(); $mockSiteNode = $this->buildSiteNode($mockContext, '/sites/examplecom'); $mockSiteNode->expects($this->any())->method('getContextPath')->will($this->returnValue('/sites/examplecom')); $mockContext->mockSiteNode = $mockSiteNode; $mockSubNode = $this->buildSubNode($mockContext->mockSiteNode, 'features'); $mockSubNode->mockProperties['uriPathSegment'] = 'features'; $mockSubNode->expects($this->any())->method('getContextPath')->will($this->returnValue('/sites/examplecom/features')); $mockContext->expects($this->any())->method('getNode')->will($this->returnCallback(function ($nodePath) use($mockSubNode, $mockSiteNode) { switch ($nodePath) { case '/sites/examplecom/features': return $mockSubNode; case '/sites/examplecom': return $mockSiteNode; default: return null; } })); $routeValues = array('node' => $contextPath); $this->assertTrue($this->routePartHandler->resolve($routeValues)); $this->assertSame($expectedUriPath, $this->routePartHandler->getValue()); }