diff --git a/mod/quiz/classes/external/submit_question_version.php b/mod/quiz/classes/external/submit_question_version.php index e640f98849afe..bc6a4da841e87 100644 --- a/mod/quiz/classes/external/submit_question_version.php +++ b/mod/quiz/classes/external/submit_question_version.php @@ -28,8 +28,6 @@ use core_external\external_single_structure; use core_external\external_value; use mod_quiz\quiz_settings; -use mod_quiz\structure; -use stdClass; /** * External api for changing the question version in the quiz. diff --git a/mod/quiz/tests/event/events_test.php b/mod/quiz/tests/event/events_test.php index a13a48dbc3919..381e5139cd6ae 100644 --- a/mod/quiz/tests/event/events_test.php +++ b/mod/quiz/tests/event/events_test.php @@ -28,6 +28,7 @@ use mod_quiz\quiz_attempt; use mod_quiz\quiz_settings; use context_module; +use mod_quiz\external\submit_question_version; /** * Unit tests for quiz events. @@ -68,6 +69,10 @@ protected function prepare_quiz() { $saq = $questiongenerator->create_question('shortanswer', null, ['category' => $cat->id]); $numq = $questiongenerator->create_question('numerical', null, ['category' => $cat->id]); + // Update the numq question so it has multiple versions. Needed to test + // the version updated event. + $questiongenerator->update_question($numq, null, ['name' => 'Second version of numq']); + // Add them to the quiz. quiz_add_quiz_question($saq->id, $quiz); quiz_add_quiz_question($numq->id, $quiz); @@ -1202,6 +1207,29 @@ public function test_slot_mark_updated(): void { $this->assertEventContextNotUsed($event); } + /** + * Test the slot version updated event. + * + * @covers \mod_quiz\external\submit_question_version + */ + public function test_slot_version_updated(): void { + $quizobj = $this->prepare_quiz(); + $this->setAdminUser(); + + $quizobj->preload_questions(); + [, $numqslotid] = array_column($quizobj->get_questions(null, false), 'slotid'); + + $sink = $this->redirectEvents(); + submit_question_version::execute($numqslotid, 2); + $events = $sink->get_events(); + $event = reset($events); + + // Check that the event data is valid. + $this->assertInstanceOf('\mod_quiz\event\slot_version_updated', $event); + $this->assertEquals($quizobj->get_context(), $event->get_context()); + $this->assertEventContextNotUsed($event); + } + /** * Test quiz_grade_item_created. *