public function testClearingAttachedItemsShouldNotCauseIterationToRaiseExceptions() { $form = new Form(); $form->addElements(array('username' => 'text', 'password' => 'text')); $form->clearElements(); try { foreach ($form as $item) { } } catch (\Zend\Form\Exception\UnexpectedValueException $e) { $message = "Clearing elements prior to iteration should not cause iteration to fail;\n" . $e->getMessage(); $this->fail($message); } $form->addElements(array('username' => 'text', 'password' => 'text'))->addDisplayGroup(array('username', 'password'), 'login'); $form->clearDisplayGroups(); try { foreach ($form as $item) { } } catch (\Zend\Form\Exception\UnexpectedValueException $e) { $message = "Clearing display groups prior to iteration should not cause iteration to fail;\n" . $e->getMessage(); $this->fail($message); } $subForm = new \Zend\Form\SubForm(); $form->addSubForm($subForm, 'foo'); $form->clearSubForms(); try { foreach ($form as $item) { } } catch (\Zend\Form\Exception\UnexpectedValueException $e) { $message = "Clearing sub forms prior to iteration should not cause iteration to fail;\n" . $e->getMessage(); $this->fail($message); } }
/** * @group ZF-11831 */ public function testElementsOfSubFormReceiveCorrectDefaultTranslator() { $isEmptyKey = \Zend\Validator\NotEmpty::IS_EMPTY; // Global default translator $trDefault = new Translator(array('adapter' => 'arrayAdapter', 'content' => array($isEmptyKey => 'Default'), 'locale' => 'en')); Registry::set('Zend_Translate', $trDefault); // Translator to use for elements $trElement = new Translator(array('adapter' => 'arrayAdapter', 'content' => array($isEmptyKey => 'Element'), 'locale' => 'en')); \Zend\Validator\AbstractValidator::setDefaultTranslator($trElement); // Change the form's translator $form = new Form(); $form->addElement(new \Zend\Form\Element\Text('foo', array('required' => true, 'validators' => array('NotEmpty')))); // Create a subform with it's own validator $sf1 = new SubForm(); $sf1->addElement(new \Zend\Form\Element\Text('foosub', array('required' => true, 'validators' => array('NotEmpty')))); $form->addSubForm($sf1, 'Test1'); $form->isValid(array()); $messages = $form->getMessages(); $this->assertEquals('Element', @$messages['foo'][$isEmptyKey], 'Form element received wrong validator'); $this->assertEquals('Element', @$messages['Test1']['foosub'][$isEmptyKey], 'SubForm element received wrong validator'); }
/** * @group ZF-3272 */ public function testRenderedSubFormDtShouldContainNoBreakSpace() { $subForm = new SubForm(array('elements' => array('foo' => 'text', 'bar' => 'text'))); $form = new Form(); $form->addSubForm($subForm, 'foobar')->setView(new View()); $html = $form->render(); $this->assertContains('> </dt>', $html); }