mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00
MDL-50484 lib_formslib: Persistant input should have different id
Persistant input is appended for frozen elements and should have different id then the actual element
This commit is contained in:
parent
2aacd415e1
commit
1ebda3eb8c
7 changed files with 83 additions and 5 deletions
|
@ -577,6 +577,35 @@ class core_formslib_testcase extends advanced_testcase {
|
|||
$this->assertTag(array('id' => 'id_grade_3_modgrade_point'), $html);
|
||||
$this->assertTag(array('id' => 'id_grade_3_modgrade_scale'), $html);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test persistant freeze elements have different id's.
|
||||
*/
|
||||
public function test_persistantrreeze_element() {
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$form = new formslib_persistantrreeze_element();
|
||||
ob_start();
|
||||
$form->display();
|
||||
$html = ob_get_clean();
|
||||
|
||||
// Test advcheckbox id's.
|
||||
$this->assertTag(array('id' => 'id_advcheckboxpersistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_advcheckboxpersistant_persistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_advcheckboxnotpersistant'), $html);
|
||||
$this->assertNotTag(array('id' => 'id_advcheckboxnotpersistant_persistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_advcheckboxfrozen'), $html);
|
||||
$this->assertTag(array('id' => 'id_advcheckboxfrozen_persistant'), $html);
|
||||
|
||||
// Check text element id's.
|
||||
$this->assertTag(array('id' => 'id_textpersistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_textpersistant_persistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_textnotpersistant'), $html);
|
||||
$this->assertNotTag(array('id' => 'id_textnotpersistant_persistant'), $html);
|
||||
$this->assertTag(array('id' => 'id_textfrozen'), $html);
|
||||
$this->assertNotTag(array('id' => 'id_textfrozen_persistant'), $html);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -861,3 +890,42 @@ class formslib_multiple_modgrade_form extends moodleform {
|
|||
$mform->addElement('modgrade', 'grade[3]', 'Grade 3');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to test frozen elements get unique id attributes.
|
||||
*/
|
||||
class formslib_persistantrreeze_element extends moodleform {
|
||||
public function definition() {
|
||||
$mform = $this->_form;
|
||||
|
||||
// Create advanced checkbox.
|
||||
// Persistant.
|
||||
$advcheckboxpersistant = $mform->addElement('advcheckbox', 'advcheckboxpersistant', 'advcheckbox');
|
||||
$mform->setType('advcheckboxpersistant', PARAM_BOOL);
|
||||
$advcheckboxpersistant->setChecked(true);
|
||||
$advcheckboxpersistant->freeze();
|
||||
$advcheckboxpersistant->setPersistantFreeze(true);
|
||||
// Frozen.
|
||||
$advcheckboxfrozen = $mform->addElement('advcheckbox', 'advcheckboxfrozen', 'advcheckbox');
|
||||
$mform->setType('advcheckboxfrozen', PARAM_BOOL);
|
||||
$advcheckboxfrozen->setChecked(true);
|
||||
$advcheckboxfrozen->freeze();
|
||||
// Neither persistant nor Frozen.
|
||||
$mform->addElement('advcheckbox', 'advcheckboxnotpersistant', 'advcheckbox');
|
||||
$mform->setType('advcheckboxnotpersistant', PARAM_BOOL);
|
||||
|
||||
// Create text fields.
|
||||
// Persistant.
|
||||
$elpersistant = $mform->addElement('text', 'textpersistant', 'test', 'test');
|
||||
$mform->setType('textpersistant', PARAM_TEXT);
|
||||
$elpersistant->freeze();
|
||||
$elpersistant->setPersistantFreeze(true);
|
||||
// Frozen.
|
||||
$elfrozen = $mform->addElement('text', 'textfrozen', 'test', 'test');
|
||||
$mform->setType('textfrozen', PARAM_TEXT);
|
||||
$elfrozen->freeze();
|
||||
// Neither persistant nor Frozen.
|
||||
$mform->addElement('text', 'textnotpersistant', 'test', 'test');
|
||||
$mform->setType('textnotpersistant', PARAM_TEXT);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue