diff options
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/tests/unit')
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 |