Merge branch 'MDL-67084-master' of git://github.com/junpataleta/moodle
This commit is contained in:
@@ -241,10 +241,10 @@ class MoodleQuickForm_duration extends MoodleQuickForm_group {
|
||||
* Override of standard quickforms method.
|
||||
*
|
||||
* @param array $submitValues
|
||||
* @param bool $notused Not used.
|
||||
* @param bool $assoc whether to return the value as associative array
|
||||
* @return array field name => value. The value is the time interval in seconds.
|
||||
*/
|
||||
function exportValue(&$submitValues, $notused = false) {
|
||||
function exportValue(&$submitValues, $assoc = false) {
|
||||
// Get the values from all the child elements.
|
||||
$valuearray = array();
|
||||
foreach ($this->_elements as $element) {
|
||||
@@ -259,8 +259,8 @@ class MoodleQuickForm_duration extends MoodleQuickForm_group {
|
||||
return null;
|
||||
}
|
||||
if ($this->_options['optional'] && empty($valuearray['enabled'])) {
|
||||
return array($this->getName() => 0);
|
||||
return $this->_prepareValue(0, $assoc);
|
||||
}
|
||||
return array($this->getName() => $valuearray['number'] * $valuearray['timeunit']);
|
||||
return $this->_prepareValue($valuearray['number'] * $valuearray['timeunit'], $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,25 +108,43 @@ class core_form_duration_testcase extends basic_testcase {
|
||||
* Testcase to check generated timestamp
|
||||
*/
|
||||
public function test_exportValue() {
|
||||
/** @var MoodleQuickForm_duration $el */
|
||||
$el = $this->mform->addElement('duration', 'testel');
|
||||
$values = array('testel' => array('number' => 10, 'timeunit' => 1));
|
||||
$this->assertEquals(array('testel' => 10), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 10), $el->exportValue($values, true));
|
||||
$this->assertEquals(10, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 3, 'timeunit' => 60));
|
||||
$this->assertEquals(array('testel' => 180), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 180), $el->exportValue($values, true));
|
||||
$this->assertEquals(180, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 1.5, 'timeunit' => 60));
|
||||
$this->assertEquals(array('testel' => 90), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 90), $el->exportValue($values, true));
|
||||
$this->assertEquals(90, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 2, 'timeunit' => 3600));
|
||||
$this->assertEquals(array('testel' => 7200), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 7200), $el->exportValue($values, true));
|
||||
$this->assertEquals(7200, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 1, 'timeunit' => 86400));
|
||||
$this->assertEquals(array('testel' => 86400), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 86400), $el->exportValue($values, true));
|
||||
$this->assertEquals(86400, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 0, 'timeunit' => 3600));
|
||||
$this->assertEquals(array('testel' => 0), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 0), $el->exportValue($values, true));
|
||||
$this->assertEquals(0, $el->exportValue($values));
|
||||
|
||||
$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));
|
||||
$this->assertEquals(array('testel' => 0), $el->exportValue($values, true));
|
||||
$this->assertEquals(0, $el->exportValue($values));
|
||||
$values = array('testel' => array('number' => 20, 'timeunit' => 1, 'enabled' => 1));
|
||||
$this->assertEquals(array('testel' => 20), $el->exportValue($values));
|
||||
$this->assertEquals(array('testel' => 20), $el->exportValue($values, true));
|
||||
$this->assertEquals(20, $el->exportValue($values));
|
||||
|
||||
// Optional element.
|
||||
$el2 = $this->mform->addElement('duration', 'testel', '', ['optional' => true]);
|
||||
$values = array('testel' => array('number' => 10, 'timeunit' => 1, 'enabled' => 1));
|
||||
$this->assertEquals(array('testel' => 10), $el2->exportValue($values, true));
|
||||
$this->assertEquals(10, $el2->exportValue($values));
|
||||
$values = array('testel' => array('number' => 10, 'timeunit' => 1, 'enabled' => 0));
|
||||
$this->assertEquals(array('testel' => 0), $el2->exportValue($values, true));
|
||||
$this->assertEquals(null, $el2->exportValue($values));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user