diff --git a/lib/external/externallib.php b/lib/external/externallib.php
index a0526c53379..e0ffd0fcdb6 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 85aed00fb95..03415398747 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
*/