Page MenuHomeWickedGov Phorge

ContributionsRangeTraitTest.php
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

ContributionsRangeTraitTest.php

<?php
namespace MediaWiki\Tests\SpecialPage;
use MediaWiki\Config\HashConfig;
use MediaWiki\MainConfigNames;
use MediaWiki\SpecialPage\ContributionsRangeTrait;
use MediaWikiIntegrationTestCase;
use Wikimedia\TestingAccessWrapper;
/**
* @covers \MediaWiki\SpecialPage\ContributionsRangeTrait
*/
class ContributionsRangeTraitTest extends MediaWikiIntegrationTestCase {
private function getConfig() {
return new HashConfig( [
MainConfigNames::RangeContributionsCIDRLimit => [
'IPv4' => 16,
'IPv6' => 32,
]
] );
}
private function getWrappedTrait() {
return TestingAccessWrapper::newFromObject(
$this->getMockForTrait( ContributionsRangeTrait::class )
);
}
/**
* @dataProvider provideQueryableRanges
*/
public function testIsQueryableRange( $ipRange ) {
$this->assertTrue(
$this->getWrappedTrait()->isQueryableRange( $ipRange, $this->getConfig() ),
);
}
public static function provideQueryableRanges() {
return [
[ '116.17.184.5/32' ],
[ '0.17.184.5/16' ],
[ '2000::/32' ],
[ '2001:db8::/128' ],
];
}
/**
* @dataProvider provideUnqueryableRanges
*/
public function testUnqueryableRanges( $ipRange ) {
$this->assertFalse(
$this->getWrappedTrait()->isQueryableRange( $ipRange, $this->getConfig() ),
);
}
public static function provideUnqueryableRanges() {
return [
[ '116.17.184.5/33' ],
[ '0.17.184.5/15' ],
[ '2000::/31' ],
[ '2001:db8::/9999' ],
[ '2001:db8::' ],
[ '0.17.184.5' ],
[ 'test' ],
];
}
/**
* @dataProvider provideValidIPOrQueryableRanges
*/
public function testIsValidIPOrQueryableRange( $ip ) {
$this->assertTrue(
$this->getWrappedTrait()->isValidIPOrQueryableRange( $ip, $this->getConfig() ),
);
}
public static function provideValidIPOrQueryableRanges() {
return [
[ '0.17.184.5/16' ],
[ '0.17.184.5' ],
[ '2000::/32' ],
[ '2000::' ],
];
}
/**
* @dataProvider provideInvalidIPOrUnqueryableRanges
*/
public function testInvalidIPOrUnqueryableRanges( $ip ) {
$this->assertFalse(
$this->getWrappedTrait()->isValidIPOrQueryableRange( $ip, $this->getConfig() ),
);
}
public static function provideInvalidIPOrUnqueryableRanges() {
return [
[ '0.17.184.5/15' ],
[ '2000::/31' ],
[ 'test' ],
];
}
public function testGetQueryableRangeLimit() {
$limit = [
'IPv4' => 16,
'IPv6' => 32,
];
$config = new HashConfig( [
MainConfigNames::RangeContributionsCIDRLimit => $limit
] );
$this->assertSame( $limit, $this->getWrappedTrait()->getQueryableRangeLimit( $config ) );
}
}

File Metadata

Mime Type
text/x-php
Expires
Sat, Oct 3, 20:19 (3 d, 19 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
06/d9/4cf5744c33230d0a00692ed08803
Default Alt Text
ContributionsRangeTraitTest.php (2 KB)

Event Timeline