MDL-56139 message: ajax poll for new messages in message area

This commit is contained in:
Ryan Wyllie
2016-11-16 10:22:33 +08:00
committed by Mark Nelson
parent b4d6669dd0
commit fb1469d84f
15 changed files with 697 additions and 24 deletions
+125
View File
@@ -953,4 +953,129 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
$status = \core_message\api::is_processor_enabled($name);
$this->assertEquals(1, $status);
}
/**
* Test retrieving messages by providing a minimum timecreated value.
*/
public function test_get_messages_created_from_only() {
// Create some users.
$user1 = self::getDataGenerator()->create_user();
$user2 = self::getDataGenerator()->create_user();
// The person doing the search.
$this->setUser($user1);
// Send some messages back and forth.
$time = 1;
$this->send_fake_message($user1, $user2, 'Message 1', 0, $time + 1);
$this->send_fake_message($user2, $user1, 'Message 2', 0, $time + 2);
$this->send_fake_message($user1, $user2, 'Message 3', 0, $time + 3);
$this->send_fake_message($user2, $user1, 'Message 4', 0, $time + 4);
// Retrieve the messages.
$messages = \core_message\api::get_messages($user1->id, $user2->id, 0, 0, 'timecreated ASC', $time);
// Confirm the message data is correct.
$this->assertEquals(4, count($messages));
$message1 = $messages[0];
$message2 = $messages[1];
$message3 = $messages[2];
$message4 = $messages[3];
$this->assertContains('Message 1', $message1->text);
$this->assertContains('Message 2', $message2->text);
$this->assertContains('Message 3', $message3->text);
$this->assertContains('Message 4', $message4->text);
// Retrieve the messages.
$messages = \core_message\api::get_messages($user1->id, $user2->id, 0, 0, 'timecreated ASC', $time + 3);
// Confirm the message data is correct.
$this->assertEquals(2, count($messages));
$message1 = $messages[0];
$message2 = $messages[1];
$this->assertContains('Message 3', $message1->text);
$this->assertContains('Message 4', $message2->text);
}
/**
* Test retrieving messages by providing a maximum timecreated value.
*/
public function test_get_messages_created_to_only() {
// Create some users.
$user1 = self::getDataGenerator()->create_user();
$user2 = self::getDataGenerator()->create_user();
// The person doing the search.
$this->setUser($user1);
// Send some messages back and forth.
$time = 1;
$this->send_fake_message($user1, $user2, 'Message 1', 0, $time + 1);
$this->send_fake_message($user2, $user1, 'Message 2', 0, $time + 2);
$this->send_fake_message($user1, $user2, 'Message 3', 0, $time + 3);
$this->send_fake_message($user2, $user1, 'Message 4', 0, $time + 4);
// Retrieve the messages.
$messages = \core_message\api::get_messages($user1->id, $user2->id, 0, 0, 'timecreated ASC', 0, $time + 4);
// Confirm the message data is correct.
$this->assertEquals(4, count($messages));
$message1 = $messages[0];
$message2 = $messages[1];
$message3 = $messages[2];
$message4 = $messages[3];
$this->assertContains('Message 1', $message1->text);
$this->assertContains('Message 2', $message2->text);
$this->assertContains('Message 3', $message3->text);
$this->assertContains('Message 4', $message4->text);
// Retrieve the messages.
$messages = \core_message\api::get_messages($user1->id, $user2->id, 0, 0, 'timecreated ASC', 0, $time + 2);
// Confirm the message data is correct.
$this->assertEquals(2, count($messages));
$message1 = $messages[0];
$message2 = $messages[1];
$this->assertContains('Message 1', $message1->text);
$this->assertContains('Message 2', $message2->text);
}
/**
* Test retrieving messages by providing a minimum and maximum timecreated value.
*/
public function test_get_messages_created_from_and_to() {
// Create some users.
$user1 = self::getDataGenerator()->create_user();
$user2 = self::getDataGenerator()->create_user();
// The person doing the search.
$this->setUser($user1);
// Send some messages back and forth.
$time = 1;
$this->send_fake_message($user1, $user2, 'Message 1', 0, $time + 1);
$this->send_fake_message($user2, $user1, 'Message 2', 0, $time + 2);
$this->send_fake_message($user1, $user2, 'Message 3', 0, $time + 3);
$this->send_fake_message($user2, $user1, 'Message 4', 0, $time + 4);
// Retrieve the messages.
$messages = \core_message\api::get_messages($user1->id, $user2->id, 0, 0, 'timecreated ASC', $time + 2, $time + 3);
// Confirm the message data is correct.
$this->assertEquals(2, count($messages));
$message1 = $messages[0];
$message2 = $messages[1];
$this->assertContains('Message 2', $message1->text);
$this->assertContains('Message 3', $message2->text);
}
}