summaryrefslogtreecommitdiff
path: root/tests/phpunit/includes/site
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/site')
-rw-r--r--tests/phpunit/includes/site/MediaWikiSiteTest.php90
-rw-r--r--tests/phpunit/includes/site/SiteListTest.php197
-rw-r--r--tests/phpunit/includes/site/SiteSQLStoreTest.php134
-rw-r--r--tests/phpunit/includes/site/SiteTest.php296
-rw-r--r--tests/phpunit/includes/site/TestSites.php100
5 files changed, 0 insertions, 817 deletions
diff --git a/tests/phpunit/includes/site/MediaWikiSiteTest.php b/tests/phpunit/includes/site/MediaWikiSiteTest.php
deleted file mode 100644
index c5d52d33..00000000
--- a/tests/phpunit/includes/site/MediaWikiSiteTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/**
- * Tests for the MediaWikiSite class.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class MediaWikiSiteTest extends SiteTest {
-
- public function testNormalizePageTitle() {
- $site = new MediaWikiSite();
- $site->setGlobalId( 'enwiki' );
-
- //NOTE: this does not actually call out to the enwiki site to perform the normalization,
- // but uses a local Title object to do so. This is hardcoded on SiteLink::normalizePageTitle
- // for the case that MW_PHPUNIT_TEST is set.
- $this->assertEquals( 'Foo', $site->normalizePageName( ' foo ' ) );
- }
-
- public function fileUrlProvider() {
- return array(
- // url, filepath, path arg, expected
- array( 'https://en.wikipedia.org', '/w/$1', 'api.php', 'https://en.wikipedia.org/w/api.php' ),
- array( 'https://en.wikipedia.org', '/w/', 'api.php', 'https://en.wikipedia.org/w/' ),
- array( 'https://en.wikipedia.org', '/foo/page.php?name=$1', 'api.php', 'https://en.wikipedia.org/foo/page.php?name=api.php' ),
- array( 'https://en.wikipedia.org', '/w/$1', '', 'https://en.wikipedia.org/w/' ),
- array( 'https://en.wikipedia.org', '/w/$1', 'foo/bar/api.php', 'https://en.wikipedia.org/w/foo/bar/api.php' ),
- );
- }
-
- /**
- * @dataProvider fileUrlProvider
- * @covers MediaWikiSite::getFileUrl
- */
- public function testGetFileUrl( $url, $filePath, $pathArgument, $expected ) {
- $site = new MediaWikiSite();
- $site->setFilePath( $url . $filePath );
-
- $this->assertEquals( $expected, $site->getFileUrl( $pathArgument ) );
- }
-
- public static function provideGetPageUrl() {
- return array(
- // path, page, expected substring
- array( 'http://acme.test/wiki/$1', 'Berlin', '/wiki/Berlin' ),
- array( 'http://acme.test/wiki/', 'Berlin', '/wiki/' ),
- array( 'http://acme.test/w/index.php?title=$1', 'Berlin', '/w/index.php?title=Berlin' ),
- array( 'http://acme.test/wiki/$1', '', '/wiki/' ),
- array( 'http://acme.test/wiki/$1', 'Berlin/sub page', '/wiki/Berlin/sub_page' ),
- array( 'http://acme.test/wiki/$1', 'Cork (city) ', '/Cork_(city)' ),
- array( 'http://acme.test/wiki/$1', 'M&M', '/wiki/M%26M' ),
- );
- }
-
- /**
- * @dataProvider provideGetPageUrl
- * @covers MediaWikiSite::getPageUrl
- */
- public function testGetPageUrl( $path, $page, $expected ) {
- $site = new MediaWikiSite();
- $site->setLinkPath( $path );
-
- $this->assertContains( $path, $site->getPageUrl() );
- $this->assertContains( $expected, $site->getPageUrl( $page ) );
- }
-}
diff --git a/tests/phpunit/includes/site/SiteListTest.php b/tests/phpunit/includes/site/SiteListTest.php
deleted file mode 100644
index 8af2fc1b..00000000
--- a/tests/phpunit/includes/site/SiteListTest.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-
-/**
- * Tests for the SiteList class.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteListTest extends MediaWikiTestCase {
-
- /**
- * Returns instances of SiteList implementing objects.
- * @return array
- */
- public function siteListProvider() {
- $sitesArrays = $this->siteArrayProvider();
-
- $listInstances = array();
-
- foreach ( $sitesArrays as $sitesArray ) {
- $listInstances[] = new SiteList( $sitesArray[0] );
- }
-
- return $this->arrayWrap( $listInstances );
- }
-
- /**
- * Returns arrays with instances of Site implementing objects.
- * @return array
- */
- public function siteArrayProvider() {
- $sites = TestSites::getSites();
-
- $siteArrays = array();
-
- $siteArrays[] = $sites;
-
- $siteArrays[] = array( array_shift( $sites ) );
-
- $siteArrays[] = array( array_shift( $sites ), array_shift( $sites ) );
-
- return $this->arrayWrap( $siteArrays );
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::isEmpty
- */
- public function testIsEmpty( SiteList $sites ) {
- $this->assertEquals( count( $sites ) === 0, $sites->isEmpty() );
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::getSite
- */
- public function testGetSiteByGlobalId( SiteList $sites ) {
- if ( $sites->isEmpty() ) {
- $this->assertTrue( true );
- } else {
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- $this->assertEquals( $site, $sites->getSite( $site->getGlobalId() ) );
- }
- }
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::getSiteByInternalId
- */
- public function testGetSiteByInternalId( $sites ) {
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- if ( is_integer( $site->getInternalId() ) ) {
- $this->assertEquals( $site, $sites->getSiteByInternalId( $site->getInternalId() ) );
- }
- }
-
- $this->assertTrue( true );
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::hasSite
- */
- public function testHasGlobalId( $sites ) {
- $this->assertFalse( $sites->hasSite( 'non-existing-global-id' ) );
- $this->assertFalse( $sites->hasInternalId( 720101010 ) );
-
- if ( !$sites->isEmpty() ) {
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
- }
- }
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::hasInternalId
- */
- public function testHasInternallId( $sites ) {
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- if ( is_integer( $site->getInternalId() ) ) {
- $this->assertTrue( $site, $sites->hasInternalId( $site->getInternalId() ) );
- }
- }
-
- $this->assertFalse( $sites->hasInternalId( -1 ) );
- }
-
- /**
- * @dataProvider siteListProvider
- * @param SiteList $sites
- * @covers SiteList::getGlobalIdentifiers
- */
- public function testGetGlobalIdentifiers( SiteList $sites ) {
- $identifiers = $sites->getGlobalIdentifiers();
-
- $this->assertTrue( is_array( $identifiers ) );
-
- $expected = array();
-
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- $expected[] = $site->getGlobalId();
- }
-
- $this->assertArrayEquals( $expected, $identifiers );
- }
-
- /**
- * @dataProvider siteListProvider
- *
- * @since 1.21
- *
- * @param SiteList $list
- * @covers SiteList::getSerializationData
- * @covers SiteList::unserialize
- */
- public function testSerialization( SiteList $list ) {
- $serialization = serialize( $list );
- /**
- * @var SiteArray $copy
- */
- $copy = unserialize( $serialization );
-
- $this->assertArrayEquals( $list->getGlobalIdentifiers(), $copy->getGlobalIdentifiers() );
-
- /**
- * @var Site $site
- */
- foreach ( $list as $site ) {
- $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) );
- }
- }
-}
diff --git a/tests/phpunit/includes/site/SiteSQLStoreTest.php b/tests/phpunit/includes/site/SiteSQLStoreTest.php
deleted file mode 100644
index 6002c1a1..00000000
--- a/tests/phpunit/includes/site/SiteSQLStoreTest.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/**
- * Tests for the SiteSQLStore class.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- * @group Database
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteSQLStoreTest extends MediaWikiTestCase {
-
- /**
- * @covers SiteSQLStore::getSites
- */
- public function testGetSites() {
- $expectedSites = TestSites::getSites();
- TestSites::insertIntoDb();
-
- $store = SiteSQLStore::newInstance();
-
- $sites = $store->getSites();
-
- $this->assertInstanceOf( 'SiteList', $sites );
-
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- $this->assertInstanceOf( 'Site', $site );
- }
-
- foreach ( $expectedSites as $site ) {
- if ( $site->getGlobalId() !== null ) {
- $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
- }
- }
- }
-
- /**
- * @covers SiteSQLStore::saveSites
- */
- 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 );
- }
-
- /**
- * @covers SiteSQLStore::reset
- */
- public function testReset() {
- $store1 = SiteSQLStore::newInstance();
- $store2 = SiteSQLStore::newInstance();
-
- // initialize internal cache
- $this->assertGreaterThan( 0, $store1->getSites()->count() );
- $this->assertGreaterThan( 0, $store2->getSites()->count() );
-
- // Clear actual data. Will purge the external cache and reset the internal
- // cache in $store1, but not the internal cache in store2.
- $this->assertTrue( $store1->clear() );
-
- // sanity check: $store2 should have a stale cache now
- $this->assertNotNull( $store2->getSite( 'enwiki' ) );
-
- // purge cache
- $store2->reset();
-
- // ...now the internal cache of $store2 should be updated and thus empty.
- $site = $store2->getSite( 'enwiki' );
- $this->assertNull( $site );
- }
-
- /**
- * @covers SiteSQLStore::clear
- */
- public function testClear() {
- $store = SiteSQLStore::newInstance();
- $this->assertTrue( $store->clear() );
-
- $site = $store->getSite( 'enwiki' );
- $this->assertNull( $site );
-
- $sites = $store->getSites();
- $this->assertEquals( 0, $sites->count() );
- }
-}
diff --git a/tests/phpunit/includes/site/SiteTest.php b/tests/phpunit/includes/site/SiteTest.php
deleted file mode 100644
index 29c1ff33..00000000
--- a/tests/phpunit/includes/site/SiteTest.php
+++ /dev/null
@@ -1,296 +0,0 @@
-<?php
-
-/**
- * Tests for the Site class.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteTest extends MediaWikiTestCase {
-
- public function instanceProvider() {
- return $this->arrayWrap( TestSites::getSites() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getInterwikiIds
- */
- public function testGetInterwikiIds( Site $site ) {
- $this->assertInternalType( 'array', $site->getInterwikiIds() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getNavigationIds
- */
- public function testGetNavigationIds( Site $site ) {
- $this->assertInternalType( 'array', $site->getNavigationIds() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::addNavigationId
- */
- public function testAddNavigationId( Site $site ) {
- $site->addNavigationId( 'foobar' );
- $this->assertTrue( in_array( 'foobar', $site->getNavigationIds(), true ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::addInterwikiId
- */
- public function testAddInterwikiId( Site $site ) {
- $site->addInterwikiId( 'foobar' );
- $this->assertTrue( in_array( 'foobar', $site->getInterwikiIds(), true ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getLanguageCode
- */
- public function testGetLanguageCode( Site $site ) {
- $this->assertTypeOrValue( 'string', $site->getLanguageCode(), null );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::setLanguageCode
- */
- public function testSetLanguageCode( Site $site ) {
- $site->setLanguageCode( 'en' );
- $this->assertEquals( 'en', $site->getLanguageCode() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::normalizePageName
- */
- public function testNormalizePageName( Site $site ) {
- $this->assertInternalType( 'string', $site->normalizePageName( 'Foobar' ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getGlobalId
- */
- public function testGetGlobalId( Site $site ) {
- $this->assertTypeOrValue( 'string', $site->getGlobalId(), null );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::setGlobalId
- */
- public function testSetGlobalId( Site $site ) {
- $site->setGlobalId( 'foobar' );
- $this->assertEquals( 'foobar', $site->getGlobalId() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getType
- */
- public function testGetType( Site $site ) {
- $this->assertInternalType( 'string', $site->getType() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getPath
- */
- public function testGetPath( Site $site ) {
- $this->assertTypeOrValue( 'string', $site->getPath( 'page_path' ), null );
- $this->assertTypeOrValue( 'string', $site->getPath( 'file_path' ), null );
- $this->assertTypeOrValue( 'string', $site->getPath( 'foobar' ), null );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::getAllPaths
- */
- public function testGetAllPaths( Site $site ) {
- $this->assertInternalType( 'array', $site->getAllPaths() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::setPath
- * @covers Site::removePath
- */
- public function testSetAndRemovePath( Site $site ) {
- $count = count( $site->getAllPaths() );
-
- $site->setPath( 'spam', 'http://www.wikidata.org/$1' );
- $site->setPath( 'spam', 'http://www.wikidata.org/foo/$1' );
- $site->setPath( 'foobar', 'http://www.wikidata.org/bar/$1' );
-
- $this->assertEquals( $count + 2, count( $site->getAllPaths() ) );
-
- $this->assertInternalType( 'string', $site->getPath( 'foobar' ) );
- $this->assertEquals( 'http://www.wikidata.org/foo/$1', $site->getPath( 'spam' ) );
-
- $site->removePath( 'spam' );
- $site->removePath( 'foobar' );
-
- $this->assertEquals( $count, count( $site->getAllPaths() ) );
-
- $this->assertNull( $site->getPath( 'foobar' ) );
- $this->assertNull( $site->getPath( 'spam' ) );
- }
-
- /**
- * @covers Site::setLinkPath
- */
- public function testSetLinkPath() {
- $site = new Site();
- $path = "TestPath/$1";
-
- $site->setLinkPath( $path );
- $this->assertEquals( $path, $site->getLinkPath() );
- }
-
- /**
- * @covers Site::getLinkPathType
- */
- public function testGetLinkPathType() {
- $site = new Site();
-
- $path = 'TestPath/$1';
- $site->setLinkPath( $path );
- $this->assertEquals( $path, $site->getPath( $site->getLinkPathType() ) );
-
- $path = 'AnotherPath/$1';
- $site->setPath( $site->getLinkPathType(), $path );
- $this->assertEquals( $path, $site->getLinkPath() );
- }
-
- /**
- * @covers Site::setPath
- */
- public function testSetPath() {
- $site = new Site();
-
- $path = 'TestPath/$1';
- $site->setPath( 'foo', $path );
-
- $this->assertEquals( $path, $site->getPath( 'foo' ) );
- }
-
- /**
- * @covers Site::setPath
- * @covers Site::getProtocol
- */
- public function testProtocolRelativePath() {
- $site = new Site();
-
- $type = $site->getLinkPathType();
- $path = '//acme.com/'; // protocol-relative URL
- $site->setPath( $type, $path );
-
- $this->assertEquals( '', $site->getProtocol() );
- }
-
- public static function provideGetPageUrl() {
- //NOTE: the assumption that the URL is built by replacing $1
- // with the urlencoded version of $page
- // is true for Site but not guaranteed for subclasses.
- // Subclasses need to override this provider appropriately.
-
- return array(
- array( #0
- 'http://acme.test/TestPath/$1',
- 'Foo',
- '/TestPath/Foo',
- ),
- array( #1
- 'http://acme.test/TestScript?x=$1&y=bla',
- 'Foo',
- 'TestScript?x=Foo&y=bla',
- ),
- array( #2
- 'http://acme.test/TestPath/$1',
- 'foo & bar/xyzzy (quux-shmoox?)',
- '/TestPath/foo%20%26%20bar%2Fxyzzy%20%28quux-shmoox%3F%29',
- ),
- );
- }
-
- /**
- * @dataProvider provideGetPageUrl
- * @covers Site::getPageUrl
- */
- public function testGetPageUrl( $path, $page, $expected ) {
- $site = new Site();
-
- //NOTE: the assumption that getPageUrl is based on getLinkPath
- // is true for Site but not guaranteed for subclasses.
- // Subclasses need to override this test case appropriately.
- $site->setLinkPath( $path );
- $this->assertContains( $path, $site->getPageUrl() );
-
- $this->assertContains( $expected, $site->getPageUrl( $page ) );
- }
-
- protected function assertTypeOrFalse( $type, $value ) {
- if ( $value === false ) {
- $this->assertTrue( true );
- } else {
- $this->assertInternalType( $type, $value );
- }
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- * @covers Site::serialize
- * @covers Site::unserialize
- */
- public function testSerialization( Site $site ) {
- $this->assertInstanceOf( 'Serializable', $site );
-
- $serialization = serialize( $site );
- $newInstance = unserialize( $serialization );
-
- $this->assertInstanceOf( 'Site', $newInstance );
-
- $this->assertEquals( $serialization, serialize( $newInstance ) );
- }
-}
diff --git a/tests/phpunit/includes/site/TestSites.php b/tests/phpunit/includes/site/TestSites.php
deleted file mode 100644
index f224b7d7..00000000
--- a/tests/phpunit/includes/site/TestSites.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * Holds sites for testing purposes.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class TestSites {
-
- /**
- * @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;
-
- foreach ( array( 'en', 'de', 'nl', 'sv', 'sr', 'no', 'nn' ) 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;
- }
-
- /**
- * Inserts sites into the database for the unit tests that need them.
- *
- * @since 0.1
- */
- public static function insertIntoDb() {
- $sitesTable = SiteSQLStore::newInstance();
- $sitesTable->clear();
- $sitesTable->saveSites( TestSites::getSites() );
- }
-}