mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Merge branch 'MDL-39378' of git://github.com/timhunt/moodle
This commit is contained in:
commit
a10393e19f
2 changed files with 27 additions and 8 deletions
|
@ -70,8 +70,27 @@ class web_testcase extends advanced_testcase {
|
|||
}
|
||||
|
||||
function test_s() {
|
||||
$this->assertEquals(s("This Breaks \" Strict"), "This Breaks " Strict");
|
||||
$this->assertEquals(s("This Breaks <a>\" Strict</a>"), "This Breaks <a>" Strict</a>");
|
||||
// Special cases.
|
||||
$this->assertSame('0', s(0));
|
||||
$this->assertSame('0', s('0'));
|
||||
$this->assertSame('0', s(false));
|
||||
$this->assertSame('', s(null));
|
||||
|
||||
// Normal cases.
|
||||
$this->assertEquals('This Breaks " Strict', s('This Breaks " Strict'));
|
||||
$this->assertEquals('This Breaks <a>" Strict</a>', s('This Breaks <a>" Strict</a>'));
|
||||
|
||||
// Unicode characters.
|
||||
$this->assertEquals('Café', s('Café'));
|
||||
$this->assertEquals('一, 二, 三', s('一, 二, 三'));
|
||||
|
||||
// Don't escape already-escaped numeric entities. (Note, this behaviour
|
||||
// may not be desirable. Perhaps we should remove these tests and that
|
||||
// functionality, but we can only do that if we understand why it was added.)
|
||||
$this->assertEquals('An entity: ৿.', s('An entity: ৿.'));
|
||||
$this->assertEquals('An entity: б.', s('An entity: б.'));
|
||||
$this->assertEquals('An entity: &amp;.', s('An entity: &.'));
|
||||
$this->assertEquals('Not an entity: &amp;#x09ff;.', s('Not an entity: &#x09ff;.'));
|
||||
}
|
||||
|
||||
function test_format_text_email() {
|
||||
|
|
|
@ -85,19 +85,19 @@ define('URL_MATCH_EXACT', 2);
|
|||
* Returns $var with HTML characters (like "<", ">", etc.) properly quoted.
|
||||
* This function is very similar to {@link p()}
|
||||
*
|
||||
* @todo Remove obsolete param $obsolete if not used anywhere
|
||||
*
|
||||
* @param string $var the string potentially containing HTML characters
|
||||
* @param boolean $obsolete no longer used.
|
||||
* @return string
|
||||
*/
|
||||
function s($var, $obsolete = false) {
|
||||
function s($var) {
|
||||
|
||||
if ($var === '0' or $var === false or $var === 0) {
|
||||
if ($var === false) {
|
||||
return '0';
|
||||
}
|
||||
|
||||
return preg_replace("/&#(\d+|x[0-7a-fA-F]+);/i", "&#$1;", htmlspecialchars($var, ENT_QUOTES, 'UTF-8', true));
|
||||
// When we move to PHP 5.4 as a minimum version, change ENT_QUOTES on the
|
||||
// next line to ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, and remove the
|
||||
// 'UTF-8' argument. Both bring a speed-increase.
|
||||
return preg_replace('/&#(\d+|x[0-9a-f]+);/i', '&#$1;', htmlspecialchars($var, ENT_QUOTES, 'UTF-8'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue