MDL-63564 mod_quiz: Added delete_quizaccess_data_for_users to polyfill

This issue is a part of the MDL-62560 Epic.
This commit is contained in:
Shamim Rezaie
2018-11-02 14:40:38 +08:00
committed by Mihail Geshoski
parent e1dca20127
commit 2a34d4b3fd
2 changed files with 40 additions and 2 deletions
@@ -23,6 +23,8 @@
*/
namespace mod_quiz\privacy;
use core_privacy\local\request\approved_userlist;
defined('MOODLE_INTERNAL') || die();
/**
@@ -63,4 +65,13 @@ trait legacy_quizaccess_polyfill {
public static function delete_quizaccess_data_for_user(\quiz $quiz, \stdClass $user) {
static::_delete_quizaccess_data_for_user($quiz, $user);
}
/**
* Delete all user data for the specified users, in the specified context.
*
* @param approved_userlist $userlist The approved context and user information to delete information for.
*/
public static function delete_quizaccess_data_for_users(approved_userlist $userlist) {
static::_delete_quizaccess_data_for_users($userlist);
}
}
@@ -73,7 +73,7 @@ class core_privacy_legacy_quizaccess_polyfill_test extends advanced_testcase {
}
/**
* Test the _delete_quizaccess_for_context shim.
* Test the _delete_quizaccess_for_user shim.
*/
public function test_delete_quizaccess_for_user() {
$context = context_system::instance();
@@ -89,6 +89,23 @@ class core_privacy_legacy_quizaccess_polyfill_test extends advanced_testcase {
test_privacy_legacy_quizaccess_polyfill_provider::$mock = $mock;
test_privacy_legacy_quizaccess_polyfill_provider::delete_quizaccess_data_for_user($quiz, $user);
}
/**
* Test the _delete_quizaccess_for_users shim.
*/
public function test_delete_quizaccess_for_users() {
$context = $this->createMock(context_module::class);
$user = (object) [];
$approveduserlist = new \core_privacy\local\request\approved_userlist($context, 'mod_quiz', [$user]);
$mock = $this->createMock(test_privacy_legacy_quizaccess_polyfill_mock_wrapper::class);
$mock->expects($this->once())
->method('get_return_value')
->with('_delete_quizaccess_data_for_users', [$approveduserlist]);
test_privacy_legacy_quizaccess_polyfill_provider::$mock = $mock;
test_privacy_legacy_quizaccess_polyfill_provider::delete_quizaccess_data_for_users($approveduserlist);
}
}
/**
@@ -99,7 +116,8 @@ class core_privacy_legacy_quizaccess_polyfill_test extends advanced_testcase {
*/
class test_privacy_legacy_quizaccess_polyfill_provider implements
\core_privacy\local\metadata\provider,
\mod_quiz\privacy\quizaccess_provider {
\mod_quiz\privacy\quizaccess_provider,
\mod_quiz\privacy\quizaccess_user_provider {
use \mod_quiz\privacy\legacy_quizaccess_polyfill;
use \core_privacy\local\legacy_polyfill;
@@ -138,6 +156,15 @@ class test_privacy_legacy_quizaccess_polyfill_provider implements
static::$mock->get_return_value(__FUNCTION__, func_get_args());
}
/**
* Delete all user data for the specified users, in the specified context.
*
* @param \core_privacy\local\request\approved_userlist $userlist
*/
protected static function _delete_quizaccess_data_for_users($userlist) {
static::$mock->get_return_value(__FUNCTION__, func_get_args());
}
/**
* Returns metadata about this plugin.
*