コード例 #1
0
 /**
  * Tests retrieving messages as another user.
  */
 public function test_messagearea_messages_as_other_user()
 {
     $this->resetAfterTest(true);
     // Set as admin.
     $this->setAdminUser();
     // Create some users.
     $user1 = self::getDataGenerator()->create_user();
     $user2 = self::getDataGenerator()->create_user();
     // Send some messages back and forth.
     $time = time();
     $this->send_message($user1, $user2, 'Yo!', 0, $time);
     $this->send_message($user2, $user1, 'Sup mang?', 0, $time + 1);
     $this->send_message($user1, $user2, 'Writing PHPUnit tests!', 0, $time + 2);
     $this->send_message($user2, $user1, 'Word.', 0, $time + 3);
     // Retrieve the messages.
     $result = core_message_external::data_for_messagearea_messages($user1->id, $user2->id);
     // We need to execute the return values cleaning process to simulate the web service server.
     $result = external_api::clean_returnvalue(core_message_external::data_for_messagearea_messages_returns(), $result);
     // Check the results are correct.
     $this->assertFalse($result['iscurrentuser']);
     $this->assertEquals($user1->id, $result['currentuserid']);
     $this->assertEquals($user2->id, $result['otheruserid']);
     $this->assertEquals(fullname($user2), $result['otheruserfullname']);
     $this->assertFalse($result['isonline']);
     // Confirm the message data is correct.
     $messages = $result['messages'];
     $this->assertCount(4, $messages);
     $message1 = $messages[0];
     $message2 = $messages[1];
     $message3 = $messages[2];
     $message4 = $messages[3];
     $this->assertEquals($user1->id, $message1['useridfrom']);
     $this->assertEquals($user2->id, $message1['useridto']);
     $this->assertTrue($message1['displayblocktime']);
     $this->assertContains('Yo!', $message1['text']);
     $this->assertEquals($user2->id, $message2['useridfrom']);
     $this->assertEquals($user1->id, $message2['useridto']);
     $this->assertFalse($message2['displayblocktime']);
     $this->assertContains('Sup mang?', $message2['text']);
     $this->assertEquals($user1->id, $message3['useridfrom']);
     $this->assertEquals($user2->id, $message3['useridto']);
     $this->assertFalse($message3['displayblocktime']);
     $this->assertContains('Writing PHPUnit tests!', $message3['text']);
     $this->assertEquals($user2->id, $message4['useridfrom']);
     $this->assertEquals($user1->id, $message4['useridto']);
     $this->assertFalse($message4['displayblocktime']);
     $this->assertContains('Word.', $message4['text']);
 }