public function testGetters() { $rawResult = json_decode(self::$bodyJson); $pageUrl = '/my/url'; $resultPage = new Page($rawResult->Page); $resultPage->setPageUrl($pageUrl); $this->assertInstanceOf(PageInterface::class, $resultPage); // Page url $this->assertEquals($pageUrl, $resultPage->getPageUrl()); // Head content $this->assertEquals("A meta description", $resultPage->getHeadContent()->MetaDescription); $this->assertEquals("Some meta keywords", $resultPage->getHeadContent()->MetaKeywords); $this->assertEquals("A title", $resultPage->getHeadContent()->Title); // Head instructions $this->assertEquals("https://www.example.com/canonical", $resultPage->getHeadInstructions()->CanonicalUrl); $this->assertEquals("INDEX, FOLLOW", $resultPage->getHeadInstructions()->MetaRobots); // Links $links = $resultPage->getLinks(); $this->assertEquals('Main Links', $links[0]->Key); $this->assertEquals('Main link 1', $links[0]->Value[0]->AnchorText); $this->assertEquals('Main link 2', $links[0]->Value[1]->AnchorText); // Link section $linkSection = $resultPage->getLinkSection('main links'); $this->assertEquals('Main link 1', $linkSection[0]->AnchorText); $this->assertEquals('Main link 2', $linkSection[1]->AnchorText); // Page content $this->assertEquals("Page content abstract", $resultPage->getPageContent()->Abstract); // Server side $this->assertEquals("Existing", $resultPage->getServerSide()->PageOrigin); }
/** * {@inheritdoc} */ public function build(RequestInterface $request, HttpResponseInterface $response) { $url = $request->getParams()['url']; $json = $response->getBody(); $data = json_decode($json); if (!isset($data->Page)) { throw new ResultBuilderException("Required element was not present in response (Page)"); } $rawPage = $data->Page; // "Links" can be blank, so we don't check for it $requiredProperties = ["HeadContent", "HeadInstructions", "PageContent", "ServerSide"]; foreach ($requiredProperties as $expectedProperty) { if (!isset($rawPage->{$expectedProperty})) { throw new ResultBuilderException("Required element was not present in response (Page.{$expectedProperty})"); } } $page = new Page($rawPage); $page->setPageUrl($url); return new PageResult($response, $page); }
/** * @param bool $mustBeNull * @return Page */ private function getPageObject($mustBeNull = false) { $rawPageHead = new \stdClass(); $rawPageHead->MetaDescription = $mustBeNull ? null : 'ThisIsTheMetaDescription'; $rawPageHead->MetaKeywords = $mustBeNull ? null : 'ThisIsTheMetaKeywords'; $rawPageHead->Title = $mustBeNull ? null : 'ThisIsTheTitle'; $rawPage = new \stdClass(); $rawPage->HeadContent = $rawPageHead; $page = new Page($rawPage); $page->setPageUrl('/testpage'); return $page; }