Example #1
0
 /**
  * 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);
         }
     }
 }