Merge branch 'MDL-56090-master-fix' of github.com:andrewnicols/moodle

This commit is contained in:
Eloy Lafuente (stronk7) 2016-10-26 10:38:36 +02:00
commit c64230234f
2 changed files with 17 additions and 14 deletions

View file

@ -49,14 +49,17 @@ class helper {
$sort = 'timecreated ASC') { $sort = 'timecreated ASC') {
global $DB; global $DB;
$sql = "SELECT id, useridfrom, useridto, subject, fullmessage, fullmessagehtml, fullmessageformat, $messageid = $DB->sql_concat("'message_'", 'id');
$messagereadid = $DB->sql_concat("'messageread_'", 'id');
$sql = "SELECT {$messageid} AS fakeid, id, useridfrom, useridto, subject, fullmessage, fullmessagehtml, fullmessageformat,
smallmessage, notification, timecreated, 0 as timeread smallmessage, notification, timecreated, 0 as timeread
FROM {message} m FROM {message} m
WHERE ((useridto = ? AND useridfrom = ? AND timeusertodeleted = ?) WHERE ((useridto = ? AND useridfrom = ? AND timeusertodeleted = ?)
OR (useridto = ? AND useridfrom = ? AND timeuserfromdeleted = ?)) OR (useridto = ? AND useridfrom = ? AND timeuserfromdeleted = ?))
AND notification = 0 AND notification = 0
UNION ALL UNION ALL
SELECT id, useridfrom, useridto, subject, fullmessage, fullmessagehtml, fullmessageformat, SELECT {$messagereadid} AS fakeid, id, useridfrom, useridto, subject, fullmessage, fullmessagehtml, fullmessageformat,
smallmessage, notification, timecreated, timeread smallmessage, notification, timecreated, timeread
FROM {message_read} mr FROM {message_read} mr
WHERE ((useridto = ? AND useridfrom = ? AND timeusertodeleted = ?) WHERE ((useridto = ? AND useridfrom = ? AND timeusertodeleted = ?)

View file

@ -321,33 +321,34 @@ class core_message_events_testcase extends advanced_testcase {
$message->timeusertodeleted = 0; $message->timeusertodeleted = 0;
$message->timecreated = 1; $message->timecreated = 1;
$messages = [];
// Send this a few times. // Send this a few times.
$messageid1 = $DB->insert_record('message', $message); $messages[] = $DB->insert_record('message', $message);
$message->timecreated++; $message->timecreated++;
$messageid2 = $DB->insert_record('message', $message); $messages[] = $DB->insert_record('message', $message);
$message->timecreated++; $message->timecreated++;
$messageid3 = $DB->insert_record('message', $message); $messages[] = $DB->insert_record('message', $message);
$message->timecreated++; $message->timecreated++;
$messageid4 = $DB->insert_record('message', $message); $messages[] = $DB->insert_record('message', $message);
// Create a read message. // Create a read message.
$message->timeread = time(); $message->timeread = time();
// Send this a few times. // Send this a few times.
$message->timecreated++; $message->timecreated++;
$messageid5 = $DB->insert_record('message_read', $message); $messages[] = $DB->insert_record('message_read', $message);
$message->timecreated++; $message->timecreated++;
$messageid6 = $DB->insert_record('message_read', $message); $messages[] = $DB->insert_record('message_read', $message);
$message->timecreated++; $message->timecreated++;
$messageid7 = $DB->insert_record('message_read', $message); $messages[] = $DB->insert_record('message_read', $message);
$message->timecreated++; $message->timecreated++;
$messageid8 = $DB->insert_record('message_read', $message); $messages[] = $DB->insert_record('message_read', $message);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -358,16 +359,15 @@ class core_message_events_testcase extends advanced_testcase {
$this->assertEquals(8, count($events)); $this->assertEquals(8, count($events));
// Check that the event data is valid. // Check that the event data is valid.
$i = 1; $i = 0;
foreach ($events as $event) { foreach ($events as $event) {
$table = ($i > 4) ? 'message_read' : 'message'; $table = ($i > 3) ? 'message_read' : 'message';
$messageid = 'messageid' . $i;
$this->assertInstanceOf('\core\event\message_deleted', $event); $this->assertInstanceOf('\core\event\message_deleted', $event);
$this->assertEquals($message->useridfrom, $event->userid); $this->assertEquals($message->useridfrom, $event->userid);
$this->assertEquals($message->useridto, $event->relateduserid); $this->assertEquals($message->useridto, $event->relateduserid);
$this->assertEquals($table, $event->other['messagetable']); $this->assertEquals($table, $event->other['messagetable']);
$this->assertEquals($$messageid, $event->other['messageid']); $this->assertEquals($messages[$i], $event->other['messageid']);
$this->assertEquals($message->useridfrom, $event->other['useridfrom']); $this->assertEquals($message->useridfrom, $event->other['useridfrom']);
$this->assertEquals($message->useridto, $event->other['useridto']); $this->assertEquals($message->useridto, $event->other['useridto']);