/** * Test get_user_administration_options */ public function test_get_user_administration_options() { global $USER; $this->resetAfterTest(); $course1 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course(); // Create a viewer user. $viewer = self::getDataGenerator()->create_user(); $this->getDataGenerator()->enrol_user($viewer->id, $course1->id); $this->getDataGenerator()->enrol_user($viewer->id, $course2->id); $this->setUser($viewer->id); $courses = array($course1->id, $course2->id, SITEID); $result = core_course_external::get_user_administration_options($courses); $result = external_api::clean_returnvalue(core_course_external::get_user_administration_options_returns(), $result); $this->assertCount(0, $result['warnings']); $this->assertCount(3, $result['courses']); foreach ($result['courses'] as $course) { $adminoptions = new stdClass(); foreach ($course['options'] as $option) { $adminoptions->{$option['name']} = $option['available']; } if ($course['id'] == SITEID) { $this->assertCount(15, $course['options']); $this->assertFalse($adminoptions->update); $this->assertFalse($adminoptions->filters); $this->assertFalse($adminoptions->reports); $this->assertFalse($adminoptions->backup); $this->assertFalse($adminoptions->restore); $this->assertFalse($adminoptions->files); $this->assertFalse(!isset($adminoptions->tags)); $this->assertFalse($adminoptions->gradebook); $this->assertFalse($adminoptions->outcomes); $this->assertFalse($adminoptions->badges); $this->assertFalse($adminoptions->import); $this->assertFalse($adminoptions->publish); $this->assertFalse($adminoptions->reset); $this->assertFalse($adminoptions->roles); $this->assertFalse($adminoptions->grades); } else { $this->assertCount(15, $course['options']); $this->assertFalse($adminoptions->update); $this->assertFalse($adminoptions->filters); $this->assertFalse($adminoptions->reports); $this->assertFalse($adminoptions->backup); $this->assertFalse($adminoptions->restore); $this->assertFalse($adminoptions->files); $this->assertFalse($adminoptions->tags); $this->assertFalse($adminoptions->gradebook); $this->assertFalse($adminoptions->outcomes); $this->assertTrue($adminoptions->badges); $this->assertFalse($adminoptions->import); $this->assertFalse($adminoptions->publish); $this->assertFalse($adminoptions->reset); $this->assertFalse($adminoptions->roles); $this->assertTrue($adminoptions->grades); } } }