/**
  * Tests the Joomla\Form\Field::__construct method
  *
  * @covers Joomla\Form\Field::__construct
  *
  * @return void
  */
 public function testConstruct()
 {
     $form = new Form('form1');
     $this->assertThat($form->load(JFormDataHelper::$loadFieldDocument), $this->isTrue(), 'Line:' . __LINE__ . ' XML string should load successfully.');
     $field = new JFormFieldInspector($form);
     $this->assertThat($field instanceof \Joomla\Form\Field, $this->isTrue(), 'Line:' . __LINE__ . ' The JFormField constuctor should return a JFormField object.');
     $this->assertThat($field->getForm(), $this->identicalTo($form), 'Line:' . __LINE__ . ' The internal form should be identical to the variable passed in the contructor.');
     // Add custom path.
     FormHelper::addFieldPath(__DIR__ . '/_testfields');
     FormHelper::loadFieldType('foo.bar');
     $field = new \Foo\Form\Field_Bar($form);
     $this->assertEquals($field->type, 'Foo\\Field_Bar', 'Line:' . __LINE__ . ' The field type should have been guessed by the constructor.');
     FormHelper::loadFieldType('foo');
     $field = new \Joomla\Form\Field_Foo($form);
     $this->assertEquals($field->type, 'Joomla\\Field_Foo', 'Line:' . __LINE__ . ' The field type should have been guessed by the constructor.');
     FormHelper::loadFieldType('modal_foo');
     $field = new \Joomla\Form\Field_Modal_Foo($form);
     $this->assertEquals($field->type, 'Joomla\\Field_Modal_Foo', 'Line:' . __LINE__ . ' The field type should have been guessed by the constructor.');
 }
 /**
  * Method to test the username for uniqueness.
  *
  * @param   SimpleXMLElement  $element  The SimpleXMLElement object representing the <field /> tag for the form field object.
  * @param   mixed             $value    The form field value to validate.
  * @param   string            $group    The field name group control value. This acts as as an array container for the field.
  *                                      For example if the field has name="foo" and the group value is set to "bar" then the
  *                                      full field name would end up being "bar[foo]".
  * @param   JRegistry         $input    An optional JRegistry object with the entire data set to validate against the entire form.
  * @param   JForm             $form     The form object for which the field is being tested.
  *
  * @return  boolean  True if the value is valid, false otherwise.
  *
  * @since   11.1
  */
 public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, Form $form = null)
 {
     // Get the database object and a new query object.
     $db = Factory::getDBO();
     $query = $db->getQuery(true);
     // Build the query.
     $query->select('COUNT(*)');
     $query->from('#__users');
     $query->where('username = '******'id') : '';
     $query->where($db->quoteName('id') . ' <> ' . (int) $userId);
     // Set and query the database.
     $db->setQuery($query);
     $duplicate = (bool) $db->loadResult();
     if ($duplicate) {
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * Method to attach a Form object to the field.
  *
  * @param   Form  $form  The Form object to attach to the form field.
  *
  * @return  Field  The form field object so that the method can be used in a chain.
  *
  * @since   1.0
  */
 public function setForm(Form $form)
 {
     $this->form = $form;
     $this->formControl = $form->getFormControl();
     return $this;
 }
 /**
  * Test...
  *
  * @param   \SimpleXMLElement          $element  The XML element object representation of the form field.
  * @param   string                     $group    The optional dot-separated form group path on which to find the field.
  * @param   mixed                      $value    The optional value to use as the default for the field.
  * @param   \Joomla\Registry\Registry  $input    An optional Registry object with the entire data set to validate
  *                                               against the entire form.
  *
  * @return  boolean
  *
  * @since   1.0
  */
 public function validateField($element, $group = null, $value = null, $input = null)
 {
     return parent::validateField($element, $group, $value, $input);
 }
示例#5
0
 /**
  * Test the Form::getName method.
  *
  * @return void
  */
 public function testGetName()
 {
     $form = new Form('form1');
     $this->assertThat($form->getName(), $this->equalTo('form1'), 'Line:' . __LINE__ . ' The form name should agree with the argument passed in the constructor.');
 }