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_ComboBox( 'foo', array( 'label' => 'ComboBox', ) ); return $element; } public function testSettingStoreIdShouldProxyToStoreDijitParam() { $this->element->setStoreId('someStore'); $this->assertTrue($this->element->hasDijitParam('store')); $store = $this->element->getDijitParam('store'); $this->assertTrue(array_key_exists('store', $store)); $this->assertEquals('someStore', $store['store']); $this->assertEquals($this->element->getStoreId(), $store['store']); } public function testSettingStoreTypeShouldProxyToStoreDijitParam() { $this->element->setStoreType('dojo.data.ItemFileReadStore'); $this->assertTrue($this->element->hasDijitParam('store')); $store = $this->element->getDijitParam('store'); $this->assertTrue(array_key_exists('type', $store)); $this->assertEquals('dojo.data.ItemFileReadStore', $store['type']); $this->assertEquals($this->element->getStoreType(), $store['type']); } public function testSettingStoreParamsShouldProxyToStoreDijitParam() { $this->element->setStoreParams(array('url' => '/js/foo.json')); $this->assertTrue($this->element->hasDijitParam('store')); $store = $this->element->getDijitParam('store'); $this->assertTrue(array_key_exists('params', $store)); $this->assertEquals(array('url' => '/js/foo.json'), $store['params']); $this->assertEquals($this->element->getStoreParams(), $store['params']); } public function testAutocompleteAccessorsShouldProxyToDijitParams() { $this->assertFalse($this->element->getAutocomplete()); $this->assertFalse(array_key_exists('autocomplete', $this->element->dijitParams)); $this->element->setAutocomplete(true); $this->assertTrue($this->element->getAutocomplete()); $this->assertTrue(array_key_exists('autocomplete', $this->element->dijitParams)); } /**#@+ * @group ZF-3286 */ public function testShouldNeverRegisterInArrayValidatorAutomatically() { $options = array( 'foo' => 'Foo Value', 'bar' => 'Bar Value', 'baz' => 'Baz Value', ); $this->element->setMultiOptions($options); $this->assertFalse($this->element->getValidator('InArray')); $this->element->isValid('test'); $this->assertFalse($this->element->getValidator('InArray')); } /**#@-*/ public function testShouldRenderComboBoxDijit() { $html = $this->element->render(); $this->assertContains('dojoType="dijit.form.ComboBox"', $html); } /** * @group ZF-7134 * @group ZF-7266 */ public function testComboBoxInSubFormShouldCreateJsonStoreBasedOnQualifiedId() { Zend_Dojo_View_Helper_Dojo::setUseProgrammatic(); $this->element->setStoreId('foo') ->setStoreType('dojo.data.ItemFileReadStore') ->setStoreParams(array( 'url' => '/foo', )); include_once 'Zend/Form/SubForm.php'; $subform = new Zend_Form_SubForm(array('name' => 'bar')); $subform->addElement($this->element); $html = $this->element->render(); $dojo = $this->view->dojo()->__toString(); $this->assertContains('"store":"foo"', $dojo, $dojo); } } // Call Zend_Dojo_Form_Element_ComboBoxTest::main() if this source file is executed directly. if (PHPUnit_MAIN_METHOD == "Zend_Dojo_Form_Element_ComboBoxTest::main") { Zend_Dojo_Form_Element_ComboBoxTest::main(); }