mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +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.
|
// We need to get the user from the query.
|
||||||
if (empty($userfromfullname)) {
|
if (empty($userfromfullname)) {
|
||||||
// Check for non-reply and support users.
|
// 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 the 'useridto' value is empty then we are going to retrieve messages sent by the useridfrom to any user.
|
||||||
if (empty($useridto)) {
|
if (empty($useridto)) {
|
||||||
$userfields = get_all_user_name_fields(true, 'u', '', 'userto');
|
$userfields = get_all_user_name_fields(true, 'u', '', 'userto');
|
||||||
|
$messageuseridtosql = 'u.id as useridto';
|
||||||
} else {
|
} else {
|
||||||
$userfields = get_all_user_name_fields(true, 'u', '', 'userfrom');
|
$userfields = get_all_user_name_fields(true, 'u', '', 'userfrom');
|
||||||
|
$messageuseridtosql = "$useridto as useridto";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the SQL we will be using.
|
// Create the SQL we will be using.
|
||||||
$messagesql = "SELECT mr.*, $userfields, 0 as notification, '' as contexturl, '' as contexturlname,
|
$messagesql = "SELECT mr.*, $userfields, 0 as notification, '' as contexturl, '' as contexturlname,
|
||||||
mua.timecreated as timeusertodeleted, mua2.timecreated as timeread,
|
mua.timecreated as timeusertodeleted, mua2.timecreated as timeread,
|
||||||
mua3.timecreated as timeuserfromdeleted
|
mua3.timecreated as timeuserfromdeleted, $messageuseridtosql
|
||||||
FROM {messages} mr
|
FROM {messages} mr
|
||||||
INNER JOIN {message_conversations} mc
|
INNER JOIN {message_conversations} mc
|
||||||
ON mc.id = mr.conversationid
|
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.
|
* Test get_blocked_users.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue