/**
  * @covers HashSiteStore::clear
  */
 public function testClear()
 {
     $store = new HashSiteStore();
     $site = new Site();
     $site->setGlobalId('arwiki');
     $store->saveSite($site);
     $this->assertCount(1, $store->getSites(), '1 site in store');
     $store->clear();
     $this->assertCount(0, $store->getSites(), '0 sites in store');
 }
示例#2
0
 /**
  * @since 1.21
  *
  * @return array
  */
 public static function getSites()
 {
     $sites = array();
     $site = new Site();
     $site->setGlobalId('foobar');
     $sites[] = $site;
     $site = new MediaWikiSite();
     $site->setGlobalId('enwiktionary');
     $site->setGroup('wiktionary');
     $site->setLanguageCode('en');
     $site->addNavigationId('enwiktionary');
     $site->setPath(MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/\$1");
     $site->setPath(MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/\$1");
     $sites[] = $site;
     $site = new MediaWikiSite();
     $site->setGlobalId('dewiktionary');
     $site->setGroup('wiktionary');
     $site->setLanguageCode('de');
     $site->addInterwikiId('dewiktionary');
     $site->addInterwikiId('wiktionaryde');
     $site->setPath(MediaWikiSite::PATH_PAGE, "https://de.wiktionary.org/wiki/\$1");
     $site->setPath(MediaWikiSite::PATH_FILE, "https://de.wiktionary.org/w/\$1");
     $sites[] = $site;
     $site = new Site();
     $site->setGlobalId('spam');
     $site->setGroup('spam');
     $site->setLanguageCode('en');
     $site->addNavigationId('spam');
     $site->addNavigationId('spamz');
     $site->addInterwikiId('spamzz');
     $site->setLinkPath("http://spamzz.test/testing/");
     $sites[] = $site;
     /**
      * Add at least one right-to-left language (current RTL languages in MediaWiki core are:
      * aeb, ar, arc, arz, azb, bcc, bqi, ckb, dv, en_rtl, fa, glk, he, khw, kk_arab, kk_cn,
      * ks_arab, ku_arab, lrc, mzn, pnb, ps, sd, ug_arab, ur, yi).
      */
     $languageCodes = array('de', 'en', 'fa', 'nl', 'nn', 'no', 'sr', 'sv');
     foreach ($languageCodes as $langCode) {
         $site = new MediaWikiSite();
         $site->setGlobalId($langCode . 'wiki');
         $site->setGroup('wikipedia');
         $site->setLanguageCode($langCode);
         $site->addInterwikiId($langCode);
         $site->addNavigationId($langCode);
         $site->setPath(MediaWikiSite::PATH_PAGE, "https://{$langCode}.wikipedia.org/wiki/\$1");
         $site->setPath(MediaWikiSite::PATH_FILE, "https://{$langCode}.wikipedia.org/w/\$1");
         $sites[] = $site;
     }
     return $sites;
 }
 private function getSites()
 {
     $sites = array();
     $site = new Site();
     $site->setGlobalId('foobar');
     $sites[] = $site;
     $site = new MediaWikiSite();
     $site->setGlobalId('enwiktionary');
     $site->setGroup('wiktionary');
     $site->setLanguageCode('en');
     $site->addNavigationId('enwiktionary');
     $site->setPath(MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/\$1");
     $site->setPath(MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/\$1");
     $sites[] = $site;
     return new SiteList($sites);
 }
 /**
  * @covers CachingSiteStore::saveSites
  */
 public function testSaveSites()
 {
     $store = new CachingSiteStore(new HashSiteStore(), wfGetMainCache());
     $sites = [];
     $site = new Site();
     $site->setGlobalId('ertrywuutr');
     $site->setLanguageCode('en');
     $sites[] = $site;
     $site = new MediaWikiSite();
     $site->setGlobalId('sdfhxujgkfpth');
     $site->setLanguageCode('nl');
     $sites[] = $site;
     $this->assertTrue($store->saveSites($sites));
     $site = $store->getSite('ertrywuutr');
     $this->assertInstanceOf('Site', $site);
     $this->assertEquals('en', $site->getLanguageCode());
     $site = $store->getSite('sdfhxujgkfpth');
     $this->assertInstanceOf('Site', $site);
     $this->assertEquals('nl', $site->getLanguageCode());
 }
示例#5
0
 public function testSaveSites()
 {
     $store = SiteSQLStore::newInstance();
     $sites = array();
     $site = new Site();
     $site->setGlobalId('ertrywuutr');
     $site->setLanguageCode('en');
     $sites[] = $site;
     $site = new MediaWikiSite();
     $site->setGlobalId('sdfhxujgkfpth');
     $site->setLanguageCode('nl');
     $sites[] = $site;
     $this->assertTrue($store->saveSites($sites));
     $site = $store->getSite('ertrywuutr');
     $this->assertInstanceOf('Site', $site);
     $this->assertEquals('en', $site->getLanguageCode());
     $this->assertTrue(is_integer($site->getInternalId()));
     $this->assertTrue($site->getInternalId() >= 0);
     $site = $store->getSite('sdfhxujgkfpth');
     $this->assertInstanceOf('Site', $site);
     $this->assertEquals('nl', $site->getLanguageCode());
     $this->assertTrue(is_integer($site->getInternalId()));
     $this->assertTrue($site->getInternalId() >= 0);
 }
示例#6
0
 /**
  * Factory for creating new site objects.
  *
  * @since 1.21
  * @deprecated
  *
  * @param string|boolean false $globalId
  *
  * @return Site
  */
 public static function newSite($globalId = false)
 {
     $site = new Site();
     if ($globalId !== false) {
         $site->setGlobalId($globalId);
     }
     return $site;
 }
 /**
  * @covers DBSiteStore::getSites
  */
 public function testGetSitesDefaultOrder()
 {
     $store = new DBSiteStore();
     $siteB = new Site();
     $siteB->setGlobalId('B');
     $siteA = new Site();
     $siteA->setGlobalId('A');
     $store->saveSites(array($siteB, $siteA));
     $sites = $store->getSites();
     $siteIdentifiers = array();
     /** @var Site $site */
     foreach ($sites as $site) {
         $siteIdentifiers[] = $site->getGlobalId();
     }
     $this->assertSame(array('A', 'B'), $siteIdentifiers);
     // Note: SiteList::getGlobalIdentifiers uses an other internal state. Iteration must be
     // tested separately.
     $this->assertSame(array('A', 'B'), $sites->getGlobalIdentifiers());
 }
示例#8
0
 /**
  * @dataProvider instanceProvider
  * @param Site $site
  * @covers Site::setGlobalId
  */
 public function testSetGlobalId(Site $site)
 {
     $site->setGlobalId('foobar');
     $this->assertEquals('foobar', $site->getGlobalId());
 }