From 867c9402bea464d00f1cb28d02b9a44f37d39657 Mon Sep 17 00:00:00 2001 From: X! Date: Sun, 2 Jan 2011 19:58:27 +0000 Subject: [PATCH] -Add &watchuser option to ApiBlock -Write tests for ApiBlock --- includes/api/ApiBlock.php | 6 ++ tests/phpunit/includes/api/ApiBlockTest.php | 67 +++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 tests/phpunit/includes/api/ApiBlockTest.php diff --git a/includes/api/ApiBlock.php b/includes/api/ApiBlock.php index 5e11a4ed98..0050d1a08b 100644 --- a/includes/api/ApiBlock.php +++ b/includes/api/ApiBlock.php @@ -90,6 +90,7 @@ class ApiBlock extends ApiBase { $form->BlockHideName = $params['hidename']; $form->BlockAllowUsertalk = $params['allowusertalk'] && $wgBlockAllowsUTEdit; $form->BlockReblock = $params['reblock']; + $form->BlockWatchUser = $params['watchuser']; $userID = $expiry = null; $retval = $form->doBlock( $userID, $expiry ); @@ -120,6 +121,9 @@ class ApiBlock extends ApiBase { if ( $params['allowusertalk'] ) { $res['allowusertalk'] = ''; } + if ( $params['watchuser'] ) { + $res['watchuser'] = ''; + } $this->getResult()->addValue( null, $this->getModuleName(), $res ); } @@ -149,6 +153,7 @@ class ApiBlock extends ApiBase { 'hidename' => false, 'allowusertalk' => false, 'reblock' => false, + 'watchuser' => false, ); } @@ -166,6 +171,7 @@ class ApiBlock extends ApiBase { 'hidename' => 'Hide the username from the block log. (Requires the "hideuser" right.)', 'allowusertalk' => 'Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit)', 'reblock' => 'If the user is already blocked, overwrite the existing block', + 'watchuser' => 'Watch the user/IP\'s user and talk pages', ); } diff --git a/tests/phpunit/includes/api/ApiBlockTest.php b/tests/phpunit/includes/api/ApiBlockTest.php new file mode 100644 index 0000000000..5c8eee3d10 --- /dev/null +++ b/tests/phpunit/includes/api/ApiBlockTest.php @@ -0,0 +1,67 @@ +doLogin(); + } + + function getTokens() { + return $this->getTokenList( $this->sysopUser ); + } + + function addDBData() { + $user = User::newFromName( 'UTBlockee' ); + + if ( $user->getId() == 0 ) { + $user->addToDatabase(); + $user->setPassword( 'UTBlockeePassword' ); + + $user->saveSettings(); + } + } + + + + function testMakeNormalBlock() { + + $data = $this->getTokens(); + + $user = User::newFromName( 'UTBlockee' ); + + if ( !$user->getId() ) { + $this->markTestIncomplete( "The user UTBlockee does not exist" ); + } + + if( !isset( $data[0]['query']['pages'] ) ) { + $this->markTestIncomplete( "No block token found" ); + } + + $keys = array_keys( $data[0]['query']['pages'] ); + $key = array_pop( $keys ); + $pageinfo = $data[0]['query']['pages'][$key]; + + $data = $this->doApiRequest( array( + 'action' => 'block', + 'user' => 'UTBlockee', + 'reason' => 'Some reason', + 'token' => $pageinfo['blocktoken'] ), $data ); + + $block = Block::newFromDB('UTBlockee'); + + $this->assertTrue( !is_null( $block ), 'Block is valid' ); + + $this->assertEquals( 'UTBlockee', $block->mAddress ); + $this->assertEquals( 'Some reason', $block->mReason ); + $this->assertEquals( 'infinity', $block->mExpiry ); + + } + +} -- 2.20.1