/** * Tests retrieving contacts as another user. */ public function test_messagearea_contacts_as_other_user() { $this->resetAfterTest(true); $this->setAdminUser(); // Create some users. $user1 = self::getDataGenerator()->create_user(); $user2 = new stdClass(); $user2->firstname = 'User'; $user2->lastname = 'A'; $user2 = self::getDataGenerator()->create_user($user2); $user3 = new stdClass(); $user3->firstname = 'User'; $user3->lastname = 'B'; $user3 = self::getDataGenerator()->create_user($user3); $user4 = new stdClass(); $user4->firstname = 'User'; $user4->lastname = 'C'; $user4 = self::getDataGenerator()->create_user($user4); $user5 = new stdClass(); $user5->firstname = 'User'; $user5->lastname = 'D'; $user5 = self::getDataGenerator()->create_user($user5); // Add some users as contacts. message_add_contact($user2->id, 0, $user1->id); message_add_contact($user3->id, 0, $user1->id); message_add_contact($user4->id, 0, $user1->id); // Retrieve the contacts. $result = core_message_external::data_for_messagearea_contacts($user1->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_contacts_returns(), $result); // Confirm the data is correct. $contacts = $result['contacts']; $this->assertCount(3, $contacts); $contact1 = $contacts[0]; $contact2 = $contacts[1]; $contact3 = $contacts[2]; $this->assertEquals($user2->id, $contact1['userid']); $this->assertFalse($contact1['ismessaging']); $this->assertFalse($contact1['sentfromcurrentuser']); $this->assertNull($contact1['lastmessage']); $this->assertNull($contact1['messageid']); $this->assertFalse($contact1['isonline']); $this->assertFalse($contact1['isread']); $this->assertFalse($contact1['isblocked']); $this->assertNull($contact1['unreadcount']); $this->assertEquals($user3->id, $contact2['userid']); $this->assertFalse($contact2['ismessaging']); $this->assertFalse($contact2['sentfromcurrentuser']); $this->assertNull($contact2['lastmessage']); $this->assertNull($contact2['messageid']); $this->assertFalse($contact2['isonline']); $this->assertFalse($contact2['isread']); $this->assertFalse($contact2['isblocked']); $this->assertNull($contact2['unreadcount']); $this->assertEquals($user4->id, $contact3['userid']); $this->assertFalse($contact3['ismessaging']); $this->assertFalse($contact3['sentfromcurrentuser']); $this->assertNull($contact3['lastmessage']); $this->assertNull($contact3['messageid']); $this->assertFalse($contact3['isonline']); $this->assertFalse($contact3['isread']); $this->assertFalse($contact3['isblocked']); $this->assertNull($contact3['unreadcount']); }