示例#1
0
 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;
 }
示例#2
0
 /**
  * @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;
 }
示例#3
0
 public function testValues()
 {
     $input = Builder::email();
     $input->val('invalid-email');
     $this->assertFalse($input->isValid());
     $input->val('*****@*****.**');
     $this->assertTrue($input->isValid());
     $this->assertEquals('*****@*****.**', $input->val());
 }
示例#4
0
 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());
 }