<?php
+use MediaWiki\Block\DatabaseBlock;
use MediaWiki\Block\Restriction\PageRestriction;
use MediaWiki\Block\Restriction\NamespaceRestriction;
);
$this->mUser = $this->getMutableTestUser()->getUser();
+ $this->setMwGlobals( 'wgBlockCIDRLimit', [
+ 'IPv4' => 16,
+ 'IPv6' => 19,
+ ] );
}
protected function getTokens() {
$tokens = $this->getTokens();
$this->assertNotNull( $this->mUser, 'Sanity check' );
- $this->assertNotSame( 0, $this->mUser->getId(), 'Sanity check' );
$this->assertArrayHasKey( 'blocktoken', $tokens, 'Sanity check' );
$ret = $this->doApiRequest( array_merge( $params, $extraParams ), null,
false, $blocker );
- $block = Block::newFromTarget( $this->mUser->getName() );
+ $block = DatabaseBlock::newFromTarget( $this->mUser->getName() );
$this->assertTrue( !is_null( $block ), 'Block is valid' );
'You cannot block or unblock other users because you are yourself blocked.' );
$blocked = $this->getMutableTestUser( [ 'sysop' ] )->getUser();
- $block = new Block( [
+ $block = new DatabaseBlock( [
'address' => $blocked->getName(),
'by' => self::$users['sysop']->getUser()->getId(),
'reason' => 'Capriciousness',
}
public function testBlockWithEmailBlock() {
+ $this->setMwGlobals( [
+ 'wgEnableEmail' => true,
+ 'wgEnableUserEmail' => true,
+ 'wgSysopEmailBans' => true,
+ ] );
+
$res = $this->doBlock( [ 'noemail' => '' ] );
$dbw = wfGetDB( DB_MASTER );
}
public function testBlockWithProhibitedEmailBlock() {
+ $this->setMwGlobals( [
+ 'wgEnableEmail' => true,
+ 'wgEnableUserEmail' => true,
+ 'wgSysopEmailBans' => true,
+ ] );
+
$this->setExpectedException( ApiUsageException::class,
"You don't have permission to block users from sending email through the wiki." );
$this->doBlock();
- $block = Block::newFromTarget( $this->mUser->getName() );
+ $block = DatabaseBlock::newFromTarget( $this->mUser->getName() );
$this->assertTrue( $block->isSitewide() );
$this->assertCount( 0, $block->getRestrictions() );
'namespacerestrictions' => $namespace,
] );
- $block = Block::newFromTarget( $this->mUser->getName() );
+ $block = DatabaseBlock::newFromTarget( $this->mUser->getName() );
$this->assertFalse( $block->isSitewide() );
$this->assertCount( 2, $block->getRestrictions() );
* @expectedExceptionMessage Too many values supplied for parameter "pagerestrictions". The
* limit is 10.
*/
- public function testBlockingToManyPageRestrictions() {
+ public function testBlockingTooManyPageRestrictions() {
$this->setMwGlobals( [
'wgEnablePartialBlocks' => true,
] );
self::$users['sysop']->getUser()
);
}
+
+ public function testRangeBlock() {
+ $this->mUser = User::newFromName( '128.0.0.0/16', false );
+ $this->doBlock();
+ }
+
+ /**
+ * @expectedException ApiUsageException
+ * @expectedExceptionMessage Range blocks larger than /16 are not allowed.
+ */
+ public function testVeryLargeRangeBlock() {
+ $this->mUser = User::newFromName( '128.0.0.0/1', false );
+ $this->doBlock();
+ }
}