/** * @dataProvider getSiteListProvider */ public function testGetSiteList(array $groups, array $specialGroups, array $expectedGlobalIds) { $provider = new SiteLinkTargetProvider($this->getMockSiteStore(), $specialGroups); $siteList = $provider->getSiteList($groups); $globalIds = array(); /** @var Site $site */ foreach ($siteList as $site) { $globalIds[] = $site->getGlobalId(); } $this->assertSame($expectedGlobalIds, $globalIds); }
/** * @see ApiBase::getAllowedParams */ protected function getAllowedParams() { $sites = $this->siteLinkTargetProvider->getSiteList($this->siteLinkGroups); return array_merge(parent::getAllowedParams(), array('tosite' => array(self::PARAM_TYPE => $sites->getGlobalIdentifiers()), 'totitle' => array(self::PARAM_TYPE => 'string'), 'fromsite' => array(self::PARAM_TYPE => $sites->getGlobalIdentifiers()), 'fromtitle' => array(self::PARAM_TYPE => 'string'), 'token' => null, 'bot' => false)); }
/** * Get allowed params for the identification by a sitelink pair * Lookup through the sitelink object is not used in every subclasses * * @since 0.1 * * @return array[] */ protected function getAllowedParamsForSiteLink() { $sites = $this->siteLinkTargetProvider->getSiteList($this->siteLinkGroups); return array('site' => array(self::PARAM_TYPE => $sites->getGlobalIdentifiers()), 'title' => array(self::PARAM_TYPE => 'string')); }
/** * Checks if the site id is valid. * * @param $siteId string the site id * * @return bool */ private function isValidSiteId($siteId) { return $siteId !== null && $this->siteLinkTargetProvider->getSiteList($this->siteLinkGroups)->hasSite($siteId); }
/** * @see ApiBase::getAllowedParams */ protected function getAllowedParams() { $sites = $this->siteLinkTargetProvider->getSiteList($this->siteLinkGroups); return array_merge(parent::getAllowedParams(), array('ids' => array(self::PARAM_TYPE => 'string', self::PARAM_ISMULTI => true), 'sites' => array(self::PARAM_TYPE => $sites->getGlobalIdentifiers(), self::PARAM_ISMULTI => true, self::PARAM_ALLOW_DUPLICATES => true), 'titles' => array(self::PARAM_TYPE => 'string', self::PARAM_ISMULTI => true, self::PARAM_ALLOW_DUPLICATES => true), 'redirects' => array(self::PARAM_TYPE => array('yes', 'no'), self::PARAM_DFLT => 'yes'), 'props' => array(self::PARAM_TYPE => array('info', 'sitelinks', 'sitelinks/urls', 'aliases', 'labels', 'descriptions', 'claims', 'datatype'), self::PARAM_DFLT => 'info|sitelinks|aliases|labels|descriptions|claims|datatype', self::PARAM_ISMULTI => true), 'languages' => array(self::PARAM_TYPE => WikibaseRepo::getDefaultInstance()->getTermsLanguages()->getLanguages(), self::PARAM_ISMULTI => true), 'languagefallback' => array(self::PARAM_TYPE => 'boolean', self::PARAM_DFLT => false), 'normalize' => array(self::PARAM_TYPE => 'boolean', self::PARAM_DFLT => false), 'sitefilter' => array(self::PARAM_TYPE => $sites->getGlobalIdentifiers(), self::PARAM_ISMULTI => true, self::PARAM_ALLOW_DUPLICATES => true))); }