See Release Notes
Long Term Support Release
Differences Between: [Versions 310 and 401]
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 namespace core_backup; 18 19 use base_setting; 20 use base_setting_ui; 21 22 defined('MOODLE_INTERNAL') || die(); 23 24 global $CFG; 25 26 require_once($CFG->dirroot.'/backup/util/settings/tests/settings_test.php'); 27 28 /** 29 * Tests for base_setting_ui class. 30 * 31 * @package core_backup 32 * @copyright 2021 Université Rennes 2 {@link https://www.univ-rennes2.fr} 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 34 */ 35 class base_setting_ui_test extends \advanced_testcase { 36 /** 37 * Tests set_label(). 38 * 39 * @return void 40 */ 41 public function test_set_label() { 42 $this->resetAfterTest(); 43 44 $bs = new mock_base_setting('test', base_setting::IS_BOOLEAN); 45 $bsui = new base_setting_ui($bs); 46 47 // Should keep original text string. 48 $bsui->set_label('Section name'); 49 $this->assertEquals('Section name', $bsui->get_label()); 50 51 // Should keep original HTML string. 52 $bsui->set_label('<b>Section name</b>'); 53 $this->assertEquals('<b>Section name</b>', $bsui->get_label()); 54 55 // Should be converted to text string. 56 $bsui->set_label(123); 57 $this->assertSame('123', $bsui->get_label()); 58 59 // Should be converted to non-breaking space (U+00A0) when label is empty. 60 $bsui->set_label(''); 61 $this->assertSame("\u{00A0}", $bsui->get_label()); 62 63 // Should be converted to non-breaking space (U+00A0) when the trimmed label is empty. 64 $bsui->set_label(" \t\t\n\n\t\t "); 65 $this->assertSame("\u{00A0}", $bsui->get_label()); 66 67 // Should clean partially the wrong bits. 68 $bsui->set_label('<b onmouseover=alert("test")>label</b>'); 69 $this->assertSame('<b>label</b>', $bsui->get_label()); 70 71 // Should raise an exception when cleaning ends with 100% empty. 72 $this->expectException(\Exception::class); 73 $this->expectExceptionMessage('error/setting_invalid_ui_label'); 74 $bsui->set_label('<script>alert("test")</script>'); 75 } 76 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body