/**
	 * Test the getInput method.
	 *
	 * @return  void
	 *
	 * @since   12.1
	 */
	public function testGetInput()
	{
		$form = new JFormInspector('form1');

		$this->assertThat(
			$form->load('<form><field name="url" type="url" /></form>'),
			$this->isTrue(),
			'Line:' . __LINE__ . ' XML string should load successfully.'
		);

		$field = new JFormFieldUrl($form);

		$this->assertThat(
			$field->setup($form->getXml()->field, 'value'),
			$this->isTrue(),
			'Line:' . __LINE__ . ' The setup method should return true.'
		);

		$this->assertThat(
			strlen($field->input),
			$this->greaterThan(0),
			'Line:' . __LINE__ . ' The getInput method should return something without error.'
		);

		// TODO: Should check all the attributes have come in properly.
	}
 /**
  * Method to get certain otherwise inaccessible properties from the form field object.
  *
  * @param   string  $name  The property name for which to the the value.
  *
  * @return  mixed  The property value or null.
  *
  * @since   2.0
  */
 public function __get($name)
 {
     switch ($name) {
         case 'static':
             if (empty($this->static)) {
                 $this->static = $this->getStatic();
             }
             return $this->static;
             break;
         case 'repeatable':
             if (empty($this->repeatable)) {
                 $this->repeatable = $this->getRepeatable();
             }
             return $this->static;
             break;
         default:
             return parent::__get($name);
     }
 }
 /**
  * Test the getInput method where there is no value from the element
  * and no checked attribute.
  *
  * @param   array   $data  	   @todo
  * @param   string  $expected  @todo
  *
  * @return  void
  *
  * @since   12.2
  *
  * @dataProvider  getInputData
  */
 public function testGetInput($data, $expected)
 {
     $formField = new JFormFieldUrl();
     $xml = '<field ';
     $curvalue = null;
     foreach ($data as $attr => $value) {
         if ($attr == 'value') {
             $curvalue = $value;
         } else {
             if ($value === false) {
                 $value = 'false';
             }
             $xml .= $attr . '="' . $value . '" ';
         }
     }
     $xml .= '/>';
     $formField->setup(simplexml_load_string($xml), $curvalue);
     $replaces = array("\n", "\r", " ", "\t");
     $this->assertEquals(str_replace($replaces, '', TestReflection::invoke($formField, 'getInput')), str_replace($replaces, '', $expected), 'Line:' . __LINE__ . ' The field did not produce the right html');
 }