diff --git a/h5p/tests/fixtures/basic_essay.h5p b/h5p/tests/fixtures/basic_essay.h5p new file mode 100644 index 00000000000..315ab7cd84b Binary files /dev/null and b/h5p/tests/fixtures/basic_essay.h5p differ diff --git a/mod/h5pactivity/classes/output/result.php b/mod/h5pactivity/classes/output/result.php index fc8b53af5ca..acb8339d8ea 100644 --- a/mod/h5pactivity/classes/output/result.php +++ b/mod/h5pactivity/classes/output/result.php @@ -150,7 +150,7 @@ class result implements renderable, templatable { 'subcontent' => $result->subcontent, 'timecreated' => $result->timecreated, 'interactiontype' => $result->interactiontype, - 'description' => format_string($result->description), + 'description' => strip_tags($result->description), 'rawscore' => $result->rawscore, 'maxscore' => $result->maxscore, 'duration' => $result->duration, diff --git a/mod/h5pactivity/classes/output/result/fillin.php b/mod/h5pactivity/classes/output/result/fillin.php index 0439845ce36..35d33bbfea3 100644 --- a/mod/h5pactivity/classes/output/result/fillin.php +++ b/mod/h5pactivity/classes/output/result/fillin.php @@ -38,19 +38,6 @@ use stdClass; */ class fillin extends result { - /** - * Export this data so it can be used as the context for a mustache template. - * - * @param renderer_base $output - * @return stdClass - */ - public function export_for_template(renderer_base $output): stdClass { - $data = parent::export_for_template($output); - $data->content = $this->result->description; - $data->description = get_string('result_fill-in', 'mod_h5pactivity'); - return $data; - } - /** * Return the options data structure. * diff --git a/mod/h5pactivity/classes/output/result/longfillin.php b/mod/h5pactivity/classes/output/result/longfillin.php index 7297132cd5b..af1f8ad9ab7 100644 --- a/mod/h5pactivity/classes/output/result/longfillin.php +++ b/mod/h5pactivity/classes/output/result/longfillin.php @@ -46,8 +46,13 @@ class longfillin extends result { */ public function export_for_template(renderer_base $output): stdClass { $data = parent::export_for_template($output); - $data->content = reset($this->response); + $userresponse = reset($this->response); + $data->content = format_text($userresponse, FORMAT_PLAIN); $data->track = true; + // Long fill-in is used for Essay type exercices. H5P adds + // extra characters to the description in all fill-in interactions + // but in the essay questions is unnecesary. + $data->description = preg_replace('/__________$/', '', $data->description); return $data; } } diff --git a/mod/h5pactivity/templates/local/result/header.mustache b/mod/h5pactivity/templates/local/result/header.mustache index 21a55e64857..8137f30337a 100644 --- a/mod/h5pactivity/templates/local/result/header.mustache +++ b/mod/h5pactivity/templates/local/result/header.mustache @@ -40,5 +40,5 @@ }}
" diff --git a/mod/h5pactivity/tests/behat/result_longfillin.feature b/mod/h5pactivity/tests/behat/result_longfillin.feature new file mode 100644 index 00000000000..405d5709a0d --- /dev/null +++ b/mod/h5pactivity/tests/behat/result_longfillin.feature @@ -0,0 +1,46 @@ +@mod @mod_h5pactivity @core_h5p @_file_upload @_switch_iframe @javascript +Feature: View essay attempt report + In order to let users to review an essay attempt + As a user + I need to view long fill in interactions in the report + + Background: + Given the following "users" exist: + | username | firstname | lastname | email | + | student1 | Student | 1 | student1@example.com | + And the following "courses" exist: + | fullname | shortname | category | + | Course 1 | C1 | 0 | + And the following "course enrolments" exist: + | user | course | role | + | student1 | C1 | student | + And I log in as "admin" + # No HTML should appear even with formatstringstriptags disabled. + And I set the following administration settings values: + | formatstringstriptags | 0 | + And I am on "Course 1" course homepage with editing mode on + And I add a "H5P" to section "1" + And I set the following fields to these values: + | Name | Awesome H5P package | + | Description | Description | + | Grading method | Average grade | + And I upload "h5p/tests/fixtures/basic_essay.h5p" file to "Package file" filemanager + And I click on "Save and display" "button" + And I log out + + Scenario: View attempt essay content + # Do an attempt. + Given I log in as "student1" + And I am on "Course 1" course homepage + And I follow "Awesome H5P package" + And I switch to "h5p-player" class iframe + And I switch to "h5p-iframe" class iframe + And I set the field with xpath "//textarea" to "This is a smurfing smurf" + And I click on "Check" "button" in the ".h5p-question-buttons" "css_element" + And I switch to the main frame + And I reload the page + # Check attempt. + When I follow "View my attempts" + And I follow "View report" + Then I should see "This is a smurfing smurf" + And I should not see "smurf"