Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

< /** < * Unit tests for float form element. < * < * @package core_form < * @category test < * @copyright 2019 Shamim Rezaie <shamim@moodle.com> < * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later < */
> namespace core_form; > > use MoodleQuickForm_float;
defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/form/float.php'); /** * Unit tests for MoodleQuickForm_float * * Contains test cases for testing MoodleQuickForm_float * * @package core_form
> * @category test
* @copyright 2019 Shamim Rezaie <shamim@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */
< class core_form_float_testcase extends advanced_testcase {
> class float_test extends \advanced_testcase {
/** * Define a local decimal separator. * * It is not possible to directly change the result of get_string in * a unit test. Instead, we create a language pack for language 'xx' in * dataroot and make langconfig.php with the string we need to change. * The example separator used here is 'X'. */ protected function define_local_decimal_separator() { global $SESSION, $CFG; $SESSION->lang = 'xx'; $langconfig = "<?php\n\$string['decsep'] = 'X';"; $langfolder = $CFG->dataroot . '/lang/xx'; check_dir_exists($langfolder); file_put_contents($langfolder . '/langconfig.php', $langconfig); } /** * Testcase to check generated timestamp */ public function test_exportValue() { $element = new MoodleQuickForm_float('testel'); $value = ['testel' => 3.14]; $this->assertEquals(3.14, $element->exportValue($value)); $value = ['testel' => '3.14']; $this->assertEquals(3.14, $element->exportValue($value)); $value = ['testel' => '-3.14']; $this->assertEquals(-3.14, $element->exportValue($value)); $value = ['testel' => '3.14blah']; $this->assertEquals(false, $element->exportValue($value)); $value = ['testel' => 'blah']; $this->assertEquals(false, $element->exportValue($value)); // Tests with a localised decimal separator. $this->define_local_decimal_separator(); $value = ['testel' => 3.14]; $this->assertEquals(3.14, $element->exportValue($value)); $value = ['testel' => '3X14']; $this->assertEquals(3.14, $element->exportValue($value)); $value = ['testel' => '-3X14']; $this->assertEquals(-3.14, $element->exportValue($value)); $value = ['testel' => '3X14blah']; $this->assertEquals(false, $element->exportValue($value)); $value = ['testel' => 'blah']; $this->assertEquals(false, $element->exportValue($value)); } }