示例#1
0
 public function testValidate()
 {
     $form = new Form();
     $form->addField(['name' => 'name', 'type' => 'text']);
     $form->addValidation('name', ['not_empty']);
     $request = new MockServerRequest();
     $request->post = ['name' => ''];
     $form->handleRequest($request);
     $this->assertFalse($form->isValid());
     $request->post = ['name' => 'hello world'];
     $form->handleRequest($request);
     $this->assertTrue($form->isValid());
     $form = new Form();
     $form->addField(['name' => 'name', 'type' => 'text', 'validate' => ['not_empty']])->addField(['name' => 'email', 'type' => 'email', 'validate' => ['not_empty', 'email']])->addField(['name' => 'password', 'type' => 'password', 'validate' => ['not_empty']]);
     $request->post = ['name' => '', 'email' => 'jimbobo.local', 'password' => 'eruiere'];
     $form->handleRequest($request);
     $this->assertFalse($form->isValid());
     $this->assertEquals($form->getErrors(), ['name' => ['is_empty'], 'email' => ['email_is_not_valid']]);
     $form = new Form();
     $form->addField(['name' => 'name', 'type' => 'text', 'validate' => ['not_empty']])->addField(['name' => 'email', 'type' => 'email', 'validate' => ['not_empty', 'email']])->addField(['name' => 'password', 'type' => 'password', 'validate' => ['not_empty']]);
     $request->post = ['name' => 'hi', 'email' => '*****@*****.**', 'password' => 'eruiere'];
     $form->handleRequest($request);
     $this->assertTrue($form->isValid());
     $this->assertEquals($form->getErrors(), []);
     $this->assertEquals($form->getData(), ['name' => 'hi', 'email' => '*****@*****.**', 'password' => 'eruiere']);
 }