} MyFormatter::setTranslationCallable('my__'); $t->is(MyFormatter::getTranslationCallable(), 'my__', 'get18nCallable() retrieves i18n callable correctly'); MyFormatter::setTranslationCallable(new sfCallable('my__')); $t->isa_ok(MyFormatter::getTranslationCallable(), 'sfCallable', 'get18nCallable() retrieves i18n sfCallable correctly'); try { $f->setTranslationCallable('foo'); $t->fail('setTranslationCallable() does not throw InvalidException when i18n callable is invalid'); } catch (InvalidArgumentException $e) { $t->pass('setTranslationCallable() throws InvalidException if i18n callable is not a valid callable'); } catch (Exception $e) { $t->fail('setTranslationCallable() throws unexpected exception'); } $t->diag('->translate()'); $f = new MyFormatter(new sfWidgetFormSchema()); $t->is($f->translate('label'), '[label]', 'translate() call i18n sfCallable as expected'); MyFormatter::setTranslationCallable(array('myI18n', '__')); $t->is($f->translate('label'), '[label]', 'translate() call i18n callable as expected'); $t->diag('->generateLabel() ->generateLabelName() ->setLabel() ->setLabels()'); MyFormatter::dropTranslationCallable(); $w = new sfWidgetFormSchema(array('author_id' => new sfWidgetFormInputText(), 'first_name' => new sfWidgetFormInputText(), 'last_name' => new sfWidgetFormInputText())); $f = new MyFormatter($w); $t->is($f->generateLabelName('first_name'), 'First Name', '->generateLabelName() generates a label value from a label name'); $t->is($f->generateLabelName('author_id'), 'Author', '->generateLabelName() removes _id from auto-generated labels'); $w->setLabels(array('first_name' => 'The first name')); $t->is($f->generateLabelName('first_name'), 'The first name', '->setLabels() changes all current labels'); $w->setLabel('first_name', 'A first name'); $t->is($f->generateLabelName('first_name'), 'A first name', '->setLabel() sets a label value'); $w->setLabel('first_name', false); $t->is($f->generateLabel('first_name'), '', '->generateLabel() returns an empty string if the label is false'); $w->setLabel('first_name', 'Your First Name');