true ];
$max = [ LimitDef::PARAM_MAX => 2 ];
$max2 = [ LimitDef::PARAM_MAX => 2, LimitDef::PARAM_MAX2 => 4 ];
yield 'Max' => [ 'max', 2, $max ];
yield 'Max, use high' => [ 'max', 2, $max, $useHigh ];
yield 'Max2' => [ 'max', 2, $max2 ];
yield 'Max2, use high' => [ 'max', 4, $max2, $useHigh ];
// Test an arbitrary number for coverage. Actual number handling is tested via
// the base class IntegerDef's tests.
yield 'A number' => [ '123', 123 ];
}
public function provideNormalizeSettings() {
$def = [ LimitDef::PARAM_MIN => 0, ParamValidator::PARAM_ISMULTI => false ];
return [
[
[],
$def,
],
[
[ ParamValidator::PARAM_ISMULTI => true ],
[ ParamValidator::PARAM_ISMULTI => false ] + $def,
],
[
[ LimitDef::PARAM_MAX => 2 ],
[ LimitDef::PARAM_MAX => 2 ] + $def,
],
[
[ LimitDef::PARAM_MIN => 1, LimitDef::PARAM_MAX => 2, LimitDef::PARAM_MAX2 => 4 ],
[ LimitDef::PARAM_MIN => 1, LimitDef::PARAM_MAX => 2, LimitDef::PARAM_MAX2 => 4 ] + $def,
],
[
[ LimitDef::PARAM_MIN => 1, LimitDef::PARAM_MAX => 4, LimitDef::PARAM_MAX2 => 2 ],
[ LimitDef::PARAM_MIN => 1, LimitDef::PARAM_MAX => 4, LimitDef::PARAM_MAX2 => 4 ] + $def,
],
[
[ LimitDef::PARAM_MAX2 => 2 ],
$def,
],
];
}
public function provideCheckSettings() {
$keys = [
'Y', IntegerDef::PARAM_IGNORE_RANGE,
IntegerDef::PARAM_MIN, IntegerDef::PARAM_MAX, IntegerDef::PARAM_MAX2
];
return [
'Basic test' => [
[
LimitDef::PARAM_MAX => 10,
],
self::STDRET,
[
'issues' => [ 'X' ],
'allowedKeys' => $keys,
'messages' => [],
],
],
'Test with everything' => [
[
LimitDef::PARAM_IGNORE_RANGE => true,
LimitDef::PARAM_MIN => 0,
LimitDef::PARAM_MAX => 10,
LimitDef::PARAM_MAX2 => 100,
],
self::STDRET,
[
'issues' => [ 'X' ],
'allowedKeys' => $keys,
'messages' => [],
],
],
'PARAM_ISMULTI not allowed' => [
[
ParamValidator::PARAM_ISMULTI => true,
LimitDef::PARAM_MAX => 10,
],
self::STDRET,
[
'issues' => [
'X',
ParamValidator::PARAM_ISMULTI => 'PARAM_ISMULTI cannot be used for limit-type parameters',
],
'allowedKeys' => $keys,
'messages' => [],
],
],
'PARAM_ISMULTI not allowed, but another ISMULTI issue was already logged' => [
[
ParamValidator::PARAM_ISMULTI => true,
LimitDef::PARAM_MAX => 10,
],
[
'issues' => [
ParamValidator::PARAM_ISMULTI => 'XXX',
],
'allowedKeys' => [ 'Y' ],
'messages' => [],
],
[
'issues' => [
ParamValidator::PARAM_ISMULTI => 'XXX',
],
'allowedKeys' => $keys,
'messages' => [],
],
],
'PARAM_MIN == 0' => [
[
LimitDef::PARAM_MIN => 0,
LimitDef::PARAM_MAX => 2,
],
self::STDRET,
[
'issues' => [ 'X' ],
'allowedKeys' => $keys,
'messages' => [],
],
],
'PARAM_MIN < 0' => [
[
LimitDef::PARAM_MIN => -1,
LimitDef::PARAM_MAX => 2,
],
self::STDRET,
[
'issues' => [
'X',
'PARAM_MIN must be greater than or equal to 0',
],
'allowedKeys' => $keys,
'messages' => [],
],
],
'PARAM_MAX is required' => [
[],
self::STDRET,
[
'issues' => [
'X',
'PARAM_MAX must be set',
],
'allowedKeys' => $keys,
'messages' => [],
],
],
];
}
public function provideGetInfo() {
return [
'Basic' => [
[],
[ 'min' => 0, 'max' => null ],
[
// phpcs:ignore Generic.Files.LineLength.TooLong
LimitDef::PARAM_MIN => '10∞',
// phpcs:ignore Generic.Files.LineLength.TooLong
ParamValidator::PARAM_TYPE => '1',
],
],
];
}
}