When 'exists' was false (the default), other validation was skipped. Change the default 'iprangelimits' to allow any range, to avoid issues with code that relied on the previous broken behavior. Bug: T177329 Bug: T311948 Change-Id: I55cad7a5395da70105e20ce33e3a8e3834a4f4ad
82 lines
1.6 KiB
PHP
82 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @covers HTMLUserTextFieldTest
|
|
*/
|
|
class HTMLUserTextFieldTest extends MediaWikiIntegrationTestCase {
|
|
|
|
/**
|
|
* @dataProvider provideInputs
|
|
*/
|
|
public function testInputs( array $config, string $value, $expected ) {
|
|
$field = new HTMLUserTextField( $config + [ 'fieldname' => 'foo' ] );
|
|
$result = $field->validate( $value, [ 'foo' => $value ] );
|
|
if ( $result instanceof Message ) {
|
|
$this->assertSame( $expected, $result->getKey() );
|
|
} else {
|
|
$this->assertSame( $expected, $result );
|
|
}
|
|
}
|
|
|
|
public function provideInputs() {
|
|
return [
|
|
'valid username' => [
|
|
[],
|
|
'SomeUser',
|
|
true
|
|
],
|
|
'invalid username' => [
|
|
[],
|
|
'<SomeUser>',
|
|
'htmlform-user-not-valid'
|
|
],
|
|
'valid IP' => [
|
|
[ 'ipallowed' => true ],
|
|
'1.2.3.4',
|
|
true
|
|
],
|
|
'valid IP, but not allowed' => [
|
|
[ 'ipallowed' => false ],
|
|
'1.2.3.4',
|
|
'htmlform-user-not-valid'
|
|
],
|
|
'invalid IP' => [
|
|
[ 'ipallowed' => true ],
|
|
'1.2.3.456',
|
|
'htmlform-user-not-valid'
|
|
],
|
|
'valid IP range' => [
|
|
[ 'iprange' => true ],
|
|
'1.2.3.4/30',
|
|
true
|
|
],
|
|
'valid IP range, but not allowed' => [
|
|
[ 'iprange' => false ],
|
|
'1.2.3.4/30',
|
|
'htmlform-user-not-valid'
|
|
],
|
|
'invalid IP range (bad syntax)' => [
|
|
[ 'iprange' => true ],
|
|
'1.2.3.4/x',
|
|
'htmlform-user-not-valid'
|
|
],
|
|
'invalid IP range (exceeds limits)' => [
|
|
[
|
|
'iprange' => true,
|
|
'iprangelimits' => [
|
|
'IPv4' => 11,
|
|
'IPv6' => 11,
|
|
],
|
|
],
|
|
'1.2.3.4/10',
|
|
'ip_range_exceeded'
|
|
],
|
|
'valid username, but does not exist' => [
|
|
[ 'exists' => true ],
|
|
'SomeUser',
|
|
'htmlform-user-not-exists'
|
|
],
|
|
];
|
|
}
|
|
|
|
}
|