$t->is($f->getWidgetSchema()->getPositions(), array('first_name', 'last_name'), '->useFields() removes all fields except the ones given as an argument'); $f->setWidgetSchema(new sfWidgetFormSchema(array('first_name' => new sfWidgetFormInputText(), 'last_name' => new sfWidgetFormInputText(), 'email' => new sfWidgetFormInputText()))); $f->useFields(array('email', 'first_name')); $t->is($f->getWidgetSchema()->getPositions(), array('email', 'first_name'), '->useFields() reorders the fields'); $f->setWidgetSchema(new sfWidgetFormSchema(array('first_name' => new sfWidgetFormInputText(), 'last_name' => new sfWidgetFormInputText(), 'email' => new sfWidgetFormInputText()))); $f->useFields(array('email', 'first_name'), false); $t->is($f->getWidgetSchema()->getPositions(), array('first_name', 'email'), '->useFields() does not reorder the fields if the second argument is false'); $f->setWidgetSchema(new sfWidgetFormSchema(array('id' => new sfWidgetFormInputHidden(), 'first_name' => new sfWidgetFormInputText(), 'last_name' => new sfWidgetFormInputText(), 'email' => new sfWidgetFormInputText()))); $f->useFields(array('first_name', 'last_name')); $t->is($f->getWidgetSchema()->getPositions(), array('first_name', 'last_name', 'id'), '->useFields() does not remove hidden fields'); // ->bind() ->isValid() ->hasErrors() ->getValues() ->getValue() ->isBound() ->getErrorSchema() $t->diag('->bind() ->isValid() ->getValues() ->isBound() ->getErrorSchema()'); $f = new FormTest(); $f->setValidatorSchema(new sfValidatorSchema(array('first_name' => new sfValidatorString(array('min_length' => 2)), 'last_name' => new sfValidatorString(array('min_length' => 2))))); $t->ok(!$f->isBound(), '->isBound() returns false if the form is not bound'); $t->is($f->getValues(), array(), '->getValues() returns an empty array if the form is not bound'); $t->ok(!$f->isValid(), '->isValid() returns false if the form is not bound'); $t->ok(!$f->hasErrors(), '->hasErrors() returns false if the form is not bound'); $t->is($f->getValue('first_name'), null, '->getValue() returns null if the form is not bound'); $f->bind(array('first_name' => 'Fabien', 'last_name' => 'Potencier')); $t->ok($f->isBound(), '->isBound() returns true if the form is bound'); $t->is($f->getValues(), array('first_name' => 'Fabien', 'last_name' => 'Potencier'), '->getValues() returns an array of cleaned values if the form is bound'); $t->ok($f->isValid(), '->isValid() returns true if the form passes the validation'); $t->ok(!$f->hasErrors(), '->hasErrors() returns false if the form passes the validation'); $t->is($f->getValue('first_name'), 'Fabien', '->getValue() returns the cleaned value for a field name if the form is bound'); $t->is($f->getValue('nonsense'), null, '->getValue() returns null when non-existant param is requested'); $f->bind(array()); $t->ok(!$f->isValid(), '->isValid() returns false if the form does not pass the validation'); $t->ok($f->hasErrors(), '->isValid() returns true if the form does not pass the validation'); $t->is($f->getValues(), array(), '->getValues() returns an empty array if the form does not pass the validation'); $t->is($f->getErrorSchema()->getMessage(), 'first_name [Required.] last_name [Required.]', '->getErrorSchema() returns an error schema object with all errors');