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']); }