Location: PHPKode > scripts > Html > html/Test/Form/Select.php
<?php
/**
 * $Id: FormSelect.class.php 562 2006-09-28 16:38:53Z matthieu $
 */
if (!class_exists('Test_Form_Select')) {
	if (!defined('__CLASS_PATH__')) {
		define('__CLASS_PATH__', realpath(dirname(__FILE__) . '/../../'));
	}
	require_once __CLASS_PATH__ . '/Autoload.php';
	/**
	 * unit test case for Form_Select class
	 * @author matthieu <hide@address.com>
	 * @package html
     * @subpackage unit_test_case
	 */
	class Test_Form_Select extends Test_Html_Template implements Test_Html_Design_Interface {
		/**
		 * the group name label
		 */
		const __GROUP_NAME__ = 'group_name';
		/**
		 * the test field name
		 */
		const __FIELDNAME__ = 'selectfield';
		/**
		 * @var mixed $option : the option object to test
		 * @access private
		 */
		private $opt = null;
		/**
		 * constructor
		 * @access public
		 * @return void
		 */
		public function __construct() {
			parent :: __construct();
			$this->fieldname = self :: __FIELDNAME__;
			$this->opt = new Form_Option('option_name', 'option_value', true);
		}
		/**
		 * reinit the FormTextarea object
		 * @access public
		 * @return void
		 */
		public function setUp() {
			$this->obj = new Form_Select($this->fieldname);
		}
		/**
		 * test the set style method
		 * @access public
		 * @return void
		 */
		public function testDefault() {
			$this->_testCode('<select name="' . $this->fieldname . '"></select>');
		}
		/**
		 * test the set style method
		 * @access public
		 * @return void
		 */
		public function testSetStyle() {
			$this->obj->setStyle(parent :: __STYLE_CONTENT__);
			$this->_testCode('<select name="' . $this->fieldname . '" style="' . parent :: __STYLE_CONTENT__ . '"></select>');
			$this->_testGetter('getStyle()', parent :: __STYLE_CONTENT__, $this->obj->getStyle());
		}
		/**
		 * test the set style class method
		 * @access public
		 * @return void
		 */
		public function testSetStyleClass() {
			$this->obj->setStyleClass(parent :: __STYLE_CLASS_NAME__);
			$this->_testCode('<select name="' . $this->fieldname . '" class="' . parent :: __STYLE_CLASS_NAME__ . '"></select>');
            $this->_testGetter('getStyleClass()', parent :: __STYLE_CLASS_NAME__, $this->obj->getStyleClass());
		}
		/**
		 * test the add option method
		 * @access public
		 * @return void
		 */
		public function testAddOption() {
			$this->obj->addOption($this->opt->getName(), $this->opt->getValue(), $this->opt->isSelected());
			$this->_testCode('<select name="' . $this->fieldname . '"><option value="' . $this->opt->getValue() . '" selected="selected">' . $this->opt->getName() . '</option></select>');
		}
		/**
		 * test the add option object method
		 * @access public
		 * @return void
		 */
		public function testAddOptionObject() {
			$this->obj->addOptionObject($this->opt);
			$this->_testCode('<select name="' . $this->fieldname . '"><option value="' . $this->opt->getValue() . '" selected="selected">' . $this->opt->getName() . '</option></select>');
		}
		/**
		 * test the add option method
		 * @access public
		 * @return void
		 */
		public function testAddOptionGroup() {
			$this->obj->addOptionGroup(self :: __GROUP_NAME__, $this->opt->getName(), $this->opt->getValue(), $this->opt->isSelected());
			$this->_testCode('<select name="' . $this->fieldname . '"><optgroup label="' . self :: __GROUP_NAME__ . '"><option value="' . $this->opt->getValue() . '" selected="selected">' . $this->opt->getName() . '</option></optgroup></select>');
		}
		/**
		 * test the add option object method
		 * @access public
		 * @return void
		 */
		public function testAddOptionGroupObject() {
			$this->obj->addOptionGroupObject(self :: __GROUP_NAME__, $this->opt);
			$this->_testCode('<select name="' . $this->fieldname . '"><optgroup label="' . self :: __GROUP_NAME__ . '"><option value="' . $this->opt->getValue() . '" selected="selected">' . $this->opt->getName() . '</option></optgroup></select>');
		}
		/**
		 * test the set multiple method
		 * @access public
		 * @return void
		 */
		public function testSetMultiple() {
			$this->obj->setMultiple(5);
			$this->_testCode('<select name="' . $this->fieldname . '" multiple="multiple"></select>');
		}
		/**
		 * test the set disabled method
		 * @access public
		 * @return void
		 */
		public function testSetDisabled() {
			try {
				$this->obj->setDisabled();
				$this->_testCode('<select name="' . $this->fieldname . '" disabled></select>');
			}
			catch (Exception $e) {
				$this->assertTrue(false, 'An unexpected exception is thrown while disabling ' . get_class($this->obj) . ' object :' . $e->getMessage());
			}
		}
		/**
		 * test the add js method
		 * @access public
		 * @return void
		 */
		public function testAddJS() {
			$js = new Html_Javascript(Html_Javascript :: __ONCHANGE__, "alert('ok')");
			$this->obj->addJs($js);
			$this->_testCode('<select name="' . $this->fieldname . '" ' . $js->__toString() . '></select>');
			unset ($js);
		}
		/**
		* test the add js method with an unexpected js event
		* @access public
		* @return void
		*/
		public function testAddJSUnexpected() {
			$this->obj->addJs(new Html_Javascript(Html_Javascript :: __ONSUBMIT__, "alert('ok')"));
			$this->_testCode('<select name="' . $this->fieldname . '"></select>');
		}
	}
}
Return current item: Html