mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
Merge branch 'MDL-62808_master' of git://github.com/markn86/moodle
This commit is contained in:
commit
a31b3cf30b
3 changed files with 71 additions and 3 deletions
|
@ -1537,8 +1537,6 @@ class core_message_external extends external_api {
|
|||
}
|
||||
}
|
||||
|
||||
$message->useridto = $useridto;
|
||||
|
||||
// We need to get the user from the query.
|
||||
if (empty($userfromfullname)) {
|
||||
// Check for non-reply and support users.
|
||||
|
|
|
@ -688,14 +688,16 @@ function message_get_messages($useridto, $useridfrom = 0, $notifications = -1, $
|
|||
// If the 'useridto' value is empty then we are going to retrieve messages sent by the useridfrom to any user.
|
||||
if (empty($useridto)) {
|
||||
$userfields = get_all_user_name_fields(true, 'u', '', 'userto');
|
||||
$messageuseridtosql = 'u.id as useridto';
|
||||
} else {
|
||||
$userfields = get_all_user_name_fields(true, 'u', '', 'userfrom');
|
||||
$messageuseridtosql = "$useridto as useridto";
|
||||
}
|
||||
|
||||
// Create the SQL we will be using.
|
||||
$messagesql = "SELECT mr.*, $userfields, 0 as notification, '' as contexturl, '' as contexturlname,
|
||||
mua.timecreated as timeusertodeleted, mua2.timecreated as timeread,
|
||||
mua3.timecreated as timeuserfromdeleted
|
||||
mua3.timecreated as timeuserfromdeleted, $messageuseridtosql
|
||||
FROM {messages} mr
|
||||
INNER JOIN {message_conversations} mc
|
||||
ON mc.id = mr.conversationid
|
||||
|
|
|
@ -671,6 +671,74 @@ class core_message_externallib_testcase extends externallib_advanced_testcase {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_messages where we want all messages from a user, sent to any user.
|
||||
*/
|
||||
public function test_get_messages_useridto_all() {
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
|
||||
$this->setUser($user1);
|
||||
|
||||
// Send a message from user 1 to two other users.
|
||||
$this->send_message($user1, $user2, 'some random text 1', 0, 1);
|
||||
$this->send_message($user1, $user3, 'some random text 2', 0, 2);
|
||||
|
||||
// Get messages sent from user 1.
|
||||
$messages = core_message_external::get_messages(0, $user1->id, 'conversations', false, false, 0, 0);
|
||||
$messages = external_api::clean_returnvalue(core_message_external::get_messages_returns(), $messages);
|
||||
|
||||
// Confirm the data is correct.
|
||||
$messages = $messages['messages'];
|
||||
$this->assertCount(2, $messages);
|
||||
|
||||
$message1 = array_shift($messages);
|
||||
$message2 = array_shift($messages);
|
||||
|
||||
$this->assertEquals($user1->id, $message1['useridfrom']);
|
||||
$this->assertEquals($user2->id, $message1['useridto']);
|
||||
|
||||
$this->assertEquals($user1->id, $message2['useridfrom']);
|
||||
$this->assertEquals($user3->id, $message2['useridto']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_messages where we want all messages to a user, sent by any user.
|
||||
*/
|
||||
public function test_get_messages_useridfrom_all() {
|
||||
$this->resetAfterTest();
|
||||
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
|
||||
$this->setUser($user1);
|
||||
|
||||
// Send a message to user 1 from two other users.
|
||||
$this->send_message($user2, $user1, 'some random text 1', 0, 1);
|
||||
$this->send_message($user3, $user1, 'some random text 2', 0, 2);
|
||||
|
||||
// Get messages sent to user 1.
|
||||
$messages = core_message_external::get_messages($user1->id, 0, 'conversations', false, false, 0, 0);
|
||||
$messages = external_api::clean_returnvalue(core_message_external::get_messages_returns(), $messages);
|
||||
|
||||
// Confirm the data is correct.
|
||||
$messages = $messages['messages'];
|
||||
$this->assertCount(2, $messages);
|
||||
|
||||
$message1 = array_shift($messages);
|
||||
$message2 = array_shift($messages);
|
||||
|
||||
$this->assertEquals($user2->id, $message1['useridfrom']);
|
||||
$this->assertEquals($user1->id, $message1['useridto']);
|
||||
|
||||
$this->assertEquals($user3->id, $message2['useridfrom']);
|
||||
$this->assertEquals($user1->id, $message2['useridto']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_blocked_users.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue