/** * 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; }
/** * 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); }
/** * 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.'); }