public function clearFormElements(IntegrationTester $I)
{
$pass = new Password('passwd');
$eml = new Email('email');
$text = new Text('name');
$text->setDefault('Serghei Iakovlev');
$form = new Form();
$form->add($eml)->add($text)->add($pass);
$I->assertNull($form->get('passwd')->getValue());
$I->assertEquals('Serghei Iakovlev', $form->get('name')->getValue());
$I->assertEquals('<input type="password" id="passwd" name="passwd">', $form->render('passwd'));
$I->assertEquals('<input type="email" id="email" name="email">', $form->render('email'));
$I->assertEquals('<input type="text" id="name" name="name" value="Serghei Iakovlev">', $form->render('name'));
$_POST = ['passwd' => 'secret', 'name' => 'Andres Gutierrez'];
$I->assertEquals('secret', $form->get('passwd')->getValue());
$I->assertEquals($pass->getValue(), $form->get('passwd')->getValue());
$I->assertEquals('Andres Gutierrez', $form->get('name')->getValue());
$I->assertEquals('<input type="password" id="passwd" name="passwd" value="secret">', $form->render('passwd'));
$I->assertEquals('<input type="text" id="name" name="name" value="Andres Gutierrez">', $form->render('name'));
Tag::setDefault('email', '[email protected]');
$I->assertEquals('<input type="email" id="email" name="email" value="[email protected]">', $form->render('email'));
$I->assertEquals('[email protected]', $form->get('email')->getValue());
$pass->clear();
$I->assertEquals('<input type="password" id="passwd" name="passwd">', $form->render('passwd'));
$I->assertNull($pass->getValue());
$I->assertEquals($pass->getValue(), $form->get('passwd')->getValue());
$form->clear();
$I->assertEquals('Serghei Iakovlev', $form->get('name')->getValue());
$I->assertNull($form->get('email')->getValue());
$I->assertEquals('<input type="text" id="name" name="name" value="Serghei Iakovlev">', $form->render('name'));
$I->assertEquals('<input type="email" id="email" name="email">', $form->render('email'));
$I->assertEquals(['passwd' => 'secret', 'name' => 'Andres Gutierrez'], $_POST);
}