From bf6239eddb82a4d70c83b5b51e4727345a29d0a2 Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Tue, 12 Apr 2016 16:55:21 +0800 Subject: [PATCH] MDL-53779 external: get_string and get_strings use PARAM_RAW For the string parameters and translated strings. --- lib/external/externallib.php | 8 +++--- lib/external/tests/external_test.php | 43 ++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/lib/external/externallib.php b/lib/external/externallib.php index 6def1cf5f18..2e2a6630922 100644 --- a/lib/external/externallib.php +++ b/lib/external/externallib.php @@ -92,7 +92,7 @@ class core_external extends external_api { new external_single_structure(array( 'name' => new external_value(PARAM_ALPHANUMEXT, 'param name - if the string expect only one $a parameter then don\'t send this field, just send the value.', VALUE_OPTIONAL), - 'value' => new external_value(PARAM_TEXT,'param value'))), + 'value' => new external_value(PARAM_RAW,'param value'))), 'the definition of a string param (i.e. {$a->name})', VALUE_DEFAULT, array() ) ) @@ -124,7 +124,7 @@ class core_external extends external_api { * @since Moodle 2.4 */ public static function get_string_returns() { - return new external_value(PARAM_TEXT, 'translated string'); + return new external_value(PARAM_RAW, 'translated string'); } /** @@ -144,7 +144,7 @@ class core_external extends external_api { new external_single_structure(array( 'name' => new external_value(PARAM_ALPHANUMEXT, 'param name - if the string expect only one $a parameter then don\'t send this field, just send the value.', VALUE_OPTIONAL), - 'value' => new external_value(PARAM_TEXT, 'param value'))), + 'value' => new external_value(PARAM_RAW, 'param value'))), 'the definition of a string param (i.e. {$a->name})', VALUE_DEFAULT, array() )) ) @@ -198,7 +198,7 @@ class core_external extends external_api { 'stringid' => new external_value(PARAM_STRINGID, 'string id'), 'component' => new external_value(PARAM_COMPONENT, 'string component'), 'lang' => new external_value(PARAM_LANG, 'lang'), - 'string' => new external_value(PARAM_TEXT, 'translated string')) + 'string' => new external_value(PARAM_RAW, 'translated string')) )); } diff --git a/lib/external/tests/external_test.php b/lib/external/tests/external_test.php index 4eba5344b48..4ff82b0282c 100644 --- a/lib/external/tests/external_test.php +++ b/lib/external/tests/external_test.php @@ -78,6 +78,26 @@ class core_external_testcase extends externallib_advanced_testcase { array('name' => 'id', 'value' => $service->id))); } + /** + * Test get_string with HTML. + */ + public function test_get_string_containing_html() { + $result = core_external::get_string('registrationinfo'); + $actual = external_api::clean_returnvalue(core_external::get_string_returns(), $result); + $expected = get_string('registrationinfo', 'moodle'); + $this->assertSame($expected, $actual); + } + + /** + * Test get_string with arguments containing HTML. + */ + public function test_get_string_with_args_containing_html() { + $result = core_external::get_string('added', 'moodle', null, [['value' => 'Test']]); + $actual = external_api::clean_returnvalue(core_external::get_string_returns(), $result); + $expected = get_string('added', 'moodle', 'Test'); + $this->assertSame($expected, $actual); + } + /** * Test get_strings */ @@ -114,6 +134,29 @@ class core_external_testcase extends externallib_advanced_testcase { } } + /** + * Test get_strings with HTML. + */ + public function test_get_strings_containing_html() { + $result = core_external::get_strings([['stringid' => 'registrationinfo'], ['stringid' => 'loginaspasswordexplain']]); + $actual = external_api::clean_returnvalue(core_external::get_strings_returns(), $result); + $this->assertSame(get_string('registrationinfo', 'moodle'), $actual[0]['string']); + $this->assertSame(get_string('loginaspasswordexplain', 'moodle'), $actual[1]['string']); + } + + /** + * Test get_strings with arguments containing HTML. + */ + public function test_get_strings_with_args_containing_html() { + $result = core_external::get_strings([ + ['stringid' => 'added', 'stringparams' => [['value' => 'Test']]], + ['stringid' => 'loggedinas', 'stringparams' => [['value' => 'Test']]]] + ); + $actual = external_api::clean_returnvalue(core_external::get_strings_returns(), $result); + $this->assertSame(get_string('added', 'moodle', 'Test'), $actual[0]['string']); + $this->assertSame(get_string('loggedinas', 'moodle', 'Test'), $actual[1]['string']); + } + /** * Test get_component_strings */ -- 2.43.0