From 1c9732c1845a5d20432728a81bb6d3749dc4e674 Mon Sep 17 00:00:00 2001 From: Anisa <kusumadewi@itc.rwth-aachen.de> Date: Tue, 23 May 2023 11:32:47 +0200 Subject: [PATCH] finish the provider test --- tests/privacy/provider_test.php | 57 ++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/tests/privacy/provider_test.php b/tests/privacy/provider_test.php index d5f6094..276431c 100644 --- a/tests/privacy/provider_test.php +++ b/tests/privacy/provider_test.php @@ -127,6 +127,13 @@ class provider_test extends provider_testcase { $this->resetAfterTest(); + $component = 'mod_pdfannotator'; + + $usercontext1 = \context_user::instance($this->user->id); + $userlist1 = new \core_privacy\local\request\userlist($usercontext1, $component); + provider::get_users_in_context($userlist1); + $this->assertCount(1, $userlist1); + // Create a comment for the question above. $answer = new stdClass(); $answer->pdfannotatorid = $this->pdffile->id; @@ -171,6 +178,54 @@ class provider_test extends provider_testcase { // Delete using delete_data_for_user. provider::delete_data_for_users($userlist); - + list($userinsql, $userinparams) = $DB->get_in_or_equal($userlist->get_userids(), SQL_PARAMS_NAMED); + + $annotatorid = $this->pdffile->id; + + // Combine instance + user sql. + $params = array_merge(['pdfannotatorid' => $annotatorid], $userinparams); + $sql = "pdfannotatorid = :pdfannotatorid AND userid {$userinsql}"; + + // Count subscriptions. + $annotations = $DB->get_records('pdfannotator_annotations', ['pdfannotatorid' => $annotatorid]); + $annotationids = array_column($annotations, 'id'); + list($subinsql, $subinparams) = $DB->get_in_or_equal($annotationids, SQL_PARAMS_NAMED); + + $count_subs = $DB->count_records_sql("SELECT * + FROM {pdfannotator_subscriptions} sub + WHERE sub.userid {$userinsql} + AND sub.annotationid {$subinsql}", + array_merge($userinparams, $subinparams)); + $this->assertCount(0, $count_subs); + + // Count votes. + $comments = $DB->get_records('pdfannotator_comments', ['pdfannotatorid' => $annotatorid]); + $commentsids = array_column($comments, 'id'); + list($commentinsql, $commentinparams) = $DB->get_in_or_equal($commentsids, SQL_PARAMS_NAMED); + + $count_votes = $DB->count_records_sql("SELECT * + FORM {pdfannotator_votes} votes + WHERE vote.userid {$userinsql} + AND vote.commentid {$commentinsql}", + array_merge($userinparams, $commentinparams)); + $this->assertCount(0, $count_votes); + + // Count annotations, reports, and comments. + $count_annotations = count($DB->get_records_select('pdfannotator_annotations', $sql, $params)); + $this->assertCount(0, $count_annotations); + $count_reports = count($DB->get_records_select('pdfannotator_reports', $sql, $params)); + $this->assertCount(0, $count_reports); + $count_comments = count($DB->get_records_select('pdfannotator_comments', $sql, $params)); + $this->assertCount(0, $count_comments); + + // Count pictures in comments. + $count_pics = $DB->count_records_sql("SELECT * + FORM {files} imgs + WHERE imgs.component = 'mod_pdfannotator' + AND imgs.filearea = 'post' + AND imgs.userid {$userinsql} + AND imgs.itemid {$commentinsql}", + array_merge($userinparams, $commentinparams)); + $this->assertCount(0, $count_pics); } } \ No newline at end of file -- GitLab