Merge "thumb.php: Set ENT_NOQUOTES for htmlspecialchars"
[lhc/web/wiklou.git] / tests / phpunit / includes / api / ApiModuleManagerTest.php
index 201eed1..be17bba 100644 (file)
@@ -20,30 +20,30 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
        }
 
        public function addModuleProvider() {
-               return array(
-                       'plain class' => array(
+               return [
+                       'plain class' => [
                                'login',
                                'action',
                                'ApiLogin',
                                null,
-                       ),
+                       ],
 
-                       'with factory' => array(
+                       'with factory' => [
                                'login',
                                'action',
                                'ApiLogin',
-                               array( $this, 'newApiLogin' ),
-                       ),
+                               [ $this, 'newApiLogin' ],
+                       ],
 
-                       'with closure' => array(
+                       'with closure' => [
                                'logout',
                                'action',
                                'ApiLogout',
                                function ( ApiMain $main, $action ) {
                                        return new ApiLogout( $main, $action );
                                },
-                       ),
-               );
+                       ],
+               ];
        }
 
        /**
@@ -58,36 +58,36 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
        }
 
        public function addModulesProvider() {
-               return array(
-                       'empty' => array(
-                               array(),
+               return [
+                       'empty' => [
+                               [],
                                'action',
-                       ),
+                       ],
 
-                       'simple' => array(
-                               array(
+                       'simple' => [
+                               [
                                        'login' => 'ApiLogin',
                                        'logout' => 'ApiLogout',
-                               ),
+                               ],
                                'action',
-                       ),
+                       ],
 
-                       'with factories' => array(
-                               array(
-                                       'login' => array(
+                       'with factories' => [
+                               [
+                                       'login' => [
                                                'class' => 'ApiLogin',
-                                               'factory' => array( $this, 'newApiLogin' ),
-                                       ),
-                                       'logout' => array(
+                                               'factory' => [ $this, 'newApiLogin' ],
+                                       ],
+                                       'logout' => [
                                                'class' => 'ApiLogout',
                                                'factory' => function ( ApiMain $main, $action ) {
                                                        return new ApiLogout( $main, $action );
                                                },
-                                       ),
-                               ),
+                                       ],
+                               ],
                                'action',
-                       ),
-               );
+                       ],
+               ];
        }
 
        /**
@@ -106,49 +106,50 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
        }
 
        public function getModuleProvider() {
-               $modules = array(
+               $modules = [
                        'feedrecentchanges' => 'ApiFeedRecentChanges',
-                       'feedcontributions' => array( 'class' => 'ApiFeedContributions' ),
-                       'login' => array(
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'login' => [
                                'class' => 'ApiLogin',
-                               'factory' => array( $this, 'newApiLogin' ),
-                       ),
-                       'logout' => array(
+                               'factory' => [ $this, 'newApiLogin' ],
+                       ],
+                       'logout' => [
                                'class' => 'ApiLogout',
                                'factory' => function ( ApiMain $main, $action ) {
                                        return new ApiLogout( $main, $action );
                                },
-                       ),
-               );
+                       ],
+               ];
 
-               return array(
-                       'legacy entry' => array(
+               return [
+                       'legacy entry' => [
                                $modules,
                                'feedrecentchanges',
                                'ApiFeedRecentChanges',
-                       ),
+                       ],
 
-                       'just a class' => array(
+                       'just a class' => [
                                $modules,
                                'feedcontributions',
                                'ApiFeedContributions',
-                       ),
+                       ],
 
-                       'with factory' => array(
+                       'with factory' => [
                                $modules,
                                'login',
                                'ApiLogin',
-                       ),
+                       ],
 
-                       'with closure' => array(
+                       'with closure' => [
                                $modules,
                                'logout',
                                'ApiLogout',
-                       ),
-               );
+                       ],
+               ];
        }
 
        /**
+        * @covers ApiModuleManager::getModule
         * @dataProvider getModuleProvider
         */
        public function testGetModule( $modules, $name, $expectedClass ) {
@@ -172,11 +173,14 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                $this->assertNotSame( $module1, $module4 );
        }
 
+       /**
+        * @covers ApiModuleManager::getModule
+        */
        public function testGetModule_null() {
-               $modules = array(
+               $modules = [
                        'login' => 'ApiLogin',
                        'logout' => 'ApiLogout',
-               );
+               ];
 
                $moduleManager = $this->getModuleManager();
                $moduleManager->addModules( $modules, 'test' );
@@ -185,16 +189,19 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                $this->assertNull( $moduleManager->getModule( 'login', 'bla' ), 'wrong group' );
        }
 
+       /**
+        * @covers ApiModuleManager::getNames
+        */
        public function testGetNames() {
-               $fooModules = array(
+               $fooModules = [
                        'login' => 'ApiLogin',
                        'logout' => 'ApiLogout',
-               );
+               ];
 
-               $barModules = array(
-                       'feedcontributions' => array( 'class' => 'ApiFeedContributions' ),
-                       'feedrecentchanges' => array( 'class' => 'ApiFeedRecentChanges' ),
-               );
+               $barModules = [
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'feedrecentchanges' => [ 'class' => 'ApiFeedRecentChanges' ],
+               ];
 
                $moduleManager = $this->getModuleManager();
                $moduleManager->addModules( $fooModules, 'foo' );
@@ -208,16 +215,19 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                $this->assertArrayEquals( array_keys( $allModules ), $allNames );
        }
 
+       /**
+        * @covers ApiModuleManager::getNamesWithClasses
+        */
        public function testGetNamesWithClasses() {
-               $fooModules = array(
+               $fooModules = [
                        'login' => 'ApiLogin',
                        'logout' => 'ApiLogout',
-               );
+               ];
 
-               $barModules = array(
-                       'feedcontributions' => array( 'class' => 'ApiFeedContributions' ),
-                       'feedrecentchanges' => array( 'class' => 'ApiFeedRecentChanges' ),
-               );
+               $barModules = [
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'feedrecentchanges' => [ 'class' => 'ApiFeedRecentChanges' ],
+               ];
 
                $moduleManager = $this->getModuleManager();
                $moduleManager->addModules( $fooModules, 'foo' );
@@ -227,23 +237,26 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                $this->assertArrayEquals( $fooModules, $fooNamesWithClasses );
 
                $allNamesWithClasses = $moduleManager->getNamesWithClasses();
-               $allModules = array_merge( $fooModules, array(
+               $allModules = array_merge( $fooModules, [
                        'feedcontributions' => 'ApiFeedContributions',
                        'feedrecentchanges' => 'ApiFeedRecentChanges',
-               ) );
+               ] );
                $this->assertArrayEquals( $allModules, $allNamesWithClasses );
        }
 
+       /**
+        * @covers ApiModuleManager::getModuleGroup
+        */
        public function testGetModuleGroup() {
-               $fooModules = array(
+               $fooModules = [
                        'login' => 'ApiLogin',
                        'logout' => 'ApiLogout',
-               );
+               ];
 
-               $barModules = array(
-                       'feedcontributions' => array( 'class' => 'ApiFeedContributions' ),
-                       'feedrecentchanges' => array( 'class' => 'ApiFeedRecentChanges' ),
-               );
+               $barModules = [
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'feedrecentchanges' => [ 'class' => 'ApiFeedRecentChanges' ],
+               ];
 
                $moduleManager = $this->getModuleManager();
                $moduleManager->addModules( $fooModules, 'foo' );
@@ -254,23 +267,64 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                $this->assertNull( $moduleManager->getModuleGroup( 'quux' ) );
        }
 
+       /**
+        * @covers ApiModuleManager::getGroups
+        */
        public function testGetGroups() {
-               $fooModules = array(
+               $fooModules = [
                        'login' => 'ApiLogin',
                        'logout' => 'ApiLogout',
-               );
+               ];
 
-               $barModules = array(
-                       'feedcontributions' => array( 'class' => 'ApiFeedContributions' ),
-                       'feedrecentchanges' => array( 'class' => 'ApiFeedRecentChanges' ),
-               );
+               $barModules = [
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'feedrecentchanges' => [ 'class' => 'ApiFeedRecentChanges' ],
+               ];
 
                $moduleManager = $this->getModuleManager();
                $moduleManager->addModules( $fooModules, 'foo' );
                $moduleManager->addModules( $barModules, 'bar' );
 
                $groups = $moduleManager->getGroups();
-               $this->assertArrayEquals( array( 'foo', 'bar' ), $groups );
+               $this->assertArrayEquals( [ 'foo', 'bar' ], $groups );
        }
 
+       /**
+        * @covers ApiModuleManager::getClassName
+        */
+       public function testGetClassName() {
+               $fooModules = [
+                       'login' => 'ApiLogin',
+                       'logout' => 'ApiLogout',
+               ];
+
+               $barModules = [
+                       'feedcontributions' => [ 'class' => 'ApiFeedContributions' ],
+                       'feedrecentchanges' => [ 'class' => 'ApiFeedRecentChanges' ],
+               ];
+
+               $moduleManager = $this->getModuleManager();
+               $moduleManager->addModules( $fooModules, 'foo' );
+               $moduleManager->addModules( $barModules, 'bar' );
+
+               $this->assertEquals(
+                       'ApiLogin',
+                       $moduleManager->getClassName( 'login' )
+               );
+               $this->assertEquals(
+                       'ApiLogout',
+                       $moduleManager->getClassName( 'logout' )
+               );
+               $this->assertEquals(
+                       'ApiFeedContributions',
+                       $moduleManager->getClassName( 'feedcontributions' )
+               );
+               $this->assertEquals(
+                       'ApiFeedRecentChanges',
+                       $moduleManager->getClassName( 'feedrecentchanges' )
+               );
+               $this->assertFalse(
+                       $moduleManager->getClassName( 'nonexistentmodule' )
+               );
+       }
 }