mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 00:16:46 +02:00

This has been generated running the following Sniffs, all them part of the Moodle's CodeSniffer standard: - PSR12.Functions.ReturnTypeDeclaration - PSR12.Functions.NullableTypeDeclaration - moodle.Methods.MethodDeclarationSpacing - Squiz.Whitespace.ScopeKeywordSpacing All them are, exclusively, about correct spacing, so the changes are, all them, only white space changes. Only exceptions to the above are 3 changes what were setting the return type in a new line, and, when that happens, the closing parenthesis (bracket) has to go to the same line than the colon.
1090 lines
41 KiB
PHP
1090 lines
41 KiB
PHP
<?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/>.
|
|
|
|
/**
|
|
* mlang langstring tests.
|
|
*
|
|
* Based on local_amos mlang_langstring tests.
|
|
*
|
|
* @package tool_customlang
|
|
* @copyright 2020 Ferran Recio <ferran@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
namespace tool_customlang\local\mlang;
|
|
|
|
use advanced_testcase;
|
|
use moodle_exception;
|
|
|
|
/**
|
|
* Langstring tests.
|
|
*
|
|
* @package tool_customlang
|
|
* @copyright 2020 Ferran Recio <ferran@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class langstring_test extends advanced_testcase {
|
|
|
|
/**
|
|
* Sanity 1.x string
|
|
* - all variables but $a placeholders must be escaped because the string is eval'ed
|
|
* - all ' and " must be escaped
|
|
* - all single % must be converted into %% for backwards compatibility
|
|
*
|
|
* @dataProvider fix_syntax_data
|
|
* @param string $text the text to test
|
|
* @param int $version the lang package version (1 or 2)
|
|
* @param int|null $fromversion the version to convert (null for none)
|
|
* @param string $expected the expected result
|
|
*
|
|
*/
|
|
public function test_fix_syntax(string $text, int $version, ?int $fromversion, string $expected): void {
|
|
$this->assertEquals(langstring::fix_syntax($text, $version, $fromversion), $expected);
|
|
}
|
|
|
|
/**
|
|
* Data provider for the test_parse.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function fix_syntax_data(): array {
|
|
return [
|
|
// Syntax sanity v1 strings.
|
|
[
|
|
'No change', 1, null,
|
|
'No change'
|
|
],
|
|
[
|
|
'Completed 100% of work', 1, null,
|
|
'Completed 100%% of work'
|
|
],
|
|
[
|
|
'Completed 100%% of work', 1, null,
|
|
'Completed 100%% of work'
|
|
],
|
|
[
|
|
"Windows\r\nsucks", 1, null,
|
|
"Windows\nsucks"
|
|
],
|
|
[
|
|
"Linux\nsucks", 1, null,
|
|
"Linux\nsucks"
|
|
],
|
|
[
|
|
"Mac\rsucks", 1, null,
|
|
"Mac\nsucks"
|
|
],
|
|
[
|
|
"LINE TABULATION\x0Bnewline", 1, null,
|
|
"LINE TABULATION\nnewline"
|
|
],
|
|
[
|
|
"FORM FEED\x0Cnewline", 1, null,
|
|
"FORM FEED\nnewline"
|
|
],
|
|
[
|
|
"END OF TRANSMISSION BLOCK\x17newline", 1, null,
|
|
"END OF TRANSMISSION BLOCK\nnewline"
|
|
],
|
|
[
|
|
"END OF MEDIUM\x19newline", 1, null,
|
|
"END OF MEDIUM\nnewline"
|
|
],
|
|
[
|
|
"SUBSTITUTE\x1Anewline", 1, null,
|
|
"SUBSTITUTE\nnewline"
|
|
],
|
|
[
|
|
"BREAK PERMITTED HERE\xC2\x82newline", 1, null,
|
|
"BREAK PERMITTED HERE\nnewline"
|
|
],
|
|
[
|
|
"NEXT LINE\xC2\x85newline", 1, null,
|
|
"NEXT LINE\nnewline"
|
|
],
|
|
[
|
|
"START OF STRING\xC2\x98newline", 1, null,
|
|
"START OF STRING\nnewline"
|
|
],
|
|
[
|
|
"STRING TERMINATOR\xC2\x9Cnewline", 1, null,
|
|
"STRING TERMINATOR\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zl\xE2\x80\xA8newline", 1, null,
|
|
"Unicode Zl\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zp\xE2\x80\xA9newline", 1, null,
|
|
"Unicode Zp\nnewline"
|
|
],
|
|
[
|
|
"Empty\n\n\n\n\n\nlines", 1, null,
|
|
"Empty\n\nlines"
|
|
],
|
|
[
|
|
"Trailing \n whitespace \t \nat \nmultilines ", 1, null,
|
|
"Trailing\n whitespace\nat\nmultilines"
|
|
],
|
|
[
|
|
'Escape $variable names', 1, null,
|
|
'Escape \$variable names'
|
|
],
|
|
[
|
|
'Escape $alike names', 1, null,
|
|
'Escape \$alike names'
|
|
],
|
|
[
|
|
'String $a placeholder', 1, null,
|
|
'String $a placeholder'
|
|
],
|
|
[
|
|
'Escaped \$a', 1, null,
|
|
'Escaped \$a'
|
|
],
|
|
[
|
|
'Wrapped {$a}', 1, null,
|
|
'Wrapped {$a}'
|
|
],
|
|
[
|
|
'Trailing $a', 1, null,
|
|
'Trailing $a'
|
|
],
|
|
[
|
|
'$a leading', 1, null,
|
|
'$a leading'
|
|
],
|
|
[
|
|
'Hit $a-times', 1, null,
|
|
'Hit $a-times'
|
|
], // This is placeholder.
|
|
[
|
|
'This is $a_book', 1, null,
|
|
'This is \$a_book'
|
|
], // This is not a place holder.
|
|
[
|
|
'Bye $a, ttyl', 1, null,
|
|
'Bye $a, ttyl'
|
|
],
|
|
[
|
|
'Object $a->foo placeholder', 1, null,
|
|
'Object $a->foo placeholder'
|
|
],
|
|
[
|
|
'Trailing $a->bar', 1, null,
|
|
'Trailing $a->bar'
|
|
],
|
|
[
|
|
'<strong>AMOS</strong>', 1, null,
|
|
'<strong>AMOS</strong>'
|
|
],
|
|
[
|
|
'<a href="http://localhost">AMOS</a>', 1, null,
|
|
'<a href=\"http://localhost\">AMOS</a>'
|
|
],
|
|
[
|
|
'<a href=\"http://localhost\">AMOS</a>', 1, null,
|
|
'<a href=\"http://localhost\">AMOS</a>'
|
|
],
|
|
[
|
|
"'Murder!', she wrote", 1, null,
|
|
"'Murder!', she wrote"
|
|
], // Will be escaped by var_export().
|
|
[
|
|
"\t Trim Hunter \t\t", 1, null,
|
|
'Trim Hunter'
|
|
],
|
|
[
|
|
'Delete role "$a->role"?', 1, null,
|
|
'Delete role \"$a->role\"?'
|
|
],
|
|
[
|
|
'Delete role \"$a->role\"?', 1, null,
|
|
'Delete role \"$a->role\"?'
|
|
],
|
|
[
|
|
"Delete ASCII\0 NULL control character", 1, null,
|
|
'Delete ASCII NULL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x05 ENQUIRY control character", 1, null,
|
|
'Delete ASCII ENQUIRY control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x06 ACKNOWLEDGE control character", 1, null,
|
|
'Delete ASCII ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x07 BELL control character", 1, null,
|
|
'Delete ASCII BELL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0E SHIFT OUT control character", 1, null,
|
|
'Delete ASCII SHIFT OUT control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0F SHIFT IN control character", 1, null,
|
|
'Delete ASCII SHIFT IN control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x10 DATA LINK ESCAPE control character", 1, null,
|
|
'Delete ASCII DATA LINK ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x11 DEVICE CONTROL ONE control character", 1, null,
|
|
'Delete ASCII DEVICE CONTROL ONE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x12 DEVICE CONTROL TWO control character", 1, null,
|
|
'Delete ASCII DEVICE CONTROL TWO control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x13 DEVICE CONTROL THREE control character", 1, null,
|
|
'Delete ASCII DEVICE CONTROL THREE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x14 DEVICE CONTROL FOUR control character", 1, null,
|
|
'Delete ASCII DEVICE CONTROL FOUR control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x15 NEGATIVE ACKNOWLEDGE control character", 1, null,
|
|
'Delete ASCII NEGATIVE ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x16 SYNCHRONOUS IDLE control character", 1, null,
|
|
'Delete ASCII SYNCHRONOUS IDLE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x1B ESCAPE control character", 1, null,
|
|
'Delete ASCII ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x7F DELETE control character", 1, null,
|
|
'Delete ASCII DELETE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x80 PADDING CHARACTER control character", 1, null,
|
|
'Delete ISO 8859 PADDING CHARACTER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x81 HIGH OCTET PRESET control character", 1, null,
|
|
'Delete ISO 8859 HIGH OCTET PRESET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x83 NO BREAK HERE control character", 1, null,
|
|
'Delete ISO 8859 NO BREAK HERE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x84 INDEX control character", 1, null,
|
|
'Delete ISO 8859 INDEX control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x86 START OF SELECTED AREA control character", 1, null,
|
|
'Delete ISO 8859 START OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x87 END OF SELECTED AREA control character", 1, null,
|
|
'Delete ISO 8859 END OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x88 CHARACTER TABULATION SET control character", 1, null,
|
|
'Delete ISO 8859 CHARACTER TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x89 CHARACTER TABULATION WITH JUSTIFICATION control character", 1, null,
|
|
'Delete ISO 8859 CHARACTER TABULATION WITH JUSTIFICATION control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8A LINE TABULATION SET control character", 1, null,
|
|
'Delete ISO 8859 LINE TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8B PARTIAL LINE FORWARD control character", 1, null,
|
|
'Delete ISO 8859 PARTIAL LINE FORWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8C PARTIAL LINE BACKWARD control character", 1, null,
|
|
'Delete ISO 8859 PARTIAL LINE BACKWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8D REVERSE LINE FEED control character", 1, null,
|
|
'Delete ISO 8859 REVERSE LINE FEED control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8E SINGLE SHIFT TWO control character", 1, null,
|
|
'Delete ISO 8859 SINGLE SHIFT TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8F SINGLE SHIFT THREE control character", 1, null,
|
|
'Delete ISO 8859 SINGLE SHIFT THREE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x90 DEVICE CONTROL STRING control character", 1, null,
|
|
'Delete ISO 8859 DEVICE CONTROL STRING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x91 PRIVATE USE ONE control character", 1, null,
|
|
'Delete ISO 8859 PRIVATE USE ONE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x92 PRIVATE USE TWO control character", 1, null,
|
|
'Delete ISO 8859 PRIVATE USE TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x93 SET TRANSMIT STATE control character", 1, null,
|
|
'Delete ISO 8859 SET TRANSMIT STATE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x95 MESSAGE WAITING control character", 1, null,
|
|
'Delete ISO 8859 MESSAGE WAITING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x96 START OF GUARDED AREA control character", 1, null,
|
|
'Delete ISO 8859 START OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x97 END OF GUARDED AREA control character", 1, null,
|
|
'Delete ISO 8859 END OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x99 SINGLE GRAPHIC CHARACTER INTRODUCER control character", 1, null,
|
|
'Delete ISO 8859 SINGLE GRAPHIC CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9A SINGLE CHARACTER INTRODUCER control character", 1, null,
|
|
'Delete ISO 8859 SINGLE CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9B CONTROL SEQUENCE INTRODUCER control character", 1, null,
|
|
'Delete ISO 8859 CONTROL SEQUENCE INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9D OPERATING SYSTEM COMMAND control character", 1, null,
|
|
'Delete ISO 8859 OPERATING SYSTEM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9E PRIVACY MESSAGE control character", 1, null,
|
|
'Delete ISO 8859 PRIVACY MESSAGE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9F APPLICATION PROGRAM COMMAND control character", 1, null,
|
|
'Delete ISO 8859 APPLICATION PROGRAM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xE2\x80\x8B ZERO WIDTH SPACE control character", 1, null,
|
|
'Delete Unicode ZERO WIDTH SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBB\xBF ZERO WIDTH NO-BREAK SPACE control character", 1, null,
|
|
'Delete Unicode ZERO WIDTH NO-BREAK SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBF\xBD REPLACEMENT CHARACTER control character", 1, null,
|
|
'Delete Unicode REPLACEMENT CHARACTER control character'
|
|
],
|
|
// Syntax sanity v2 strings.
|
|
[
|
|
'No change', 2, null,
|
|
'No change'
|
|
],
|
|
[
|
|
'Completed 100% of work', 2, null,
|
|
'Completed 100% of work'
|
|
],
|
|
[
|
|
'%%%% HEADER %%%%', 2, null,
|
|
'%%%% HEADER %%%%'
|
|
], // Was not possible before.
|
|
[
|
|
"Windows\r\nsucks", 2, null,
|
|
"Windows\nsucks"
|
|
],
|
|
[
|
|
"Linux\nsucks", 2, null,
|
|
"Linux\nsucks"
|
|
],
|
|
[
|
|
"Mac\rsucks", 2, null,
|
|
"Mac\nsucks"
|
|
],
|
|
[
|
|
"LINE TABULATION\x0Bnewline", 2, null,
|
|
"LINE TABULATION\nnewline"
|
|
],
|
|
[
|
|
"FORM FEED\x0Cnewline", 2, null,
|
|
"FORM FEED\nnewline"
|
|
],
|
|
[
|
|
"END OF TRANSMISSION BLOCK\x17newline", 2, null,
|
|
"END OF TRANSMISSION BLOCK\nnewline"
|
|
],
|
|
[
|
|
"END OF MEDIUM\x19newline", 2, null,
|
|
"END OF MEDIUM\nnewline"
|
|
],
|
|
[
|
|
"SUBSTITUTE\x1Anewline", 2, null,
|
|
"SUBSTITUTE\nnewline"
|
|
],
|
|
[
|
|
"BREAK PERMITTED HERE\xC2\x82newline", 2, null,
|
|
"BREAK PERMITTED HERE\nnewline"
|
|
],
|
|
[
|
|
"NEXT LINE\xC2\x85newline", 2, null,
|
|
"NEXT LINE\nnewline"
|
|
],
|
|
[
|
|
"START OF STRING\xC2\x98newline", 2, null,
|
|
"START OF STRING\nnewline"
|
|
],
|
|
[
|
|
"STRING TERMINATOR\xC2\x9Cnewline", 2, null,
|
|
"STRING TERMINATOR\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zl\xE2\x80\xA8newline", 2, null,
|
|
"Unicode Zl\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zp\xE2\x80\xA9newline", 2, null,
|
|
"Unicode Zp\nnewline"
|
|
],
|
|
[
|
|
"Empty\n\n\n\n\n\nlines", 2, null,
|
|
"Empty\n\n\nlines"
|
|
], // Now allows up to two empty lines.
|
|
[
|
|
"Trailing \n whitespace\t\nat \nmultilines ", 2, null,
|
|
"Trailing\n whitespace\nat\nmultilines"
|
|
],
|
|
[
|
|
'Do not escape $variable names', 2, null,
|
|
'Do not escape $variable names'
|
|
],
|
|
[
|
|
'Do not escape $alike names', 2, null,
|
|
'Do not escape $alike names'
|
|
],
|
|
[
|
|
'Not $a placeholder', 2, null,
|
|
'Not $a placeholder'
|
|
],
|
|
[
|
|
'String {$a} placeholder', 2, null,
|
|
'String {$a} placeholder'
|
|
],
|
|
[
|
|
'Trailing {$a}', 2, null,
|
|
'Trailing {$a}'
|
|
],
|
|
[
|
|
'{$a} leading', 2, null,
|
|
'{$a} leading'
|
|
],
|
|
[
|
|
'Trailing $a', 2, null,
|
|
'Trailing $a'
|
|
],
|
|
[
|
|
'$a leading', 2, null,
|
|
'$a leading'
|
|
],
|
|
[
|
|
'Not $a->foo placeholder', 2, null,
|
|
'Not $a->foo placeholder'
|
|
],
|
|
[
|
|
'Object {$a->foo} placeholder', 2, null,
|
|
'Object {$a->foo} placeholder'
|
|
],
|
|
[
|
|
'Trailing $a->bar', 2, null,
|
|
'Trailing $a->bar'
|
|
],
|
|
[
|
|
'Invalid $a-> placeholder', 2, null,
|
|
'Invalid $a-> placeholder'
|
|
],
|
|
[
|
|
'<strong>AMOS</strong>', 2, null,
|
|
'<strong>AMOS</strong>'
|
|
],
|
|
[
|
|
"'Murder!', she wrote", 2, null,
|
|
"'Murder!', she wrote"
|
|
], // Will be escaped by var_export().
|
|
[
|
|
"\t Trim Hunter \t\t", 2, null,
|
|
'Trim Hunter'
|
|
],
|
|
[
|
|
'Delete role "$a->role"?', 2, null,
|
|
'Delete role "$a->role"?'
|
|
],
|
|
[
|
|
'Delete role \"$a->role\"?', 2, null,
|
|
'Delete role \"$a->role\"?'
|
|
],
|
|
[
|
|
"Delete ASCII\0 NULL control character", 2, null,
|
|
'Delete ASCII NULL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x05 ENQUIRY control character", 2, null,
|
|
'Delete ASCII ENQUIRY control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x06 ACKNOWLEDGE control character", 2, null,
|
|
'Delete ASCII ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x07 BELL control character", 2, null,
|
|
'Delete ASCII BELL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0E SHIFT OUT control character", 2, null,
|
|
'Delete ASCII SHIFT OUT control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0F SHIFT IN control character", 2, null,
|
|
'Delete ASCII SHIFT IN control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x10 DATA LINK ESCAPE control character", 2, null,
|
|
'Delete ASCII DATA LINK ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x11 DEVICE CONTROL ONE control character", 2, null,
|
|
'Delete ASCII DEVICE CONTROL ONE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x12 DEVICE CONTROL TWO control character", 2, null,
|
|
'Delete ASCII DEVICE CONTROL TWO control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x13 DEVICE CONTROL THREE control character", 2, null,
|
|
'Delete ASCII DEVICE CONTROL THREE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x14 DEVICE CONTROL FOUR control character", 2, null,
|
|
'Delete ASCII DEVICE CONTROL FOUR control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x15 NEGATIVE ACKNOWLEDGE control character", 2, null,
|
|
'Delete ASCII NEGATIVE ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x16 SYNCHRONOUS IDLE control character", 2, null,
|
|
'Delete ASCII SYNCHRONOUS IDLE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x1B ESCAPE control character", 2, null,
|
|
'Delete ASCII ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x7F DELETE control character", 2, null,
|
|
'Delete ASCII DELETE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x80 PADDING CHARACTER control character", 2, null,
|
|
'Delete ISO 8859 PADDING CHARACTER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x81 HIGH OCTET PRESET control character", 2, null,
|
|
'Delete ISO 8859 HIGH OCTET PRESET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x83 NO BREAK HERE control character", 2, null,
|
|
'Delete ISO 8859 NO BREAK HERE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x84 INDEX control character", 2, null,
|
|
'Delete ISO 8859 INDEX control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x86 START OF SELECTED AREA control character", 2, null,
|
|
'Delete ISO 8859 START OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x87 END OF SELECTED AREA control character", 2, null,
|
|
'Delete ISO 8859 END OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x88 CHARACTER TABULATION SET control character", 2, null,
|
|
'Delete ISO 8859 CHARACTER TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x89 CHARACTER TABULATION WITH JUSTIFICATION control character", 2, null,
|
|
'Delete ISO 8859 CHARACTER TABULATION WITH JUSTIFICATION control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8A LINE TABULATION SET control character", 2, null,
|
|
'Delete ISO 8859 LINE TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8B PARTIAL LINE FORWARD control character", 2, null,
|
|
'Delete ISO 8859 PARTIAL LINE FORWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8C PARTIAL LINE BACKWARD control character", 2, null,
|
|
'Delete ISO 8859 PARTIAL LINE BACKWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8D REVERSE LINE FEED control character", 2, null,
|
|
'Delete ISO 8859 REVERSE LINE FEED control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8E SINGLE SHIFT TWO control character", 2, null,
|
|
'Delete ISO 8859 SINGLE SHIFT TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8F SINGLE SHIFT THREE control character", 2, null,
|
|
'Delete ISO 8859 SINGLE SHIFT THREE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x90 DEVICE CONTROL STRING control character", 2, null,
|
|
'Delete ISO 8859 DEVICE CONTROL STRING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x91 PRIVATE USE ONE control character", 2, null,
|
|
'Delete ISO 8859 PRIVATE USE ONE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x92 PRIVATE USE TWO control character", 2, null,
|
|
'Delete ISO 8859 PRIVATE USE TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x93 SET TRANSMIT STATE control character", 2, null,
|
|
'Delete ISO 8859 SET TRANSMIT STATE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x95 MESSAGE WAITING control character", 2, null,
|
|
'Delete ISO 8859 MESSAGE WAITING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x96 START OF GUARDED AREA control character", 2, null,
|
|
'Delete ISO 8859 START OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x97 END OF GUARDED AREA control character", 2, null,
|
|
'Delete ISO 8859 END OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x99 SINGLE GRAPHIC CHARACTER INTRODUCER control character", 2, null,
|
|
'Delete ISO 8859 SINGLE GRAPHIC CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9A SINGLE CHARACTER INTRODUCER control character", 2, null,
|
|
'Delete ISO 8859 SINGLE CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9B CONTROL SEQUENCE INTRODUCER control character", 2, null,
|
|
'Delete ISO 8859 CONTROL SEQUENCE INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9D OPERATING SYSTEM COMMAND control character", 2, null,
|
|
'Delete ISO 8859 OPERATING SYSTEM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9E PRIVACY MESSAGE control character", 2, null,
|
|
'Delete ISO 8859 PRIVACY MESSAGE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9F APPLICATION PROGRAM COMMAND control character", 2, null,
|
|
'Delete ISO 8859 APPLICATION PROGRAM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xE2\x80\x8B ZERO WIDTH SPACE control character", 2, null,
|
|
'Delete Unicode ZERO WIDTH SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBB\xBF ZERO WIDTH NO-BREAK SPACE control character", 2, null,
|
|
'Delete Unicode ZERO WIDTH NO-BREAK SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBF\xBD REPLACEMENT CHARACTER control character", 2, null,
|
|
'Delete Unicode REPLACEMENT CHARACTER control character'
|
|
],
|
|
// Conterting from v1 to v2.
|
|
[
|
|
'No change', 2, 1,
|
|
'No change'
|
|
],
|
|
[
|
|
'Completed 100% of work', 2, 1,
|
|
'Completed 100% of work'
|
|
],
|
|
[
|
|
'Completed 100%% of work', 2, 1,
|
|
'Completed 100% of work'
|
|
],
|
|
[
|
|
"Windows\r\nsucks", 2, 1,
|
|
"Windows\nsucks"
|
|
],
|
|
[
|
|
"Linux\nsucks", 2, 1,
|
|
"Linux\nsucks"
|
|
],
|
|
[
|
|
"Mac\rsucks", 2, 1,
|
|
"Mac\nsucks"
|
|
],
|
|
[
|
|
"LINE TABULATION\x0Bnewline", 2, 1,
|
|
"LINE TABULATION\nnewline"
|
|
],
|
|
[
|
|
"FORM FEED\x0Cnewline", 2, 1,
|
|
"FORM FEED\nnewline"
|
|
],
|
|
[
|
|
"END OF TRANSMISSION BLOCK\x17newline", 2, 1,
|
|
"END OF TRANSMISSION BLOCK\nnewline"
|
|
],
|
|
[
|
|
"END OF MEDIUM\x19newline", 2, 1,
|
|
"END OF MEDIUM\nnewline"
|
|
],
|
|
[
|
|
"SUBSTITUTE\x1Anewline", 2, 1,
|
|
"SUBSTITUTE\nnewline"
|
|
],
|
|
[
|
|
"BREAK PERMITTED HERE\xC2\x82newline", 2, 1,
|
|
"BREAK PERMITTED HERE\nnewline"
|
|
],
|
|
[
|
|
"NEXT LINE\xC2\x85newline", 2, 1,
|
|
"NEXT LINE\nnewline"
|
|
],
|
|
[
|
|
"START OF STRING\xC2\x98newline", 2, 1,
|
|
"START OF STRING\nnewline"
|
|
],
|
|
[
|
|
"STRING TERMINATOR\xC2\x9Cnewline", 2, 1,
|
|
"STRING TERMINATOR\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zl\xE2\x80\xA8newline", 2, 1,
|
|
"Unicode Zl\nnewline"
|
|
],
|
|
[
|
|
"Unicode Zp\xE2\x80\xA9newline", 2, 1,
|
|
"Unicode Zp\nnewline"
|
|
],
|
|
[
|
|
"Empty\n\n\n\n\n\nlines", 2, 1,
|
|
"Empty\n\n\nlines"
|
|
],
|
|
[
|
|
"Trailing \n whitespace\t\nat \nmultilines ", 2, 1,
|
|
"Trailing\n whitespace\nat\nmultilines"
|
|
],
|
|
[
|
|
'Do not escape $variable names', 2, 1,
|
|
'Do not escape $variable names'
|
|
],
|
|
[
|
|
'Do not escape \$variable names', 2, 1,
|
|
'Do not escape $variable names'
|
|
],
|
|
[
|
|
'Do not escape $alike names', 2, 1,
|
|
'Do not escape $alike names'
|
|
],
|
|
[
|
|
'Do not escape \$alike names', 2, 1,
|
|
'Do not escape $alike names'
|
|
],
|
|
[
|
|
'Do not escape \$a names', 2, 1,
|
|
'Do not escape $a names'
|
|
],
|
|
[
|
|
'String $a placeholder', 2, 1,
|
|
'String {$a} placeholder'
|
|
],
|
|
[
|
|
'String {$a} placeholder', 2, 1,
|
|
'String {$a} placeholder'
|
|
],
|
|
[
|
|
'Trailing $a', 2, 1,
|
|
'Trailing {$a}'
|
|
],
|
|
[
|
|
'$a leading', 2, 1,
|
|
'{$a} leading'
|
|
],
|
|
[
|
|
'$a', 2, 1,
|
|
'{$a}'
|
|
],
|
|
[
|
|
'$a->single', 2, 1,
|
|
'{$a->single}'
|
|
],
|
|
[
|
|
'Trailing $a->foobar', 2, 1,
|
|
'Trailing {$a->foobar}'
|
|
],
|
|
[
|
|
'Trailing {$a}', 2, 1,
|
|
'Trailing {$a}'
|
|
],
|
|
[
|
|
'Hit $a-times', 2, 1,
|
|
'Hit {$a}-times'
|
|
],
|
|
[
|
|
'This is $a_book', 2, 1,
|
|
'This is $a_book'
|
|
],
|
|
[
|
|
'Object $a->foo placeholder', 2, 1,
|
|
'Object {$a->foo} placeholder'
|
|
],
|
|
[
|
|
'Object {$a->foo} placeholder', 2, 1,
|
|
'Object {$a->foo} placeholder'
|
|
],
|
|
[
|
|
'Trailing $a->bar', 2, 1,
|
|
'Trailing {$a->bar}'
|
|
],
|
|
[
|
|
'Trailing {$a->bar}', 2, 1,
|
|
'Trailing {$a->bar}'
|
|
],
|
|
[
|
|
'Invalid $a-> placeholder', 2, 1,
|
|
'Invalid {$a}-> placeholder'
|
|
], // Weird but BC.
|
|
[
|
|
'<strong>AMOS</strong>', 2, 1,
|
|
'<strong>AMOS</strong>'
|
|
],
|
|
[
|
|
"'Murder!', she wrote", 2, 1,
|
|
"'Murder!', she wrote"
|
|
], // Will be escaped by var_export().
|
|
[
|
|
"\'Murder!\', she wrote", 2, 1,
|
|
"'Murder!', she wrote"
|
|
], // Will be escaped by var_export().
|
|
[
|
|
"\t Trim Hunter \t\t", 2, 1,
|
|
'Trim Hunter'
|
|
],
|
|
[
|
|
'Delete role "$a->role"?', 2, 1,
|
|
'Delete role "{$a->role}"?'
|
|
],
|
|
[
|
|
'Delete role \"$a->role\"?', 2, 1,
|
|
'Delete role "{$a->role}"?'
|
|
],
|
|
[
|
|
'See $CFG->foo', 2, 1,
|
|
'See $CFG->foo'
|
|
],
|
|
[
|
|
"Delete ASCII\0 NULL control character", 2, 1,
|
|
'Delete ASCII NULL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x05 ENQUIRY control character", 2, 1,
|
|
'Delete ASCII ENQUIRY control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x06 ACKNOWLEDGE control character", 2, 1,
|
|
'Delete ASCII ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x07 BELL control character", 2, 1,
|
|
'Delete ASCII BELL control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0E SHIFT OUT control character", 2, 1,
|
|
'Delete ASCII SHIFT OUT control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x0F SHIFT IN control character", 2, 1,
|
|
'Delete ASCII SHIFT IN control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x10 DATA LINK ESCAPE control character", 2, 1,
|
|
'Delete ASCII DATA LINK ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x11 DEVICE CONTROL ONE control character", 2, 1,
|
|
'Delete ASCII DEVICE CONTROL ONE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x12 DEVICE CONTROL TWO control character", 2, 1,
|
|
'Delete ASCII DEVICE CONTROL TWO control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x13 DEVICE CONTROL THREE control character", 2, 1,
|
|
'Delete ASCII DEVICE CONTROL THREE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x14 DEVICE CONTROL FOUR control character", 2, 1,
|
|
'Delete ASCII DEVICE CONTROL FOUR control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x15 NEGATIVE ACKNOWLEDGE control character", 2, 1,
|
|
'Delete ASCII NEGATIVE ACKNOWLEDGE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x16 SYNCHRONOUS IDLE control character", 2, 1,
|
|
'Delete ASCII SYNCHRONOUS IDLE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x1B ESCAPE control character", 2, 1,
|
|
'Delete ASCII ESCAPE control character'
|
|
],
|
|
[
|
|
"Delete ASCII\x7F DELETE control character", 2, 1,
|
|
'Delete ASCII DELETE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x80 PADDING CHARACTER control character", 2, 1,
|
|
'Delete ISO 8859 PADDING CHARACTER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x81 HIGH OCTET PRESET control character", 2, 1,
|
|
'Delete ISO 8859 HIGH OCTET PRESET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x83 NO BREAK HERE control character", 2, 1,
|
|
'Delete ISO 8859 NO BREAK HERE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x84 INDEX control character", 2, 1,
|
|
'Delete ISO 8859 INDEX control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x86 START OF SELECTED AREA control character", 2, 1,
|
|
'Delete ISO 8859 START OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x87 END OF SELECTED AREA control character", 2, 1,
|
|
'Delete ISO 8859 END OF SELECTED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x88 CHARACTER TABULATION SET control character", 2, 1,
|
|
'Delete ISO 8859 CHARACTER TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x89 CHARACTER TABULATION WITH JUSTIFICATION control character", 2, 1,
|
|
'Delete ISO 8859 CHARACTER TABULATION WITH JUSTIFICATION control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8A LINE TABULATION SET control character", 2, 1,
|
|
'Delete ISO 8859 LINE TABULATION SET control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8B PARTIAL LINE FORWARD control character", 2, 1,
|
|
'Delete ISO 8859 PARTIAL LINE FORWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8C PARTIAL LINE BACKWARD control character", 2, 1,
|
|
'Delete ISO 8859 PARTIAL LINE BACKWARD control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8D REVERSE LINE FEED control character", 2, 1,
|
|
'Delete ISO 8859 REVERSE LINE FEED control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8E SINGLE SHIFT TWO control character", 2, 1,
|
|
'Delete ISO 8859 SINGLE SHIFT TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x8F SINGLE SHIFT THREE control character", 2, 1,
|
|
'Delete ISO 8859 SINGLE SHIFT THREE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x90 DEVICE CONTROL STRING control character", 2, 1,
|
|
'Delete ISO 8859 DEVICE CONTROL STRING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x91 PRIVATE USE ONE control character", 2, 1,
|
|
'Delete ISO 8859 PRIVATE USE ONE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x92 PRIVATE USE TWO control character", 2, 1,
|
|
'Delete ISO 8859 PRIVATE USE TWO control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x93 SET TRANSMIT STATE control character", 2, 1,
|
|
'Delete ISO 8859 SET TRANSMIT STATE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x95 MESSAGE WAITING control character", 2, 1,
|
|
'Delete ISO 8859 MESSAGE WAITING control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x96 START OF GUARDED AREA control character", 2, 1,
|
|
'Delete ISO 8859 START OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x97 END OF GUARDED AREA control character", 2, 1,
|
|
'Delete ISO 8859 END OF GUARDED AREA control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x99 SINGLE GRAPHIC CHARACTER INTRODUCER control character", 2, 1,
|
|
'Delete ISO 8859 SINGLE GRAPHIC CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9A SINGLE CHARACTER INTRODUCER control character", 2, 1,
|
|
'Delete ISO 8859 SINGLE CHARACTER INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9B CONTROL SEQUENCE INTRODUCER control character", 2, 1,
|
|
'Delete ISO 8859 CONTROL SEQUENCE INTRODUCER control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9D OPERATING SYSTEM COMMAND control character", 2, 1,
|
|
'Delete ISO 8859 OPERATING SYSTEM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9E PRIVACY MESSAGE control character", 2, 1,
|
|
'Delete ISO 8859 PRIVACY MESSAGE control character'
|
|
],
|
|
[
|
|
"Delete ISO 8859\xC2\x9F APPLICATION PROGRAM COMMAND control character", 2, 1,
|
|
'Delete ISO 8859 APPLICATION PROGRAM COMMAND control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xE2\x80\x8B ZERO WIDTH SPACE control character", 2, 1,
|
|
'Delete Unicode ZERO WIDTH SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBB\xBF ZERO WIDTH NO-BREAK SPACE control character", 2, 1,
|
|
'Delete Unicode ZERO WIDTH NO-BREAK SPACE control character'
|
|
],
|
|
[
|
|
"Delete Unicode\xEF\xBF\xBD REPLACEMENT CHARACTER control character", 2, 1,
|
|
'Delete Unicode REPLACEMENT CHARACTER control character'
|
|
],
|
|
];
|
|
}
|
|
}
|