createLead(); $dynamicContent = $this->createDynamicContent($lead); $defaultContent = 'Default web content'; $page = $this->createPage($dynamicContent, $defaultContent); $this->em->flush(); $url = "/page/preview/{$page->getId()}"; // Anonymous visitor is not allowed to access preview $this->client->request(Request::METHOD_GET, $url); self::assertSame(Response::HTTP_FORBIDDEN, $this->client->getResponse()->getStatusCode()); $this->loginUser('admin'); // Admin user is allowed to access preview $this->assertPageContent($url, $defaultContent); // Check DWC replacement for the given lead $this->assertPageContent("{$url}?contactId={$lead->getId()}", $dynamicContent->getContent()); // Check there is no DWC replacement for a non-existent lead $this->assertPageContent("{$url}?contactId=987", $defaultContent); } private function assertPageContent(string $url, string $expectedContent): void { $crawler = $this->client->request(Request::METHOD_GET, $url); self::assertSame(Response::HTTP_OK, $this->client->getResponse()->getStatusCode(), $this->client->getResponse()->getContent()); self::assertSame($expectedContent, $crawler->text()); } private function createPage(DynamicContent $dynamicContent, string $defaultContent): Page { $page = new Page(); $page->setIsPublished(true); $page->setDateAdded(new \DateTime()); $page->setTitle('Preview settings test - main page'); $page->setAlias('page-main'); $page->setTemplate('Blank'); $page->setCustomHtml(sprintf('