X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fuser%2FUserTest.php;h=f004e7913b96e8566a1be6afbe232a634c05c8d9;hp=52fd3208d0c7547b691752f99a207c8e799ec218;hb=ee96c8894ae8b272c41cd759423e01d16def4ae8;hpb=022dd24850dc3bdb92dc1bb534b1a649fc906fea diff --git a/tests/phpunit/includes/user/UserTest.php b/tests/phpunit/includes/user/UserTest.php index 52fd3208d0..f004e7913b 100644 --- a/tests/phpunit/includes/user/UserTest.php +++ b/tests/phpunit/includes/user/UserTest.php @@ -600,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 ); @@ -610,6 +616,7 @@ class UserTest extends MediaWikiTestCase { 'expiry' => wfTimestamp( TS_MW, $expiryFiveHours ), ] ); $block->setTarget( $user1tmp ); + $block->setBlocker( $userBlocker ); $res = $block->insert(); $this->assertTrue( (bool)$res['id'], 'Failed to insert block' ); $user1 = User::newFromSession( $request1 ); @@ -640,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() ); @@ -673,12 +681,19 @@ 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->setBlocker( $userBlocker ); $res = $block->insert(); $this->assertTrue( (bool)$res['id'], 'Failed to insert block' ); $user = User::newFromSession( $request1 ); @@ -710,12 +725,20 @@ 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->setBlocker( $userBlocker ); $res = $block->insert(); $this->assertTrue( (bool)$res['id'], 'Failed to insert block' ); $user1 = User::newFromSession( $request1 ); @@ -798,12 +821,19 @@ 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->setBlocker( $userBlocker ); $res = $block->insert(); $this->assertTrue( (bool)$res['id'], 'Failed to insert block' ); $user1 = User::newFromSession( $request1 ); @@ -836,12 +866,19 @@ 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->setBlocker( $userBlocker ); $res = $block->insert(); $this->assertTrue( (bool)$res['id'], 'Failed to insert block' ); $user1 = User::newFromSession( $request1 ); @@ -866,6 +903,9 @@ class UserTest extends MediaWikiTestCase { $block->delete(); } + /** + * @covers User::isPingLimitable + */ public function testIsPingLimitable() { $request = new FauxRequest(); $request->setIP( '1.2.3.4' ); @@ -902,6 +942,7 @@ class UserTest extends MediaWikiTestCase { } /** + * @covers User::getExperienceLevel * @dataProvider provideExperienceLevel */ public function testExperienceLevel( $editCount, $memberSince, $expLevel ) { @@ -931,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 );