/** * Test get_course_user_profiles */ public function test_get_course_user_profiles() { global $USER, $CFG; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); $user1 = array( 'username' => 'usernametest1', 'idnumber' => 'idnumbertest1', 'firstname' => 'First Name User Test 1', 'lastname' => 'Last Name User Test 1', 'email' => '*****@*****.**', 'address' => '2 Test Street Perth 6000 WA', 'phone1' => '01010101010', 'phone2' => '02020203', 'icq' => 'testuser1', 'skype' => 'testuser1', 'yahoo' => 'testuser1', 'aim' => 'testuser1', 'msn' => 'testuser1', 'department' => 'Department of user 1', 'institution' => 'Institution of user 1', 'description' => 'This is a description for user 1', 'descriptionformat' => FORMAT_MOODLE, 'city' => 'Perth', 'url' => 'http://moodle.org', 'country' => 'au' ); $user1 = self::getDataGenerator()->create_user($user1); if (!empty($CFG->usetags)) { require_once($CFG->dirroot . '/user/editlib.php'); require_once($CFG->dirroot . '/tag/lib.php'); $user1->interests = array('Cinema', 'Tennis', 'Dance', 'Guitar', 'Cooking'); useredit_update_interests($user1, $user1->interests); } $user2 = self::getDataGenerator()->create_user(); $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/user:viewdetails', $context->id); // Enrol the users in the course. $this->getDataGenerator()->enrol_user($user1->id, $course->id, $roleid, 'manual'); $this->getDataGenerator()->enrol_user($user2->id, $course->id, $roleid, 'manual'); $this->getDataGenerator()->enrol_user($USER->id, $course->id, $roleid, 'manual'); // Call the external function. $enrolledusers = core_user_external::get_course_user_profiles(array( array('userid' => $USER->id, 'courseid' => $course->id), array('userid' => $user1->id, 'courseid' => $course->id), array('userid' => $user2->id, 'courseid' => $course->id))); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers); // Check we retrieve the good total number of enrolled users + no error on capability. $this->assertEquals(3, count($enrolledusers)); // Do the same call as admin to receive all possible fields. $this->setAdminUser(); $USER->email = "*****@*****.**"; // Call the external function. $enrolledusers = core_user_external::get_course_user_profiles(array( array('userid' => $USER->id, 'courseid' => $course->id), array('userid' => $user1->id, 'courseid' => $course->id), array('userid' => $user2->id, 'courseid' => $course->id))); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers); foreach($enrolledusers as $enrolleduser) { if ($enrolleduser['username'] == $user1->username) { $this->assertEquals($user1->idnumber, $enrolleduser['idnumber']); $this->assertEquals($user1->firstname, $enrolleduser['firstname']); $this->assertEquals($user1->lastname, $enrolleduser['lastname']); $this->assertEquals($user1->email, $enrolleduser['email']); $this->assertEquals($user1->address, $enrolleduser['address']); $this->assertEquals($user1->phone1, $enrolleduser['phone1']); $this->assertEquals($user1->phone2, $enrolleduser['phone2']); $this->assertEquals($user1->icq, $enrolleduser['icq']); $this->assertEquals($user1->skype, $enrolleduser['skype']); $this->assertEquals($user1->yahoo, $enrolleduser['yahoo']); $this->assertEquals($user1->aim, $enrolleduser['aim']); $this->assertEquals($user1->msn, $enrolleduser['msn']); $this->assertEquals($user1->department, $enrolleduser['department']); $this->assertEquals($user1->institution, $enrolleduser['institution']); $this->assertEquals($user1->description, $enrolleduser['description']); $this->assertEquals(FORMAT_HTML, $enrolleduser['descriptionformat']); $this->assertEquals($user1->city, $enrolleduser['city']); $this->assertEquals($user1->country, $enrolleduser['country']); $this->assertEquals($user1->url, $enrolleduser['url']); if (!empty($CFG->usetags)) { $this->assertEquals(implode(', ', $user1->interests), $enrolleduser['interests']); } } } }
/** * Get course participant's details * * @param array $userlist array of user ids and according course ids * @return array An array of arrays describing course participants * @since Moodle 2.1 * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. * @todo MDL-31194 This will be deleted in Moodle 2.5. * @see core_user_external::get_course_user_profiles() */ public static function get_course_participants_by_id($userlist) { return core_user_external::get_course_user_profiles($userlist); }
public function test_get_user_course_profile_as_admin() { global $USER, $CFG; global $USER, $CFG; $this->resetAfterTest(true); $data = $this->get_course_user_profiles_setup('moodle/user:viewdetails'); // Do the same call as admin to receive all possible fields. $this->setAdminUser(); $USER->email = "*****@*****.**"; // Call the external function. $enrolledusers = core_user_external::get_course_user_profiles(array(array('userid' => $data->user1->id, 'courseid' => $data->course->id))); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers); foreach ($enrolledusers as $enrolleduser) { if ($enrolleduser['username'] == $data->user1->username) { $this->assertEquals($data->user1->idnumber, $enrolleduser['idnumber']); $this->assertEquals($data->user1->firstname, $enrolleduser['firstname']); $this->assertEquals($data->user1->lastname, $enrolleduser['lastname']); $this->assertEquals($data->user1->email, $enrolleduser['email']); $this->assertEquals($data->user1->address, $enrolleduser['address']); $this->assertEquals($data->user1->phone1, $enrolleduser['phone1']); $this->assertEquals($data->user1->phone2, $enrolleduser['phone2']); $this->assertEquals($data->user1->icq, $enrolleduser['icq']); $this->assertEquals($data->user1->skype, $enrolleduser['skype']); $this->assertEquals($data->user1->yahoo, $enrolleduser['yahoo']); $this->assertEquals($data->user1->aim, $enrolleduser['aim']); $this->assertEquals($data->user1->msn, $enrolleduser['msn']); $this->assertEquals($data->user1->department, $enrolleduser['department']); $this->assertEquals($data->user1->institution, $enrolleduser['institution']); $this->assertEquals($data->user1->description, $enrolleduser['description']); $this->assertEquals(FORMAT_HTML, $enrolleduser['descriptionformat']); $this->assertEquals($data->user1->city, $enrolleduser['city']); $this->assertEquals($data->user1->country, $enrolleduser['country']); $this->assertEquals($data->user1->url, $enrolleduser['url']); if (!empty($CFG->usetags)) { $this->assertEquals(implode(', ', $data->user1->interests), $enrolleduser['interests']); } } } }