public function testRender() { $request = new Request(['test' => 1], ['test' => 2], [], ['test' => 3]); $activeTheme = $this->prophesize(ActiveTheme::class); $controllerResolver = $this->prophesize(ControllerResolver::class); $webspaceManager = $this->prophesize(WebspaceManager::class); $requestStack = $this->prophesize(RequestStack::class); $structure = $this->prophesize(PageBridge::class); $translator = $this->prophesize(TranslatorInterface::class); $webspaceManager->findWebspaceByKey('sulu_io')->willReturn($this->getWebspace()); $structure->getController()->willReturn('TestController:test'); $structure->getLanguageCode()->willReturn('de_at'); $structure->getWebspaceKey()->willReturn('sulu_io'); $controllerResolver->getController(Argument::type(Request::class))->will(function () { return [new TestController(), 'testAction']; }); $requestStack->getCurrentRequest()->willReturn($request); $requestStack->push(Argument::that(function (Request $newRequest) use($request) { $this->assertEquals($request->query->all(), $newRequest->query->all()); $this->assertEquals($request->request->all(), $newRequest->request->all()); $this->assertEquals($request->cookies->all(), $newRequest->cookies->all()); return true; }))->shouldBeCalledTimes(1); $requestStack->pop()->shouldBeCalled(); $translator->getLocale()->willReturn('de'); $translator->setLocale('de_at')->shouldBeCalled(); $translator->setLocale('de')->shouldBeCalled(); $renderer = new PreviewRenderer($activeTheme->reveal(), $controllerResolver->reveal(), $webspaceManager->reveal(), $requestStack->reveal(), $translator->reveal()); $result = $renderer->render($structure->reveal()); $this->assertEquals('TEST', $result); }
/** * render structure. */ private function renderStructure(StructureInterface $content, $partial = false, $property = null) { $result = $this->renderer->render($content, $partial); // if partial render for property is called if ($property != null) { $result = $this->crawler->getPropertyValue($result, $content, $property); } return $result; }