/**
  * @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());
     }
 }
Esempio n. 3
0
 /**
  * @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);
     }
 }
Esempio n. 4
0
 /**
  * @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 provideRoundTripObjects
  */
 public function testJsonRoundTrip(PageIdentifier $identifierObject)
 {
     $json = $identifierObject->jsonSerialize();
     $this->assertEquals($identifierObject, PageIdentifier::jsonDeserialize($json));
 }
Esempio n. 6
0
 /**
  * @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);
 }
Esempio n. 7
0
 /**
  * @deprecated since 0.5
  * @return Title
  */
 public function getTitle()
 {
     return $this->pageIdentifier->getTitle();
 }
Esempio n. 8
0
 /**
  * @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());
 }
Esempio n. 10
0
 /**
  * @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;
 }
Esempio n. 11
0
 /**
  * @param array $json
  *
  * @return self
  */
 public static function jsonDeserialize($json)
 {
     return new self($json['id'], $json['type'], $json['action'], $json['timestamp'], $json['user'], PageIdentifier::jsonDeserialize($json['pageidentifier']), $json['comment'], $json['details']);
 }