From 296fd70a2c191578a9f39f81f5121019de0ac4fd Mon Sep 17 00:00:00 2001 From: Meirza Date: Thu, 15 Dec 2022 12:13:24 +0700 Subject: [PATCH] MDL-75914 webservice: Added fake URL to avoid debugging output. Webservice doesn't need to set the page URL. Hence, any function that requires a page URL will raise debugging output. The patch fixes it by adding a fake URL for the webservice. The patch also removed assertDebuggingCalled because it is no longer needed. --- mod/quiz/classes/external.php | 5 +++++ mod/quiz/tests/external/external_test.php | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mod/quiz/classes/external.php b/mod/quiz/classes/external.php index 2520e91fe59..e621246fb84 100644 --- a/mod/quiz/classes/external.php +++ b/mod/quiz/classes/external.php @@ -1050,6 +1050,7 @@ class mod_quiz_external extends external_api { * @throws moodle_quiz_exceptions */ public static function get_attempt_data($attemptid, $page, $preflightdata = array()) { + global $PAGE; $warnings = array(); @@ -1068,6 +1069,10 @@ class mod_quiz_external extends external_api { $nextpage = $params['page'] + 1; } + // TODO: Remove the code once the long-term solution (MDL-76728) has been applied. + // Set a default URL to stop the debugging output. + $PAGE->set_url('/fake/url'); + $result = array(); $result['attempt'] = $attemptobj->get_attempt(); $result['messages'] = $messages; diff --git a/mod/quiz/tests/external/external_test.php b/mod/quiz/tests/external/external_test.php index 90dd1d39d47..30e4241d43a 100644 --- a/mod/quiz/tests/external/external_test.php +++ b/mod/quiz/tests/external/external_test.php @@ -1321,7 +1321,6 @@ class external_test extends externallib_advanced_testcase { // Now, get the summary. $result = mod_quiz_external::get_attempt_summary($attempt->id); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); - $this->assertDebuggingCalled(); // Expect $PAGE->set_url debugging. // Check it's marked as completed only the first one. $this->assertEquals('complete', $result['questions'][0]['state']);