From 0dbfd10c0c580fe7af0e7ff2ebd91fc105a01d43 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Tue, 25 Jun 2024 16:02:42 +0100 Subject: [PATCH] MDL-77834 mod_feedback: consistent HTML decoding of answer data. Restores functionality from 72629ee8c0 that went missing along the way. --- mod/feedback/classes/complete_form.php | 6 +----- mod/feedback/tests/behat/anonymous.feature | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/mod/feedback/classes/complete_form.php b/mod/feedback/classes/complete_form.php index 29e3190abcf..af5cd44a422 100644 --- a/mod/feedback/classes/complete_form.php +++ b/mod/feedback/classes/complete_form.php @@ -301,10 +301,6 @@ class mod_feedback_complete_form extends moodleform { } else { // Add non-group element to the form. if (is_array($element)) { - if ($this->is_frozen() && $element[0] === 'text') { - // Convert 'text' element to 'static' when freezing for better display. - $element = ['static', $element[1], $element[2]]; - } $element = call_user_func_array(array($this->_form, 'createElement'), $element); } $element = $this->_form->addElement($element); @@ -323,7 +319,7 @@ class mod_feedback_complete_form extends moodleform { // Set default value. if ($setdefaultvalue && ($tmpvalue = $this->get_item_value($item))) { - $this->_form->setDefault($element->getName(), s($tmpvalue)); + $this->_form->setDefault($element->getName(), htmlspecialchars_decode($tmpvalue, ENT_QUOTES)); } // Freeze if needed. diff --git a/mod/feedback/tests/behat/anonymous.feature b/mod/feedback/tests/behat/anonymous.feature index 6b51733df17..dd19589e35a 100644 --- a/mod/feedback/tests/behat/anonymous.feature +++ b/mod/feedback/tests/behat/anonymous.feature @@ -251,8 +251,8 @@ Feature: Anonymous feedback And I should see "Non anonymous entries (1)" And I click on "," "link" in the "Username 1" "table_row" And I should see "(Username 1)" - And I should see "usertext" + Then the field "this is a short text answer" matches value "usertext" And I navigate to "Responses" in current page administration And I follow "Response number: 1" And I should see "Response number: 1 (Anonymous)" - Then I should see "anontext" + And the field "this is a short text answer" matches value "anontext"