diff --git a/mod/assign/externallib.php b/mod/assign/externallib.php
index 846f4678a4e..ce4451e3b6d 100644
--- a/mod/assign/externallib.php
+++ b/mod/assign/externallib.php
@@ -634,6 +634,14 @@ class mod_assign_external extends external_api {
'text' => $assignplugin->get_editor_text($name, $item->id),
'format' => $assignplugin->get_editor_format($name, $item->id)
);
+
+ // Now format the text.
+ foreach ($fileareas as $filearea => $name) {
+ list($editorfieldinfo['text'], $editorfieldinfo['format']) = external_format_text(
+ $editorfieldinfo['text'], $editorfieldinfo['format'], $assign->get_context()->id,
+ $component, $filearea, $item->id);
+ }
+
$plugin['editorfields'][] = $editorfieldinfo;
}
$plugins[] = $plugin;
diff --git a/mod/assign/tests/externallib_test.php b/mod/assign/tests/externallib_test.php
index d24714a98d0..fb87d8da48b 100644
--- a/mod/assign/tests/externallib_test.php
+++ b/mod/assign/tests/externallib_test.php
@@ -1868,7 +1868,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
$data = new stdClass();
$data->onlinetext_editor = array('itemid' => file_get_unused_draft_itemid(),
- 'text' => 'Submission text',
+ 'text' => 'Submission text with a link',
'format' => FORMAT_MOODLE);
$draftidfile = file_get_unused_draft_itemid();
@@ -1908,6 +1908,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
list($assign, $instance, $student1, $student2, $teacher) = $this->create_submission_for_testing_status();
+ $studentsubmission = $assign->get_user_submission($student1->id, true);
$result = mod_assign_external::get_submission_status($assign->get_instance()->id);
// We expect debugging because of the $PAGE object, this won't happen in a normal WS request.
@@ -1944,7 +1945,14 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
foreach ($result['lastattempt']['submission']['plugins'] as $plugin) {
$submissionplugins[$plugin['type']] = $plugin;
}
- $this->assertEquals('Submission text', $submissionplugins['onlinetext']['editorfields'][0]['text']);
+
+ // Format expected online text.
+ $onlinetext = 'Submission text with a link';
+ list($expectedtext, $expectedformat) = external_format_text($onlinetext, FORMAT_HTML, $assign->get_context()->id,
+ 'assignsubmission_onlinetext', ASSIGNSUBMISSION_ONLINETEXT_FILEAREA, $studentsubmission->id);
+
+ $this->assertEquals($expectedtext, $submissionplugins['onlinetext']['editorfields'][0]['text']);
+ $this->assertEquals($expectedformat, $submissionplugins['onlinetext']['editorfields'][0]['format']);
$this->assertEquals('/', $submissionplugins['file']['fileareas'][0]['files'][0]['filepath']);
$this->assertEquals('t.txt', $submissionplugins['file']['fileareas'][0]['files'][0]['filename']);
}
@@ -2016,6 +2024,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
list($assign, $instance, $student1, $student2, $teacher) = $this->create_submission_for_testing_status(true);
+ $studentsubmission = $assign->get_user_submission($student1->id, true);
$this->setUser($teacher);
// Grade and reopen.
@@ -2087,9 +2096,16 @@ class mod_assign_external_testcase extends externallib_advanced_testcase {
foreach ($result['previousattempts'][0]['submission']['plugins'] as $plugin) {
$submissionplugins[$plugin['type']] = $plugin;
}
- $this->assertEquals('Submission text', $submissionplugins['onlinetext']['editorfields'][0]['text']);
+ // Format expected online text.
+ $onlinetext = 'Submission text with a link';
+ list($expectedtext, $expectedformat) = external_format_text($onlinetext, FORMAT_HTML, $assign->get_context()->id,
+ 'assignsubmission_onlinetext', ASSIGNSUBMISSION_ONLINETEXT_FILEAREA, $studentsubmission->id);
+
+ $this->assertEquals($expectedtext, $submissionplugins['onlinetext']['editorfields'][0]['text']);
+ $this->assertEquals($expectedformat, $submissionplugins['onlinetext']['editorfields'][0]['format']);
$this->assertEquals('/', $submissionplugins['file']['fileareas'][0]['files'][0]['filepath']);
$this->assertEquals('t.txt', $submissionplugins['file']['fileareas'][0]['files'][0]['filename']);
+
}
/**