/** * Tests searching messages as another user. */ public function test_messagearea_search_messages_as_other_user() { $this->resetAfterTest(true); // The person doing the search. $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); // Perform a search. $result = core_message_external::data_for_messagearea_search_messages($user1->id, 'o'); // 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_search_messages_returns(), $result); // Confirm the data is correct. $messages = $result['contacts']; $this->assertCount(2, $messages); $message1 = $messages[0]; $message2 = $messages[1]; $this->assertEquals($user2->id, $message1['userid']); $this->assertEquals(fullname($user2), $message1['fullname']); $this->assertTrue($message1['ismessaging']); $this->assertFalse($message1['sentfromcurrentuser']); $this->assertEquals('Word.', $message1['lastmessage']); $this->assertNotEmpty($message1['messageid']); $this->assertFalse($message1['isonline']); $this->assertFalse($message1['isread']); $this->assertFalse($message1['isblocked']); $this->assertNull($message1['unreadcount']); $this->assertEquals($user2->id, $message2['userid']); $this->assertEquals(fullname($user2), $message2['fullname']); $this->assertTrue($message2['ismessaging']); $this->assertTrue($message2['sentfromcurrentuser']); $this->assertEquals('Yo!', $message2['lastmessage']); $this->assertNotEmpty($message2['messageid']); $this->assertFalse($message2['isonline']); $this->assertTrue($message2['isread']); $this->assertFalse($message2['isblocked']); $this->assertNull($message2['unreadcount']); }