Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
Línea 31... Línea 31...
31
 *
31
 *
32
 * @package tool_lp
32
 * @package tool_lp
33
 * @copyright 2015 Damyon Wiese
33
 * @copyright 2015 Damyon Wiese
34
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35
 */
35
 */
36
class externallib_test extends externallib_advanced_testcase {
36
final class externallib_test extends externallib_advanced_testcase {
Línea 37... Línea 37...
37
 
37
 
38
    /** @var \stdClass $creator User with enough permissions to create insystem context. */
38
    /** @var \stdClass $creator User with enough permissions to create insystem context. */
Línea 39... Línea 39...
39
    protected $creator = null;
39
    protected $creator = null;
Línea 62... Línea 62...
62
    /**
62
    /**
63
     * Setup function- we will create a course and add an assign instance to it.
63
     * Setup function- we will create a course and add an assign instance to it.
64
     */
64
     */
65
    protected function setUp(): void {
65
    protected function setUp(): void {
66
        global $DB, $CFG;
66
        global $DB, $CFG;
-
 
67
        parent::setUp();
Línea 67... Línea 68...
67
 
68
 
Línea 68... Línea 69...
68
        $this->resetAfterTest(true);
69
        $this->resetAfterTest(true);
69
 
70
 
Línea 139... Línea 140...
139
        $ux = $dg->create_user();
140
        $ux = $dg->create_user();
140
        $u1 = $dg->create_user(array('idnumber' => 'Cats', 'firstname' => 'Bob', 'lastname' => 'Dyyylan',
141
        $u1 = $dg->create_user(array('idnumber' => 'Cats', 'firstname' => 'Bob', 'lastname' => 'Dyyylan',
141
            'email' => 'bobbyyy@dyyylan.com', 'phone1' => '123456', 'phone2' => '78910', 'department' => 'Marketing',
142
            'email' => 'bobbyyy@dyyylan.com', 'phone1' => '123456', 'phone2' => '78910', 'department' => 'Marketing',
142
            'institution' => 'HQ'));
143
            'institution' => 'HQ'));
Línea 143... Línea 144...
143
 
144
 
144
        // First we search with no capability assigned.
145
        // Assign capability required to perform the search.
145
        $this->setUser($ux);
146
        $this->setUser($ux);
146
        $result = external::search_users('yyylan', 'moodle/competency:planmanage');
147
        $systemcontext = \context_system::instance();
147
        $result = external_api::clean_returnvalue(external::search_users_returns(), $result);
-
 
148
        $this->assertCount(0, $result['users']);
-
 
Línea 149... Línea 148...
149
        $this->assertEquals(0, $result['count']);
148
        $customrole = $this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id);
150
 
149
 
151
        // Now we assign a different capability.
-
 
152
        $usercontext = \context_user::instance($u1->id);
150
        // Now we assign a different capability.
Línea 153... Línea 151...
153
        $systemcontext = \context_system::instance();
151
        $usercontext = \context_user::instance($u1->id);
154
        $customrole = $this->assignUserCapability('moodle/competency:planview', $usercontext->id);
152
        $this->assignUserCapability('moodle/competency:templatemanage', $usercontext->id, $customrole);
155
 
153
 
156
        $result = external::search_users('yyylan', 'moodle/competency:planmanage');
154
        $result = external::search_users('yyylan', 'moodle/competency:planmanage');
Línea 185... Línea 183...
185
 
183
 
186
        // Now lets try a different user with only the role at user level.
184
        // Now lets try a different user with only the role at user level.
187
        $ux3 = $dg->create_user();
185
        $ux3 = $dg->create_user();
188
        role_assign($this->creatorrole, $ux3->id, $usercontext->id);
186
        role_assign($this->creatorrole, $ux3->id, $usercontext->id);
-
 
187
        $this->setUser($ux3);
-
 
188
        $systemcontext = \context_system::instance();
189
        $this->setUser($ux3);
189
        $customrole = $this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id, $customrole);
190
        $result = external::search_users('yyylan', 'moodle/competency:planmanage');
190
        $result = external::search_users('yyylan', 'moodle/competency:planmanage');
191
        $result = external_api::clean_returnvalue(external::search_users_returns(), $result);
191
        $result = external_api::clean_returnvalue(external::search_users_returns(), $result);
192
        $this->assertCount(1, $result['users']);
192
        $this->assertCount(1, $result['users']);
Línea 260... Línea 260...
260
        $this->assertFalse(has_capability('moodle/site:config', $slave2context));
260
        $this->assertFalse(has_capability('moodle/site:config', $slave2context));
261
        $this->assertFalse(has_capability('moodle/site:config', $slave3context));
261
        $this->assertFalse(has_capability('moodle/site:config', $slave3context));
Línea 262... Línea 262...
262
 
262
 
263
        // Now do the test.
263
        // Now do the test.
-
 
264
        $this->setUser($master);
264
        $this->setUser($master);
265
        $dummyrole = $this->assignUserCapability('moodle/competency:templatemanage', $syscontext->id);
265
        $result = external::search_users('MOODLER', 'moodle/site:config');
266
        $result = external::search_users('MOODLER', 'moodle/site:config');
266
        $this->assertCount(2, $result['users']);
267
        $this->assertCount(2, $result['users']);
267
        $this->assertEquals(2, $result['count']);
268
        $this->assertEquals(2, $result['count']);
268
        $this->assertArrayHasKey($slave1->id, $result['users']);
269
        $this->assertArrayHasKey($slave1->id, $result['users']);
Línea 269... Línea 270...
269
        $this->assertArrayHasKey($slave3->id, $result['users']);
270
        $this->assertArrayHasKey($slave3->id, $result['users']);
-
 
271
 
270
 
272
        $this->setUser($manager);
271
        $this->setUser($manager);
273
        $this->assignUserCapability('moodle/competency:templatemanage', $syscontext->id, $dummyrole);
272
        $result = external::search_users('MOODLER', 'moodle/site:config');
274
        $result = external::search_users('MOODLER', 'moodle/site:config');
273
        $this->assertCount(1, $result['users']);
275
        $this->assertCount(1, $result['users']);
274
        $this->assertEquals(1, $result['count']);
276
        $this->assertEquals(1, $result['count']);
Línea 375... Línea 377...
375
        $this->assertArrayHasKey('department', $result['users'][0]);
377
        $this->assertArrayHasKey('department', $result['users'][0]);
376
        $this->assertArrayHasKey('institution', $result['users'][0]);
378
        $this->assertArrayHasKey('institution', $result['users'][0]);
Línea 377... Línea 379...
377
 
379
 
378
        // Switch to a user that cannot view identity fields.
380
        // Switch to a user that cannot view identity fields.
-
 
381
        $this->setUser($ux);
-
 
382
        $systemcontext = \context_system::instance();
379
        $this->setUser($ux);
383
        $this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id, $dummyrole);
Línea 380... Línea 384...
380
        $CFG->showuseridentity = 'idnumber,email,phone1,phone2,department,institution';
384
        $CFG->showuseridentity = 'idnumber,email,phone1,phone2,department,institution';
381
 
385
 
382
        // Only names are included.
386
        // Only names are included.