コード例 #1
0
 /**
  * Tests searching users as another user.
  */
 public function test_messagearea_search_users_as_other_user()
 {
     $this->resetAfterTest(true);
     // The person doing the search.
     $this->setAdminUser();
     // Create some users.
     $user1 = new stdClass();
     $user1->firstname = 'User';
     $user1->lastname = 'One';
     $user1 = self::getDataGenerator()->create_user($user1);
     $user2 = new stdClass();
     $user2->firstname = 'User search';
     $user2->lastname = 'Two';
     $user2 = self::getDataGenerator()->create_user($user2);
     $user3 = new stdClass();
     $user3->firstname = 'User search';
     $user3->lastname = 'Three';
     $user3 = self::getDataGenerator()->create_user($user3);
     $user4 = new stdClass();
     $user4->firstname = 'User';
     $user4->lastname = 'Four';
     $user4 = self::getDataGenerator()->create_user($user4);
     $user5 = new stdClass();
     $user5->firstname = 'User search';
     $user5->lastname = 'Five';
     $user5 = self::getDataGenerator()->create_user($user5);
     $user6 = new stdClass();
     $user6->firstname = 'User';
     $user6->lastname = 'Six';
     $user6 = self::getDataGenerator()->create_user($user6);
     // Create some courses.
     $course1 = new stdClass();
     $course1->fullname = 'Course search';
     $course1->shortname = 'One';
     $course1 = $this->getDataGenerator()->create_course($course1);
     $course2 = new stdClass();
     $course2->fullname = 'Course';
     $course2->shortname = 'Two';
     $course2 = $this->getDataGenerator()->create_course($course2);
     $course3 = new stdClass();
     $course3->fullname = 'Course';
     $course3->shortname = 'Three search';
     $course3 = $this->getDataGenerator()->create_course($course3);
     // 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);
     // Perform a search.
     $result = core_message_external::data_for_messagearea_search_users($user1->id, 'search');
     // 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_users_returns(), $result);
     // Confirm that we returns contacts, courses and non-contacts.
     $contacts = $result['contacts'];
     $courses = $result['courses'];
     $noncontacts = $result['noncontacts'];
     // Check that we retrieved the correct contacts.
     $this->assertCount(2, $contacts);
     $this->assertEquals($user3->id, $contacts[0]['userid']);
     $this->assertEquals($user2->id, $contacts[1]['userid']);
     // Check that we retrieved the correct courses.
     $this->assertCount(0, $courses);
     // Check that we retrieved the correct non-contacts.
     $this->assertCount(1, $noncontacts);
     $this->assertEquals($user5->id, $noncontacts[0]['userid']);
 }