diff --git a/psalm-baseline.xml b/psalm-baseline.xml index a3a34b12..e3851f9e 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -36,9 +36,6 @@ - - ! is_string($name) - $this->inputs diff --git a/src/BaseInputFilter.php b/src/BaseInputFilter.php index d6364623..924f8c06 100644 --- a/src/BaseInputFilter.php +++ b/src/BaseInputFilter.php @@ -21,7 +21,6 @@ use function is_array; use function is_int; use function is_object; -use function is_string; use function sprintf; class BaseInputFilter implements diff --git a/test/ValidationGroup/InputFilterCollectionsValidationGroupTest.php b/test/ValidationGroup/InputFilterCollectionsValidationGroupTest.php index 766bfac7..181d8094 100644 --- a/test/ValidationGroup/InputFilterCollectionsValidationGroupTest.php +++ b/test/ValidationGroup/InputFilterCollectionsValidationGroupTest.php @@ -9,6 +9,8 @@ use Laminas\InputFilter\InputFilter; use PHPUnit\Framework\TestCase; +use const PHP_VERSION_ID; + final class InputFilterCollectionsValidationGroupTest extends TestCase { private InputFilter $inputFilter; @@ -127,6 +129,7 @@ public function testValidationGroupViaCollection(?int $count): void $this->setCollectionCount($count); $collection = $this->inputFilter->get('stuff'); self::assertInstanceOf(CollectionInputFilter::class, $collection); + /** @psalm-suppress InvalidArgument */ $collection->setValidationGroup([ 0 => 'first', 1 => 'second', @@ -147,7 +150,7 @@ public function testValidationGroupViaCollection(?int $count): void } /** - * This test fails because of an undefined offset - the validation group must be set for elements 0 through 3 + * This test documents existing behaviour - the validation group must be set for elements 0 through 3 * * @dataProvider collectionCountProvider */ @@ -157,6 +160,7 @@ public function testValidationGroupViaCollectionMustSpecifyAllKeys(?int $count): $collection = $this->inputFilter->get('stuff'); self::assertInstanceOf(CollectionInputFilter::class, $collection); + /** @psalm-suppress InvalidArgument */ $collection->setValidationGroup([ 0 => 'first', ]); @@ -170,13 +174,22 @@ public function testValidationGroupViaCollectionMustSpecifyAllKeys(?int $count): ], ]); - self::assertTrue($this->inputFilter->isValid()); + if (PHP_VERSION_ID >= 80000) { + $this->expectWarning(); + $this->expectWarningMessage('Undefined array key 1'); + } else { + $this->expectNotice(); + $this->expectNoticeMessage('Undefined offset: 1'); + } + + $this->inputFilter->isValid(); } /** @dataProvider collectionCountProvider */ public function testValidationGroupViaTopLevelInputFilter(?int $count): void { $this->setCollectionCount($count); + /** @psalm-suppress InvalidArgument */ $this->inputFilter->setValidationGroup([ 'stuff' => [ 0 => 'first',