Differences Between: [Versions 310 and 311] [Versions 39 and 311]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * External function unit tests. 19 * 20 * @package core_search 21 * @copyright 2017 The Open University 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 namespace core_search; 26 27 /** 28 * External function unit tests. 29 * 30 * @package core_search 31 * @copyright 2017 The Open University 32 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 33 */ 34 class external_test extends \advanced_testcase { 35 36 public function setUp(): void { 37 $this->resetAfterTest(); 38 } 39 40 /** 41 * Checks the get_relevant_users function used when selecting users in search filter. 42 */ 43 public function test_get_relevant_users() { 44 // Set up two users to search for and one to do the searching. 45 $generator = $this->getDataGenerator(); 46 $student1 = $generator->create_user(['firstname' => 'Amelia', 'lastname' => 'Aardvark']); 47 $student2 = $generator->create_user(['firstname' => 'Amelia', 'lastname' => 'Beetle']); 48 $student3 = $generator->create_user(['firstname' => 'Zebedee', 'lastname' => 'Boing']); 49 $course = $generator->create_course(); 50 $generator->enrol_user($student1->id, $course->id, 'student'); 51 $generator->enrol_user($student2->id, $course->id, 'student'); 52 $generator->enrol_user($student3->id, $course->id, 'student'); 53 54 // As student 3, search for the other two. 55 $this->setUser($student3); 56 $result = external::clean_returnvalue( 57 external::get_relevant_users_returns(), 58 external::get_relevant_users('Amelia', 0) 59 ); 60 61 // Check we got the two expected users back. 62 $this->assertEquals([ 63 $student1->id, 64 $student2->id, 65 ], array_column($result, 'id')); 66 67 // Check that the result contains all the expected fields. 68 $this->assertEquals($student1->id, $result[0]['id']); 69 $this->assertEquals('Amelia Aardvark', $result[0]['fullname']); 70 $this->assertStringContainsString('/u/f2', $result[0]['profileimageurlsmall']); 71 72 // Check we aren't leaking information about user email address (for instance). 73 $this->assertArrayNotHasKey('email', $result[0]); 74 75 // Note: We are not checking search permissions, search by different fields, etc. as these 76 // are covered by the core_user::search unit test. 77 } 78 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body