mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
MDL-36941 core: convert existing api to use new table structure
Also deprecated the following functions - 1. message_move_userfrom_unread2read - It is not necessary for us to mark a message as read on user deletion. 2. message_get_blocked_users - Horrible logic used to determine if a user is blocked via reference on some randomly chosen 'isblocked' variable. 3. message_get_contacts - The same as above. This can be done in a much nicer way. 4. message_mark_message_read - We want two functions to do this to avoid confusing messages and notifications. 5. message_can_delete_message - This assumed the variable $message contained the 'useridto' property, which was present in the old table structure. We do not want future usages where a query is done on the new table and is simply passed as this won't contain this property. 6. message_delete_message - Same as above.
This commit is contained in:
parent
4cd439887a
commit
883ce42127
29 changed files with 1714 additions and 1096 deletions
|
@ -167,7 +167,7 @@ class core_message_testcase extends advanced_testcase {
|
|||
$emails = $sink->get_messages();
|
||||
$this->assertCount(1, $emails);
|
||||
$email = reset($emails);
|
||||
$recordexists = $DB->record_exists('message', array('id' => $messageid));
|
||||
$recordexists = $DB->record_exists('messages', array('id' => $messageid));
|
||||
$this->assertSame(true, $recordexists);
|
||||
$this->assertSame($user1->email, $email->from);
|
||||
$this->assertSame($user2->email, $email->to);
|
||||
|
@ -207,7 +207,7 @@ class core_message_testcase extends advanced_testcase {
|
|||
$emails = $sink->get_messages();
|
||||
$this->assertCount(1, $emails);
|
||||
$email = reset($emails);
|
||||
$recordexists = $DB->record_exists('message', array('id' => $messageid));
|
||||
$recordexists = $DB->record_exists('messages', array('id' => $messageid));
|
||||
$this->assertSame(true, $recordexists);
|
||||
$this->assertSame($user1->email, $email->from);
|
||||
$this->assertSame($user2->email, $email->to);
|
||||
|
|
|
@ -218,14 +218,15 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$this->assertEquals($message->smallmessage, $savedmessage->smallmessage);
|
||||
$this->assertEquals($message->smallmessage, $savedmessage->smallmessage);
|
||||
$this->assertEquals($message->notification, $savedmessage->notification);
|
||||
$this->assertNull($savedmessage->contexturl);
|
||||
$this->assertNull($savedmessage->contexturlname);
|
||||
$this->assertTimeCurrent($savedmessage->timecreated);
|
||||
$record = $DB->get_record('message_read', array('id' => $savedmessage->id), '*', MUST_EXIST);
|
||||
$record = $DB->get_record('messages', array('id' => $savedmessage->id), '*', MUST_EXIST);
|
||||
unset($savedmessage->useridto);
|
||||
unset($savedmessage->notification);
|
||||
$this->assertEquals($record, $savedmessage);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message', array()));
|
||||
$DB->delete_records('message_read', array());
|
||||
$this->assertTrue($DB->record_exists('message_user_actions', array('userid' => $user2->id, 'messageid' => $messageid,
|
||||
'action' => \core_message\api::MESSAGE_ACTION_READ)));
|
||||
$DB->delete_records('messages', array());
|
||||
|
||||
$message = new \core\message\message();
|
||||
$message->courseid = 1;
|
||||
|
@ -239,8 +240,7 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$message->fullmessagehtml = '<p>message body</p>';
|
||||
$message->smallmessage = 'small message';
|
||||
$message->notification = '0';
|
||||
$message->contexturl = new moodle_url('/');
|
||||
$message->contexturlname = 'front';
|
||||
|
||||
$sink = $this->redirectMessages();
|
||||
$messageid = message_send($message);
|
||||
$savedmessages = $sink->get_messages();
|
||||
|
@ -255,14 +255,15 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$this->assertEquals($message->smallmessage, $savedmessage->smallmessage);
|
||||
$this->assertEquals($message->smallmessage, $savedmessage->smallmessage);
|
||||
$this->assertEquals($message->notification, $savedmessage->notification);
|
||||
$this->assertEquals($message->contexturl->out(), $savedmessage->contexturl);
|
||||
$this->assertEquals($message->contexturlname, $savedmessage->contexturlname);
|
||||
$this->assertTimeCurrent($savedmessage->timecreated);
|
||||
$record = $DB->get_record('message_read', array('id' => $savedmessage->id), '*', MUST_EXIST);
|
||||
$record = $DB->get_record('messages', array('id' => $savedmessage->id), '*', MUST_EXIST);
|
||||
unset($savedmessage->useridto);
|
||||
unset($savedmessage->notification);
|
||||
$this->assertEquals($record, $savedmessage);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message', array()));
|
||||
$DB->delete_records('message_read', array());
|
||||
$this->assertTrue($DB->record_exists('message_user_actions', array('userid' => $user2->id, 'messageid' => $messageid,
|
||||
'action' => \core_message\api::MESSAGE_ACTION_READ)));
|
||||
$DB->delete_records('messages', array());
|
||||
|
||||
// Test phpunit problem detection.
|
||||
|
||||
|
@ -297,8 +298,7 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
}
|
||||
$this->assertCount(0, $sink->get_messages());
|
||||
$sink->close();
|
||||
$this->assertFalse($DB->record_exists('message', array()));
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$this->assertFalse($DB->record_exists('messages', array()));
|
||||
|
||||
// Invalid users.
|
||||
|
||||
|
@ -420,10 +420,11 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('messages', array());
|
||||
$DB->delete_records('message_user_actions', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -447,10 +448,12 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message_read', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message', array()));
|
||||
$DB->delete_records('message_read', array());
|
||||
$this->assertTrue($DB->record_exists('message_user_actions', array('userid' => $user2->id, 'messageid' => $messageid,
|
||||
'action' => \core_message\api::MESSAGE_ACTION_READ)));
|
||||
$DB->delete_records('messages', array());
|
||||
$DB->delete_records('message_user_actions', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(2, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -475,14 +478,12 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message_read', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('notifications', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message', array()));
|
||||
$DB->delete_records('message_read', array());
|
||||
$this->assertFalse($DB->record_exists('messages', array()));
|
||||
$DB->delete_records('notifications', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(2, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
$this->assertInstanceOf('\core\event\message_viewed', $events[1]);
|
||||
$this->assertCount(0, $events);
|
||||
$eventsink->clear();
|
||||
|
||||
// Will always use the pop-up processor.
|
||||
|
@ -507,10 +508,11 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('messages', array());
|
||||
$DB->delete_records('message_user_actions', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -537,15 +539,15 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$emails = $sink->get_messages();
|
||||
$this->assertCount(1, $emails);
|
||||
$email = reset($emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$this->assertSame($user1->email, $email->from);
|
||||
$this->assertSame($user2->email, $email->to);
|
||||
$this->assertSame($message->subject, $email->subject);
|
||||
$this->assertNotEmpty($email->header);
|
||||
$this->assertNotEmpty($email->body);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message_read', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('message_user_actions', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -570,7 +572,7 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$emails = $sink->get_messages();
|
||||
$this->assertCount(1, $emails);
|
||||
$email = reset($emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$working = $DB->get_record('message_working', array('unreadmessageid' => $messageid), '*', MUST_EXIST);
|
||||
$this->assertSame($user1->email, $email->from);
|
||||
$this->assertSame($user2->email, $email->to);
|
||||
|
@ -578,8 +580,9 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$this->assertNotEmpty($email->header);
|
||||
$this->assertNotEmpty($email->body);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('messages', array());
|
||||
$DB->delete_records('message_user_actions', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -603,11 +606,11 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$working = $DB->get_record('message_working', array('unreadmessageid' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('messages', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -641,10 +644,10 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$DB->delete_records('message', array());
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$DB->delete_records('messages', array());
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(0, $events);
|
||||
$eventsink->clear();
|
||||
|
@ -674,9 +677,9 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$messageid = message_send($message);
|
||||
$emails = $sink->get_messages();
|
||||
$this->assertCount(0, $emails);
|
||||
$savedmessage = $DB->get_record('message', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$savedmessage = $DB->get_record('messages', array('id' => $messageid), '*', MUST_EXIST);
|
||||
$sink->clear();
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
|
@ -689,8 +692,8 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$transaction = $DB->start_delegated_transaction();
|
||||
message_send($message);
|
||||
message_send($message);
|
||||
$this->assertCount(3, $DB->get_records('message'));
|
||||
$this->assertFalse($DB->record_exists('message_read', array()));
|
||||
$this->assertCount(3, $DB->get_records('messages'));
|
||||
$this->assertFalse($DB->record_exists('message_user_actions', array()));
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(0, $events);
|
||||
$transaction->allow_commit();
|
||||
|
@ -699,14 +702,13 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[1]);
|
||||
$eventsink->clear();
|
||||
$DB->delete_records('message', array());
|
||||
$DB->delete_records('message_read', array());
|
||||
$DB->delete_records('messages', array());
|
||||
|
||||
$transaction = $DB->start_delegated_transaction();
|
||||
message_send($message);
|
||||
message_send($message);
|
||||
$this->assertCount(2, $DB->get_records('message'));
|
||||
$this->assertCount(0, $DB->get_records('message_read'));
|
||||
$this->assertCount(2, $DB->get_records('messages'));
|
||||
$this->assertCount(0, $DB->get_records('message_user_actions'));
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(0, $events);
|
||||
try {
|
||||
|
@ -716,16 +718,14 @@ class core_messagelib_testcase extends advanced_testcase {
|
|||
}
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(0, $events);
|
||||
$this->assertCount(0, $DB->get_records('message'));
|
||||
$this->assertCount(0, $DB->get_records('message_read'));
|
||||
$this->assertCount(0, $DB->get_records('messages'));
|
||||
message_send($message);
|
||||
$this->assertCount(1, $DB->get_records('message'));
|
||||
$this->assertCount(0, $DB->get_records('message_read'));
|
||||
$this->assertCount(1, $DB->get_records('messages'));
|
||||
$this->assertCount(0, $DB->get_records('message_user_actions'));
|
||||
$events = $eventsink->get_events();
|
||||
$this->assertCount(1, $events);
|
||||
$this->assertInstanceOf('\core\event\message_sent', $events[0]);
|
||||
$sink->clear();
|
||||
$DB->delete_records('message_read', array());
|
||||
}
|
||||
|
||||
public function test_rollback() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue