mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 13:02:07 +02:00
MDL-55123 forms: correctly create elements in unittests
This commit is contained in:
parent
0344082208
commit
64c45a2928
@ -50,6 +50,8 @@ require_once($CFG->dirroot . '/user/profile/index_field_form.php');
|
||||
* @since Moodle 2.6
|
||||
*/
|
||||
class core_calendar_type_testcase extends advanced_testcase {
|
||||
/** @var MoodleQuickForm Keeps reference of dummy form object */
|
||||
private $mform;
|
||||
|
||||
/**
|
||||
* The test user.
|
||||
@ -63,6 +65,10 @@ class core_calendar_type_testcase extends advanced_testcase {
|
||||
// The user we are going to test this on.
|
||||
$this->user = self::getDataGenerator()->create_user();
|
||||
self::setUser($this->user);
|
||||
|
||||
// Get form data.
|
||||
$form = new temp_form_calendartype();
|
||||
$this->mform = $form->getform();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -216,15 +222,17 @@ class core_calendar_type_testcase extends advanced_testcase {
|
||||
private function convert_dateselector_to_unixtime_test($element, $type, $date) {
|
||||
$this->set_calendar_type($type);
|
||||
|
||||
if ($element == 'dateselector') {
|
||||
$el = new MoodleQuickForm_date_selector('dateselector', null, array('timezone' => 0.0, 'step' => 1));
|
||||
} else {
|
||||
$el = new MoodleQuickForm_date_time_selector('dateselector', null, array('timezone' => 0.0, 'step' => 1));
|
||||
}
|
||||
$el->_createElements();
|
||||
$submitvalues = array('dateselector' => $date);
|
||||
static $counter = 0;
|
||||
$counter++;
|
||||
|
||||
$this->assertSame($el->exportValue($submitvalues), array('dateselector' => $date['timestamp']));
|
||||
if ($element == 'dateselector') {
|
||||
$el = $this->mform->addElement('date_selector', 'dateselector' . $counter, null, array('timezone' => 0.0, 'step' => 1));
|
||||
} else {
|
||||
$el = $this->mform->addElement('date_time_selector', 'dateselector' . $counter, null, array('timezone' => 0.0, 'step' => 1, 'optional' => false));
|
||||
}
|
||||
$submitvalues = array('dateselector' . $counter => $date);
|
||||
|
||||
$this->assertSame($el->exportValue($submitvalues), array('dateselector' . $counter => $date['timestamp']));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -300,3 +308,25 @@ class core_calendar_type_testcase extends advanced_testcase {
|
||||
\core\session\manager::set_user($this->user);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form object to be used in test case.
|
||||
*/
|
||||
class temp_form_calendartype extends moodleform {
|
||||
/**
|
||||
* Form definition.
|
||||
*/
|
||||
public function definition() {
|
||||
// No definition required.
|
||||
}
|
||||
/**
|
||||
* Returns form reference
|
||||
* @return MoodleQuickForm
|
||||
*/
|
||||
public function getform() {
|
||||
$mform = $this->_form;
|
||||
// Set submitted flag, to simulate submission.
|
||||
$mform->_flagSubmitted = true;
|
||||
return $mform;
|
||||
}
|
||||
}
|
||||
|
@ -129,8 +129,8 @@ class core_form_dateselector_testcase extends advanced_testcase {
|
||||
|
||||
// Create dateselector element with different timezones.
|
||||
$elparams = array('optional'=>false, 'timezone' => $vals['timezone']);
|
||||
$el = new MoodleQuickForm_date_selector('dateselector', null, $elparams);
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('date_selector', 'dateselector', null, $elparams);
|
||||
$this->assertTrue($el instanceof MoodleQuickForm_date_selector);
|
||||
$submitvalues = array('dateselector' => $vals);
|
||||
|
||||
$this->assertSame(array('dateselector' => $vals['timestamp']), $el->exportValue($submitvalues),
|
||||
@ -153,8 +153,8 @@ class core_form_dateselector_testcase extends advanced_testcase {
|
||||
|
||||
// Create dateselector element with different timezones.
|
||||
$elparams = array('optional'=>false, 'timezone' => $vals['timezone']);
|
||||
$el = new MoodleQuickForm_date_selector('dateselector', null, $elparams);
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('date_selector', 'dateselector', null, $elparams);
|
||||
$this->assertTrue($el instanceof MoodleQuickForm_date_selector);
|
||||
$expectedvalues = array(
|
||||
'day' => array($vals['day']),
|
||||
'month' => array($vals['month']),
|
||||
|
@ -141,8 +141,8 @@ class core_form_datetimeselector_testcase extends advanced_testcase {
|
||||
|
||||
// Create dateselector element with different timezones.
|
||||
$elparams = array('optional'=>false, 'timezone' => $vals['timezone']);
|
||||
$el = new MoodleQuickForm_date_time_selector('dateselector', null, $elparams);
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('date_time_selector', 'dateselector', null, $elparams);
|
||||
$this->assertTrue($el instanceof MoodleQuickForm_date_time_selector);
|
||||
$submitvalues = array('dateselector' => $vals);
|
||||
|
||||
$this->assertSame(array('dateselector' => $vals['timestamp']), $el->exportValue($submitvalues),
|
||||
@ -165,8 +165,8 @@ class core_form_datetimeselector_testcase extends advanced_testcase {
|
||||
|
||||
// Create dateselector element with different timezones.
|
||||
$elparams = array('optional'=>false, 'timezone' => $vals['timezone']);
|
||||
$el = new MoodleQuickForm_date_time_selector('dateselector', null, $elparams);
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('date_time_selector', 'dateselector', null, $elparams);
|
||||
$this->assertTrue($el instanceof MoodleQuickForm_date_time_selector);
|
||||
$expectedvalues = array(
|
||||
'day' => array($vals['day']),
|
||||
'month' => array($vals['month']),
|
||||
|
@ -41,6 +41,8 @@ require_once($CFG->libdir . '/form/duration.php');
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class core_form_duration_testcase extends basic_testcase {
|
||||
/** @var MoodleQuickForm Keeps reference of dummy form object */
|
||||
private $mform;
|
||||
/** @var MoodleQuickForm_duration Keeps reference of MoodleQuickForm_duration object */
|
||||
private $element;
|
||||
|
||||
@ -49,7 +51,11 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->element = new MoodleQuickForm_duration();
|
||||
|
||||
// Get form data.
|
||||
$form = new temp_form_duration();
|
||||
$this->mform = $form->getform();
|
||||
$this->element = $this->mform->addElement('duration', 'duration');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -67,7 +73,7 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
*/
|
||||
public function test_constructor() {
|
||||
// Test trying to create with an invalid unit.
|
||||
$this->element = new MoodleQuickForm_duration('testel', null, array('defaultunit' => 123));
|
||||
$this->element = $this->mform->addElement('duration', 'testel', null, array('defaultunit' => 123, 'optional' => false));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,7 +100,7 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
$this->assertEquals(array(1, 86400), $this->element->seconds_to_unit(86400));
|
||||
$this->assertEquals(array(25, 3600), $this->element->seconds_to_unit(90000));
|
||||
|
||||
$this->element = new MoodleQuickForm_duration('testel', null, array('defaultunit' => 86400));
|
||||
$this->element = $this->mform->addElement('duration', 'testel', null, array('defaultunit' => 86400, 'optional' => false));
|
||||
$this->assertEquals(array(0, 86400), $this->element->seconds_to_unit(0)); // Zero minutes, for a nice default unit.
|
||||
}
|
||||
|
||||
@ -102,8 +108,7 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
* Testcase to check generated timestamp
|
||||
*/
|
||||
public function test_exportValue() {
|
||||
$el = new MoodleQuickForm_duration('testel');
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('duration', 'testel');
|
||||
$values = array('testel' => array('number' => 10, 'timeunit' => 1));
|
||||
$this->assertEquals(array('testel' => 10), $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 3, 'timeunit' => 60));
|
||||
@ -117,11 +122,32 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
$values = array('testel' => array('number' => 0, 'timeunit' => 3600));
|
||||
$this->assertEquals(array('testel' => 0), $el->exportValue($values));
|
||||
|
||||
$el = new MoodleQuickForm_duration('testel', null, array('optional' => true));
|
||||
$el->_createElements();
|
||||
$el = $this->mform->addElement('duration', 'testel', null, array('optional' => true));
|
||||
$values = array('testel' => array('number' => 10, 'timeunit' => 1));
|
||||
$this->assertEquals(array('testel' => 0), $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 20, 'timeunit' => 1, 'enabled' => 1));
|
||||
$this->assertEquals(array('testel' => 20), $el->exportValue($values));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form object to be used in test case.
|
||||
*/
|
||||
class temp_form_duration extends moodleform {
|
||||
/**
|
||||
* Form definition.
|
||||
*/
|
||||
public function definition() {
|
||||
// No definition required.
|
||||
}
|
||||
/**
|
||||
* Returns form reference
|
||||
* @return MoodleQuickForm
|
||||
*/
|
||||
public function getform() {
|
||||
$mform = $this->_form;
|
||||
// Set submitted flag, to simulate submission.
|
||||
$mform->_flagSubmitted = true;
|
||||
return $mform;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user