public function testFormValidationCache() { $form = new Form(); $form->setName('user_registration'); $element = (new Input())->setName('test')->setValue('first'); $checkedItemsNum = 0; $element->addValidator(new CallBackValidator(function ($value) use(&$checkedItemsNum) { $checkedItemsNum++; return !empty($value); })); $form->setElement($element); # emulate form submit $form->handle(new FormData('post', [$form->getUid() => '1', 'test' => '123'])); $this->assertTrue($form->isValid()); $this->assertEquals(1, $checkedItemsNum); $this->assertTrue($form->isValid()); $this->assertTrue($form->isValid()); $this->assertEquals(1, $checkedItemsNum); }