view = $this->getView(); $this->element = $this->getElement(); $this->element->setView($this->view); } /** * Tears down the fixture, for example, close a network connection. * This method is called after a test is executed. * * @return void */ public function tearDown() { } public function getView() { require_once 'Zend/View.php'; $view = new Zend_View(); $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper'); return $view; } public function getElement() { $element = new Zend_Dojo_Form_Element_SubmitButton('foo'); return $element; } public function testGetLabelReturnsNameIfNoValuePresent() { $this->assertEquals($this->element->getName(), $this->element->getLabel()); } public function testGetLabelReturnsTranslatedLabelIfTranslatorIsRegistered() { $translations = include dirname(__FILE__) . '/_files/locale/array.php'; $translate = new Zend_Translate('array', $translations, 'en'); $this->element->setTranslator($translate) ->setLabel('submit'); $test = $this->element->getLabel(); $this->assertEquals($translations['submit'], $test); } public function testTranslatedLabelIsRendered() { $this->testGetLabelReturnsTranslatedLabelIfTranslatorIsRegistered(); $this->element->setView($this->getView()); $decorator = $this->element->getDecorator('DijitElement'); $decorator->setElement($this->element); $html = $decorator->render(''); $this->assertRegexp('/<(input|button)[^>]*?(value="Submit Button")/', $html, 'Label: ' . $this->element->getLabel() . "\nHTML: " . $html); } public function testConstructorSetsLabelToNameIfNoLabelProvided() { $button = new Zend_Dojo_Form_Element_SubmitButton('foo'); $this->assertEquals('foo', $button->getName()); $this->assertEquals('foo', $button->getLabel()); } public function testCanPassLabelAsParameterToConstructor() { $button = new Zend_Dojo_Form_Element_SubmitButton('foo', 'Label'); $this->assertEquals('Label', $button->getLabel()); } public function testLabelIsTranslatedWhenTranslationAvailable() { require_once 'Zend/Translate.php'; $translations = array('Label' => 'This is the Submit Label'); $translate = new Zend_Translate('array', $translations); $button = new Zend_Dojo_Form_Element_SubmitButton('foo', 'Label'); $button->setTranslator($translate); $this->assertEquals($translations['Label'], $button->getLabel()); } public function testIsCheckedReturnsFalseWhenNoValuePresent() { $this->assertFalse($this->element->isChecked()); } public function testIsCheckedReturnsFalseWhenValuePresentButDoesNotMatchLabel() { $this->assertFalse($this->element->isChecked()); $this->element->setValue('bar'); $this->assertFalse($this->element->isChecked()); } public function testIsCheckedReturnsTrueWhenValuePresentAndMatchesLabel() { $this->testIsCheckedReturnsFalseWhenNoValuePresent(); $this->element->setValue('foo'); $this->assertTrue($this->element->isChecked()); } public function testShouldRenderButtonDijit() { $html = $this->element->render(); $this->assertContains('dojoType="dijit.form.Button"', $html); } public function testShouldRenderSubmitInput() { $html = $this->element->render(); $this->assertContains('type="submit"', $html); } /** * @group ZF-4977 */ public function testElementShouldRenderLabelAsInputValue() { $this->element->setLabel('Label!'); $html = $this->element->render(); $this->assertRegexp('/]*(value="Label!")/', $html, $html); } } // Call Zend_Dojo_Form_Element_SubmitButtonTest::main() if this source file is executed directly. if (PHPUnit_MAIN_METHOD == "Zend_Dojo_Form_Element_SubmitButtonTest::main") { Zend_Dojo_Form_Element_SubmitButtonTest::main(); }