Add @covers tags to user tests
[lhc/web/wiklou.git] / tests / phpunit / includes / user / UserTest.php
index b58d71c..f004e79 100644 (file)
@@ -217,6 +217,8 @@ class UserTest extends MediaWikiTestCase {
                        [ 'Ab/cd', false, 'Contains slash' ],
                        [ 'Ab cd', true, 'Whitespace' ],
                        [ '192.168.1.1', false, 'IP' ],
+                       [ '116.17.184.5/32', false, 'IP range' ],
+                       [ '::e:f:2001/96', false, 'IPv6 range' ],
                        [ 'User:Abcd', false, 'Reserved Namespace' ],
                        [ '12abcd232', true, 'Starts with Numbers' ],
                        [ '?abcd', true, 'Start with ? mark' ],
@@ -598,7 +600,13 @@ class UserTest extends MediaWikiTestCase {
                        'wgSecretKey' => MWCryptRand::generateHex( 64, true ),
                ] );
 
+               // Unregister the hooks for proper unit testing
+               $this->mergeMwGlobalArrayValue( 'wgHooks', [
+                       'PerformRetroactiveAutoblock' => []
+               ] );
+
                // 1. Log in a test user, and block them.
+               $userBlocker = $this->getTestSysop()->getUser();
                $user1tmp = $this->getTestUser()->getUser();
                $request1 = new FauxRequest();
                $request1->getSession()->setUser( $user1tmp );
@@ -608,7 +616,9 @@ class UserTest extends MediaWikiTestCase {
                        'expiry' => wfTimestamp( TS_MW, $expiryFiveHours ),
                ] );
                $block->setTarget( $user1tmp );
-               $block->insert();
+               $block->setBlocker( $userBlocker );
+               $res = $block->insert();
+               $this->assertTrue( (bool)$res['id'], 'Failed to insert block' );
                $user1 = User::newFromSession( $request1 );
                $user1->mBlock = $block;
                $user1->load();
@@ -637,7 +647,8 @@ class UserTest extends MediaWikiTestCase {
                $this->assertTrue( $user2->isAnon() );
                $this->assertFalse( $user2->isLoggedIn() );
                $this->assertTrue( $user2->isBlocked() );
-               $this->assertEquals( true, $user2->getBlock()->isAutoblocking() ); // Non-strict type-check.
+               // Non-strict type-check.
+               $this->assertEquals( true, $user2->getBlock()->isAutoblocking(), 'Autoblock does not work' );
                // Can't directly compare the objects becuase of member type differences.
                // One day this will work: $this->assertEquals( $block, $user2->getBlock() );
                $this->assertEquals( $block->getId(), $user2->getBlock()->getId() );
@@ -670,13 +681,21 @@ class UserTest extends MediaWikiTestCase {
                        'wgSecretKey' => MWCryptRand::generateHex( 64, true ),
                ] );
 
+               // Unregister the hooks for proper unit testing
+               $this->mergeMwGlobalArrayValue( 'wgHooks', [
+                       'PerformRetroactiveAutoblock' => []
+               ] );
+
                // 1. Log in a test user, and block them.
+               $userBlocker = $this->getTestSysop()->getUser();
                $testUser = $this->getTestUser()->getUser();
                $request1 = new FauxRequest();
                $request1->getSession()->setUser( $testUser );
                $block = new Block( [ 'enableAutoblock' => true ] );
                $block->setTarget( $testUser );
-               $block->insert();
+               $block->setBlocker( $userBlocker );
+               $res = $block->insert();
+               $this->assertTrue( (bool)$res['id'], 'Failed to insert block' );
                $user = User::newFromSession( $request1 );
                $user->mBlock = $block;
                $user->load();
@@ -706,13 +725,22 @@ class UserTest extends MediaWikiTestCase {
                        'wgCookiePrefix' => 'wm_infinite_block',
                        'wgSecretKey' => MWCryptRand::generateHex( 64, true ),
                ] );
+
+               // Unregister the hooks for proper unit testing
+               $this->mergeMwGlobalArrayValue( 'wgHooks', [
+                       'PerformRetroactiveAutoblock' => []
+               ] );
+
                // 1. Log in a test user, and block them indefinitely.
+               $userBlocker = $this->getTestSysop()->getUser();
                $user1Tmp = $this->getTestUser()->getUser();
                $request1 = new FauxRequest();
                $request1->getSession()->setUser( $user1Tmp );
                $block = new Block( [ 'enableAutoblock' => true, 'expiry' => 'infinity' ] );
                $block->setTarget( $user1Tmp );
-               $block->insert();
+               $block->setBlocker( $userBlocker );
+               $res = $block->insert();
+               $this->assertTrue( (bool)$res['id'], 'Failed to insert block' );
                $user1 = User::newFromSession( $request1 );
                $user1->mBlock = $block;
                $user1->load();
@@ -793,13 +821,21 @@ class UserTest extends MediaWikiTestCase {
                        'wgSecretKey' => MWCryptRand::generateHex( 64, true ),
                ] );
 
+               // Unregister the hooks for proper unit testing
+               $this->mergeMwGlobalArrayValue( 'wgHooks', [
+                       'PerformRetroactiveAutoblock' => []
+               ] );
+
                // 1. Log in a blocked test user.
+               $userBlocker = $this->getTestSysop()->getUser();
                $user1tmp = $this->getTestUser()->getUser();
                $request1 = new FauxRequest();
                $request1->getSession()->setUser( $user1tmp );
                $block = new Block( [ 'enableAutoblock' => true ] );
                $block->setTarget( $user1tmp );
-               $block->insert();
+               $block->setBlocker( $userBlocker );
+               $res = $block->insert();
+               $this->assertTrue( (bool)$res['id'], 'Failed to insert block' );
                $user1 = User::newFromSession( $request1 );
                $user1->mBlock = $block;
                $user1->load();
@@ -830,13 +866,21 @@ class UserTest extends MediaWikiTestCase {
                        'wgSecretKey' => null,
                ] );
 
+               // Unregister the hooks for proper unit testing
+               $this->mergeMwGlobalArrayValue( 'wgHooks', [
+                       'PerformRetroactiveAutoblock' => []
+               ] );
+
                // 1. Log in a blocked test user.
+               $userBlocker = $this->getTestSysop()->getUser();
                $user1tmp = $this->getTestUser()->getUser();
                $request1 = new FauxRequest();
                $request1->getSession()->setUser( $user1tmp );
                $block = new Block( [ 'enableAutoblock' => true ] );
                $block->setTarget( $user1tmp );
-               $block->insert();
+               $block->setBlocker( $userBlocker );
+               $res = $block->insert();
+               $this->assertTrue( (bool)$res['id'], 'Failed to insert block' );
                $user1 = User::newFromSession( $request1 );
                $user1->mBlock = $block;
                $user1->load();
@@ -859,6 +903,9 @@ class UserTest extends MediaWikiTestCase {
                $block->delete();
        }
 
+       /**
+        * @covers User::isPingLimitable
+        */
        public function testIsPingLimitable() {
                $request = new FauxRequest();
                $request->setIP( '1.2.3.4' );
@@ -895,6 +942,7 @@ class UserTest extends MediaWikiTestCase {
        }
 
        /**
+        * @covers User::getExperienceLevel
         * @dataProvider provideExperienceLevel
         */
        public function testExperienceLevel( $editCount, $memberSince, $expLevel ) {
@@ -924,6 +972,9 @@ class UserTest extends MediaWikiTestCase {
                $this->assertEquals( $expLevel, $user->getExperienceLevel() );
        }
 
+       /**
+        * @covers User::getExperienceLevel
+        */
        public function testExperienceLevelAnon() {
                $user = User::newFromName( '10.11.12.13', false );