Example #1
0
 public function testFilterWithForm()
 {
     $form = new Form();
     $form->setName('test_form');
     $form->input('text')->addFilter(new RegexReplace('!\\s{2,}!', ' '))->addFilter(new CallbackFilter('trim'));
     $form->handle(new FormData('post', ['test_form' => 1, 'text' => 'hello    world         ']));
     $this->assertTrue($form->isValid());
     $this->assertEquals('hello world', $form->getElements()['text']->getValue());
 }
Example #2
0
 public function testHandleStringData()
 {
     $form = new Form();
     $form->setName('test_form');
     $checkbox = $form->checkbox('send_emails');
     $this->assertEquals(0, $checkbox->getValue());
     $this->assertFalse($checkbox->isChecked());
     // submit checked value
     $form->handle(new FormData('post', ['test_form' => '1', 'send_emails' => '1']));
     $this->assertEquals(1, $checkbox->getValue());
     $this->assertTrue($checkbox->isChecked());
     // submit unchecked value
     $form->handle(new FormData('post', ['test_form' => 1, 'send_emails' => 0]));
     $this->assertEquals(0, $checkbox->getValue());
     $this->assertFalse($checkbox->isChecked());
 }
Example #3
0
 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);
 }