Differences Between: [Versions 310 and 311] [Versions 310 and 400] [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Unit tests for float form element. 19 * 20 * @package core_form 21 * @category test 22 * @copyright 2019 Shamim Rezaie <shamim@moodle.com> 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 defined('MOODLE_INTERNAL') || die(); 27 28 global $CFG; 29 require_once($CFG->libdir . '/form/float.php'); 30 31 /** 32 * Unit tests for MoodleQuickForm_float 33 * 34 * Contains test cases for testing MoodleQuickForm_float 35 * 36 * @package core_form 37 * @copyright 2019 Shamim Rezaie <shamim@moodle.com> 38 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 39 */ 40 class core_form_float_testcase extends advanced_testcase { 41 42 /** 43 * Define a local decimal separator. 44 * 45 * It is not possible to directly change the result of get_string in 46 * a unit test. Instead, we create a language pack for language 'xx' in 47 * dataroot and make langconfig.php with the string we need to change. 48 * The example separator used here is 'X'. 49 */ 50 protected function define_local_decimal_separator() { 51 global $SESSION, $CFG; 52 53 $SESSION->lang = 'xx'; 54 $langconfig = "<?php\n\$string['decsep'] = 'X';"; 55 $langfolder = $CFG->dataroot . '/lang/xx'; 56 check_dir_exists($langfolder); 57 file_put_contents($langfolder . '/langconfig.php', $langconfig); 58 } 59 60 /** 61 * Testcase to check generated timestamp 62 */ 63 public function test_exportValue() { 64 $element = new MoodleQuickForm_float('testel'); 65 66 $value = ['testel' => 3.14]; 67 $this->assertEquals(3.14, $element->exportValue($value)); 68 69 $value = ['testel' => '3.14']; 70 $this->assertEquals(3.14, $element->exportValue($value)); 71 72 $value = ['testel' => '-3.14']; 73 $this->assertEquals(-3.14, $element->exportValue($value)); 74 75 $value = ['testel' => '3.14blah']; 76 $this->assertEquals(false, $element->exportValue($value)); 77 78 $value = ['testel' => 'blah']; 79 $this->assertEquals(false, $element->exportValue($value)); 80 81 // Tests with a localised decimal separator. 82 $this->define_local_decimal_separator(); 83 84 $value = ['testel' => 3.14]; 85 $this->assertEquals(3.14, $element->exportValue($value)); 86 87 $value = ['testel' => '3X14']; 88 $this->assertEquals(3.14, $element->exportValue($value)); 89 90 $value = ['testel' => '-3X14']; 91 $this->assertEquals(-3.14, $element->exportValue($value)); 92 93 $value = ['testel' => '3X14blah']; 94 $this->assertEquals(false, $element->exportValue($value)); 95 96 $value = ['testel' => 'blah']; 97 $this->assertEquals(false, $element->exportValue($value)); 98 } 99 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body