Merge branch 'MOODLE_32_STABLE-MDL_59834-Indexing_of_personal_messages' of https://github.com/mattporritt/moodle into MOODLE_32_STABLE
This commit is contained in:
@@ -51,6 +51,14 @@ abstract class base_message extends \core_search\base {
|
||||
* @return \core_search\document
|
||||
*/
|
||||
public function get_document($record, $options = array()) {
|
||||
|
||||
// Check if user still exists, before proceeding.
|
||||
$user = \core_user::get_user($options['user1id'], 'deleted');
|
||||
if ($user->deleted == 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get user context.
|
||||
try {
|
||||
$usercontext = \context_user::instance($options['user1id']);
|
||||
} catch (\moodle_exception $ex) {
|
||||
|
||||
@@ -226,4 +226,49 @@ class message_received_search_testcase extends advanced_testcase {
|
||||
$this->assertEquals(\core_search\manager::ACCESS_DELETED, $searcharea->check_access($messageid));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test received deleted user.
|
||||
* Tests the case where a received message for a deleted user
|
||||
* is attempted to be added to the index.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_message_received_deleted_user() {
|
||||
|
||||
// Returns the instance as long as the area is supported.
|
||||
$searcharea = \core_search\manager::get_search_area($this->messagereceivedareaid);
|
||||
$this->assertInstanceOf('\core_message\search\message_received', $searcharea);
|
||||
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$this->preventResetByRollback();
|
||||
$sink = $this->redirectMessages();
|
||||
|
||||
$message = new \core\message\message();
|
||||
$message->courseid = SITEID;
|
||||
$message->userfrom = $user1;
|
||||
$message->userto = $user2;
|
||||
$message->subject = "Test Subject";
|
||||
$message->smallmessage = "Test small messsage";
|
||||
$message->fullmessage = "Test full messsage";
|
||||
$message->fullmessageformat = 0;
|
||||
$message->fullmessagehtml = null;
|
||||
$message->notification = 0;
|
||||
$message->component = "moodle";
|
||||
$message->name = "instantmessage";
|
||||
|
||||
message_send($message);
|
||||
|
||||
$messages = $sink->get_messages();
|
||||
$message = $messages[0];
|
||||
|
||||
// Delete user.
|
||||
delete_user($user2);
|
||||
|
||||
$doc = $searcharea->get_document($message);
|
||||
|
||||
$this->assertFalse($doc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,4 +226,50 @@ class message_sent_search_testcase extends advanced_testcase {
|
||||
$this->assertEquals(\core_search\manager::ACCESS_DELETED, $searcharea->check_access($messageid));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test sent deleted user.
|
||||
* Tests the case where a sent message for a deleted user
|
||||
* is attempted to be added to the index.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_message_sent_deleted_user() {
|
||||
|
||||
// Returns the instance as long as the area is supported.
|
||||
$searcharea = \core_search\manager::get_search_area($this->messagesentareaid);
|
||||
$this->assertInstanceOf('\core_message\search\message_sent', $searcharea);
|
||||
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$this->preventResetByRollback();
|
||||
$sink = $this->redirectMessages();
|
||||
|
||||
$message = new \core\message\message();
|
||||
$message->courseid = SITEID;
|
||||
$message->userfrom = $user1;
|
||||
$message->userto = $user2;
|
||||
$message->subject = "Test Subject";
|
||||
$message->smallmessage = "Test small messsage";
|
||||
$message->fullmessage = "Test full messsage";
|
||||
$message->fullmessageformat = 0;
|
||||
$message->fullmessagehtml = null;
|
||||
$message->notification = 0;
|
||||
$message->component = "moodle";
|
||||
$message->name = "instantmessage";
|
||||
|
||||
message_send($message);
|
||||
|
||||
$messages = $sink->get_messages();
|
||||
$message = $messages[0];
|
||||
|
||||
// Delete user.
|
||||
delete_user($user1);
|
||||
|
||||
$doc = $searcharea->get_document($message);
|
||||
|
||||
$this->assertFalse($doc);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user