/** * @depends testGetPageUsingTitle */ public function testGetPageUsingId() { $factory = TestEnvironment::newDefault()->getFactory(); $page = $factory->newPageGetter()->getFromPageId(self::$localPageIdentifier->getId()); $this->assertEquals(self::$localPageIdentifier->getId(), $page->getPageIdentifier()->getId()); $title = $page->getPageIdentifier()->getTitle(); $this->assertEquals(self::$localPageIdentifier->getTitle(), $title); }
/** * @param PageIdentifier $pageIdentifier * * @return Page * * @throws InvalidArgumentException */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier) { if (!$pageIdentifier->identifiesPage()) { throw new InvalidArgumentException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId()); } else { return $this->getFromTitle($pageIdentifier->getTitle()); } }
/** * @param PageIdentifier $pageIdentifier * * @return PromiseInterface of array the parse result (raw from the api) */ public function parsePageAsync(PageIdentifier $pageIdentifier) { $params = []; if ($pageIdentifier->getId() !== null) { $params['pageid'] = $pageIdentifier->getId(); } elseif ($pageIdentifier->getTitle() !== null) { $params['page'] = $pageIdentifier->getTitle()->getText(); } else { throw new \RuntimeException('No way to identify page'); } $promise = $this->api->getRequestAsync(new SimpleRequest('parse', $params)); return $promise->then(function ($result) { return $result['parse']; }); }
/** * @dataProvider provideValidConstruction */ public function testValidConstruction($title, $pageid, $identifiesPage) { $pageIdentifier = new PageIdentifier($title, $pageid); if (is_string($title)) { $this->assertEquals(new Title($title), $pageIdentifier->getTitle()); } else { $this->assertEquals($title, $pageIdentifier->getTitle()); } $this->assertEquals($pageid, $pageIdentifier->getId()); $this->assertEquals($identifiesPage, $pageIdentifier->identifiesPage()); }
/** * @param PageIdentifier $identifier * @param array $extraParams * * @return array */ private function getDeleteParams(PageIdentifier $identifier, $extraParams) { $params = []; if (!is_null($identifier->getId())) { $params['pageid'] = $identifier->getId(); } else { $params['title'] = $identifier->getTitle()->getTitle(); } $params['token'] = $this->api->getToken('delete'); return array_merge($extraParams, $params); }
/** * @deprecated since 0.5 * @return int */ public function getId() { return $this->pageIdentifier->getId(); }
/** * @since 0.4 * * @param PageIdentifier $pageIdentifier * @param QueryOptions|null $options * * @throws RuntimeException * @returns Page */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier, QueryOptions $options = null) { if (!$pageIdentifier->identifiesPage()) { throw new RuntimeException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId(), $options); } else { return $this->getFromTitle($pageIdentifier->getTitle(), $options); } }
/** * @depends testGetPageUsingTitle */ public function testGetPageUsingId() { $page = $this->factory->newPageGetter()->getFromPageId(self::$localPageIdentifier->getId()); $this->assertEquals(self::$localPageIdentifier->getId(), $page->getPageIdentifier()->getId()); $this->assertEquals(self::$localPageIdentifier->getTitle(), $page->getPageIdentifier()->getTitle()); }
/** * @since 0.4 * * @param PageIdentifier $pageIdentifier * @param array $extraParams * * @throws RuntimeException * @returns Page */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier, array $extraParams = []) { if (!$pageIdentifier->identifiesPage()) { throw new RuntimeException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId(), $extraParams); } else { return $this->getFromTitle($pageIdentifier->getTitle(), $extraParams); } }
/** * @param PageIdentifier $identifier * @param DeleteOptions|null $options * * @return array */ private function getDeleteParams(PageIdentifier $identifier, $options) { $params = array(); if (!is_null($options)) { $reason = $options->getReason(); if (!empty($reason)) { $params['reason'] = $reason; } } if (!is_null($identifier->getId())) { $params['pageid'] = $identifier->getId(); } else { $params['title'] = $identifier->getTitle()->getTitle(); } $params['token'] = $this->api->getToken('delete'); return $params; }