public function testBase() { $field = Builder::group(['name' => Builder::text()->label('Name'), 'email' => Builder::email()->label('email'), 'age' => Builder::number()->label('Age'), 'image' => Builder::file()->label('Image')]); $this->assertInstanceOf('FormManager\\Containers\\Group', $field); $this->assertInstanceOf('FormManager\\Fields\\Text', $field['name']); return $field; }
/** * @depends testBase */ public function testFields(Form $form) { $form->add(['name' => Builder::text()->maxlength(50)->required()->label('Your name'), 'email' => Builder::email()->required()->label('Your email'), 'telephone' => Builder::tel()->required()->label('Telephone number'), 'avatar' => Builder::file()->required()->label('Avatar'), 'gender' => Builder::choose(['m' => Builder::radio()->label('Male'), 'f' => Builder::radio()->required()->label('Female')]), 'born' => Builder::group(['day' => Builder::number()->required()->min(1)->max(31)->label('Day'), 'month' => Builder::number()->required()->min(1)->max(12)->label('Month'), 'year' => Builder::number()->required()->min(1900)->max(2013)->label('Year')]), 'language' => Builder::select()->required()->options(array('gl' => 'Galician', 'es' => 'Spanish', 'en' => 'English'))->label('Language'), 'friends' => Builder::collection(['name' => Builder::text()->required()->label('Name'), 'email' => Builder::email()->required()->label('email'), 'age' => Builder::number()->required()->label('Age')]), 'action' => Builder::choose(['save' => Builder::submit()->html('Save changes'), 'duplicate' => Builder::submit()->html('Save as new value')])]); $this->assertCount(9, $form); $this->assertInstanceOf('FormManager\\Fields\\Text', $form['name']); $this->assertInstanceOf('FormManager\\Fields\\Submit', $form['action']['save']); $this->assertSame($form, $form['action']['save']->getForm()); return $form; }
public function testValues() { $input = Builder::email(); $input->val('invalid-email'); $this->assertFalse($input->isValid()); $input->val('*****@*****.**'); $this->assertTrue($input->isValid()); $this->assertEquals('*****@*****.**', $input->val()); }
public function testValidation() { $form = Builder::form(['name' => Builder::text()->maxlength(200)->label('Name'), 'email' => Builder::email()->label('Email'), 'password' => Builder::password()->label('Password'), 'repeat_password' => Builder::password()->label('Repeat password')])->addValidator(function ($form) { $password1 = $form['password']->val(); $password2 = $form['repeat_password']->val(); if ($password1 != $password2) { throw new InvalidValueException('The passwords does not match'); } }); $form->val(['name' => 'Oscar', 'email' => '*****@*****.**', 'password' => '1234', 'repeat_password' => '12345']); $this->assertFalse($form->isValid()); $this->assertEquals('The passwords does not match', $form->error()); $this->assertCount(1, $form->getElementsWithErrors()); $form['repeat_password']->val('1234'); $this->assertTrue($form->isValid()); $this->assertNull($form->error()); $this->assertCount(0, $form->getElementsWithErrors()); }