MDL-55415 course: New WS core_course_get_user_administration_options

This commit is contained in:
Juan Leyva 2016-08-02 15:39:30 +02:00
parent b2392037e7
commit b9050b106e
3 changed files with 134 additions and 0 deletions

View file

@ -1803,4 +1803,63 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
}
}
}
/**
* 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(6, $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->assertTrue(!isset($adminoptions->tags));
} 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);
}
}
}
}