summaryrefslogtreecommitdiff
path: root/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit')
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/AnonymousGeneratorTest.php26
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/FluentGeneratorTest.php55
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/MediawikiFactoryTest.php54
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Service/PagePurgerTest.php187
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/phpunit.xml.dist13
5 files changed, 335 insertions, 0 deletions
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/AnonymousGeneratorTest.php b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/AnonymousGeneratorTest.php
new file mode 100644
index 00000000..67d6e450
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/AnonymousGeneratorTest.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Mediawiki\Api\Test\Generator;
+
+use Mediawiki\Api\Generator\AnonymousGenerator;
+
+/**
+ * @author Addshore
+ *
+ * @covers \Mediawiki\Api\Generator\AnonymousGenerator
+ */
+class AnonymousGeneratorTest extends \PHPUnit_Framework_TestCase {
+
+ public function testConstruction() {
+ $generator = new AnonymousGenerator( 'name', [ 'gfoo' => 'bar' ] );
+
+ $this->assertEquals(
+ [
+ 'generator' => 'name',
+ 'gfoo' => 'bar',
+ ],
+ $generator->getParams()
+ );
+ }
+
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/FluentGeneratorTest.php b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/FluentGeneratorTest.php
new file mode 100644
index 00000000..bd7cb0bf
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Generator/FluentGeneratorTest.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Mediawiki\Api\Test\Generator;
+
+use Mediawiki\Api\Generator\FluentGenerator;
+
+/**
+ * @author Addshore
+ *
+ * @covers \Mediawiki\Api\Generator\FluentGenerator
+ */
+class FluentGeneratorTest extends \PHPUnit_Framework_TestCase {
+
+ public function testConstructionWithNoGPrefix() {
+ $generator = new FluentGenerator( 'name' );
+ $generator->set( 'foo', 'bar' );
+
+ $this->assertEquals(
+ [
+ 'generator' => 'name',
+ 'gfoo' => 'bar',
+ ],
+ $generator->getParams()
+ );
+ }
+
+ public function testConstructionWithGPrefix() {
+ $generator = new FluentGenerator( 'name' );
+ $generator->set( 'gfoo', 'bar' );
+
+ $this->assertEquals(
+ [
+ 'generator' => 'name',
+ 'gfoo' => 'bar',
+ ],
+ $generator->getParams()
+ );
+ }
+
+ public function testFluidity() {
+ $generator = FluentGenerator::factory( 'name' )
+ ->set( 'foo', 'bar' )
+ ->set( 'gcat', 'meow' );
+
+ $this->assertEquals(
+ [
+ 'generator' => 'name',
+ 'gfoo' => 'bar',
+ 'gcat' => 'meow',
+ ],
+ $generator->getParams()
+ );
+ }
+
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/MediawikiFactoryTest.php b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/MediawikiFactoryTest.php
new file mode 100644
index 00000000..c4ce958f
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/MediawikiFactoryTest.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Mediawiki\Api\Test;
+
+use Mediawiki\Api\MediawikiFactory;
+
+/**
+ * @covers Mediawiki\Api\MediawikiFactory
+ *
+ * @author Addshore
+ */
+class MediawikiFactoryTest extends \PHPUnit_Framework_TestCase {
+
+ public function getMockMediawikiApi() {
+ return $this->getMockBuilder( 'Mediawiki\Api\MediawikiApi' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ public function provideFactoryMethodsTest() {
+ return [
+ [ 'Mediawiki\Api\Service\RevisionSaver', 'newRevisionSaver' ],
+ [ 'Mediawiki\Api\Service\RevisionUndoer', 'newRevisionUndoer' ],
+ [ 'Mediawiki\Api\Service\PageGetter', 'newPageGetter' ],
+ [ 'Mediawiki\Api\Service\UserGetter', 'newUserGetter' ],
+ [ 'Mediawiki\Api\Service\PageDeleter', 'newPageDeleter' ],
+ [ 'Mediawiki\Api\Service\PageMover', 'newPageMover' ],
+ [ 'Mediawiki\Api\Service\PageListGetter', 'newPageListGetter' ],
+ [ 'Mediawiki\Api\Service\PageRestorer', 'newPageRestorer' ],
+ [ 'Mediawiki\Api\Service\PagePurger', 'newPagePurger' ],
+ [ 'Mediawiki\Api\Service\RevisionRollbacker', 'newRevisionRollbacker' ],
+ [ 'Mediawiki\Api\Service\RevisionPatroller', 'newRevisionPatroller' ],
+ [ 'Mediawiki\Api\Service\PageProtector', 'newPageProtector' ],
+ [ 'Mediawiki\Api\Service\PageWatcher', 'newPageWatcher' ],
+ [ 'Mediawiki\Api\Service\RevisionDeleter', 'newRevisionDeleter' ],
+ [ 'Mediawiki\Api\Service\RevisionRestorer', 'newRevisionRestorer' ],
+ [ 'Mediawiki\Api\Service\UserBlocker', 'newUserBlocker' ],
+ [ 'Mediawiki\Api\Service\UserRightsChanger', 'newUserRightsChanger' ],
+ [ 'Mediawiki\Api\Service\UserCreator', 'newUserCreator' ],
+ [ 'Mediawiki\Api\Service\LogListGetter', 'newLogListGetter' ],
+ [ 'Mediawiki\Api\Service\FileUploader', 'newFileUploader' ],
+ [ 'Mediawiki\Api\Service\ImageRotator', 'newImageRotator' ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideFactoryMethodsTest
+ */
+ public function testFactoryMethod( $class, $method ) {
+ $factory = new MediawikiFactory( $this->getMockMediawikiApi() );
+ $this->assertInstanceOf( $class, $factory->$method() );
+ }
+
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Service/PagePurgerTest.php b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Service/PagePurgerTest.php
new file mode 100644
index 00000000..38199c26
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/Service/PagePurgerTest.php
@@ -0,0 +1,187 @@
+<?php
+
+namespace Mediawiki\Api\Test\Service;
+
+use Mediawiki\Api\MediawikiApi;
+use Mediawiki\Api\Service\PagePurger;
+use Mediawiki\DataModel\Page;
+use Mediawiki\DataModel\Pages;
+use Mediawiki\DataModel\PageIdentifier;
+use Mediawiki\DataModel\Title;
+use PHPUnit_Framework_MockObject_MockObject;
+
+/**
+ * @author Addshore
+ * @covers Mediawiki\Api\Service\PagePurger
+ */
+class PagePurgerTest extends \PHPUnit_Framework_TestCase {
+
+ private function getMockApi() {
+ /** @var MediawikiApi|PHPUnit_Framework_MockObject_MockObject $mock */
+ $mock = $this->getMockBuilder( '\Mediawiki\Api\MediawikiApi' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ return $mock;
+ }
+
+ public function testValidConstruction() {
+ new PagePurger( $this->getMockApi() );
+ $this->assertTrue( true );
+ }
+
+ public function testPurgePage() {
+ $api = $this->getMockApi();
+ $api->expects( $this->once() )
+ ->method( 'postRequest' )
+ ->with(
+ $this->isInstanceOf( '\Mediawiki\Api\SimpleRequest' )
+ )
+ ->will( $this->returnValue(
+ [
+ "batchcomplete" => "",
+ "purge" => [ [ "ns" => 0, "title" => "Foo", "purged" => "" ] ]
+ ] ) );
+
+ $service = new PagePurger( $api );
+
+ $page = new Page(
+ new PageIdentifier(
+ new Title( 'Foo', 0 ),
+ 123
+ )
+ );
+
+ $this->assertTrue( $service->purge( $page ) );
+ }
+
+ function testIncorrectPurgePage() {
+ $api = $this->getMockApi();
+ $api->expects( $this->once() )
+ ->method( 'postRequest' )
+ ->with(
+ $this->isInstanceOf( '\Mediawiki\Api\SimpleRequest' )
+ )
+ ->will( $this->returnValue( [
+ "batchcomplete" => "",
+ "purge" =>
+ [ [
+ "ns" => 0,
+ "title" => "This page really does not exist",
+ "missing" => ""
+ ] ]
+ ] ) );
+
+ $service = new PagePurger( $api );
+
+ $page = new Page(
+ new PageIdentifier(
+ new Title( 'Foo', 0 ),
+ 123
+ )
+ );
+
+ $this->assertFalse( $service->purge( $page ) );
+ }
+
+ public function testPurgePages() {
+ $api = $this->getMockApi();
+ $api->expects( $this->once() )
+ ->method( 'postRequest' )
+ ->with(
+ $this->isInstanceOf( '\Mediawiki\Api\SimpleRequest' )
+ )
+ ->will( $this->returnValue(
+ [
+ "batchcomplete" => "",
+ "purge" => [
+ [
+ "ns" => 0,
+ "title" => "Foo",
+ "purged" => ""
+ ],
+ [
+ "ns" => 0,
+ "title" => "Bar",
+ "purged" => ""
+ ],
+ ]
+ ]
+ ) );
+
+ $service = new PagePurger( $api );
+
+ $pages = new Pages( [
+ new Page(
+ new PageIdentifier(
+ new Title( 'Foo', 0 ),
+ 100
+ )
+ ), new Page(
+ new PageIdentifier(
+ new Title( 'Bar', 1 ),
+ 101
+ )
+ ) ] );
+
+ $this->assertEquals( $service->purgePages( $pages ), $pages );
+ }
+
+ function testIncorrectPurgePages() {
+ $api = $this->getMockApi();
+ $api->expects( $this->once() )
+ ->method( 'postRequest' )
+ ->with(
+ $this->isInstanceOf( '\Mediawiki\Api\SimpleRequest' )
+ )
+ ->will( $this->returnValue(
+ [
+ "batchcomplete" => "",
+ "purge" => [
+ [
+ "ns" => 0,
+ "title" => "Foo",
+ "purged" => ""
+ ],
+ [
+ "ns" => 0,
+ "title" => "Bar",
+ "purged" => ""
+ ],
+ [
+ "ns" => 0,
+ "title" => "This page really does not exist",
+ "missing" => ""
+ ],
+ ]
+ ]
+ ) );
+
+ $service = new PagePurger( $api );
+
+ $pages = new Pages( [
+ new Page(
+ new PageIdentifier(
+ new Title( 'Foo', 0 ),
+ 100
+ )
+ ), new Page(
+ new PageIdentifier(
+ new Title( 'Bar', 1 ),
+ 101
+ )
+ ), new Page(
+ new PageIdentifier(
+ new Title( 'MissingPage', 1 ),
+ 103
+ )
+ ) ] );
+
+ // MissingPage is not in the pages that are returned by purgePages
+ $pagesArray = $pages->toArray();
+ array_pop( $pagesArray );
+ $result = new Pages( $pagesArray );
+
+ $this->assertEquals( $service->purgePages( $pages ), $result );
+ }
+
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/phpunit.xml.dist b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/phpunit.xml.dist
new file mode 100644
index 00000000..8f4cecef
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit/phpunit.xml.dist
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="../../vendor/autoload.php" colors="true">
+ <testsuites>
+ <testsuite name="addwiki/mediawiki-api/unit">
+ <directory suffix="Test.php">.</directory>
+ </testsuite>
+ </testsuites>
+ <filter>
+ <whitelist addUncoveredFilesFromWhitelist="true">
+ <directory suffix=".php">./../../src</directory>
+ </whitelist>
+ </filter>
+</phpunit> \ No newline at end of file