mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-39152 phpunit: Move core_role_external_testcase() to a new file
It is not recommended to have multiple test classes in a single phpunit file
This commit is contained in:
parent
95a3bb4dc8
commit
235b5c680a
2 changed files with 167 additions and 145 deletions
|
@ -156,148 +156,3 @@ class core_enrol_external_testcase extends externallib_advanced_testcase {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Role external PHPunit tests
|
||||
*
|
||||
* @package core_enrol
|
||||
* @category external
|
||||
* @copyright 2012 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @since Moodle 2.4
|
||||
*/
|
||||
class core_role_external_testcase extends externallib_advanced_testcase {
|
||||
|
||||
/**
|
||||
* Tests set up
|
||||
*/
|
||||
protected function setUp() {
|
||||
global $CFG;
|
||||
require_once($CFG->dirroot . '/enrol/externallib.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test assign_roles
|
||||
*/
|
||||
public function test_assign_roles() {
|
||||
global $USER;
|
||||
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$course = self::getDataGenerator()->create_course();
|
||||
|
||||
// Set the required capabilities by the external function.
|
||||
$context = context_course::instance($course->id);
|
||||
$roleid = $this->assignUserCapability('moodle/role:assign', $context->id);
|
||||
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
|
||||
|
||||
// Add manager role to $USER.
|
||||
// So $USER is allowed to assign 'manager', 'editingteacher', 'teacher' and 'student'.
|
||||
role_assign(1, $USER->id, context_system::instance()->id);
|
||||
|
||||
// Check the teacher role has not been assigned to $USER.
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 0);
|
||||
|
||||
// Call the external function. Assign teacher role to $USER with contextid.
|
||||
core_role_external::assign_roles(array(
|
||||
array('roleid' => 3, 'userid' => $USER->id, 'contextid' => $context->id)));
|
||||
|
||||
// Check the role has been assigned.
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 1);
|
||||
|
||||
// Unassign role.
|
||||
role_unassign(3, $USER->id, $context->id);
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 0);
|
||||
|
||||
// Call the external function. Assign teacher role to $USER.
|
||||
core_role_external::assign_roles(array(
|
||||
array('roleid' => 3, 'userid' => $USER->id, 'contextlevel' => "course", 'instanceid' => $course->id)));
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 1);
|
||||
|
||||
// Call without required capability.
|
||||
$this->unassignUserCapability('moodle/role:assign', $context->id, $roleid);
|
||||
$this->setExpectedException('moodle_exception');
|
||||
$categories = core_role_external::assign_roles(
|
||||
array('roleid' => 3, 'userid' => $USER->id, 'contextid' => $context->id));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test assign_roles() parameter validation
|
||||
*/
|
||||
public function test_assign_roles_params() {
|
||||
global $USER;
|
||||
|
||||
// Call without correct context details.
|
||||
$this->setExpectedException('invalid_parameter_exception');
|
||||
core_role_external::assign_roles(array('roleid' => 3, 'userid' => $USER->id));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test assign_roles() parameter validation
|
||||
*/
|
||||
public function test_assign_roles_params2() {
|
||||
global $USER;
|
||||
|
||||
// Call without correct context details.
|
||||
$this->setExpectedException('invalid_parameter_exception');
|
||||
core_role_external::assign_roles(array('roleid' => 3, 'userid' => $USER->id, 'contextlevel' => "course"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test assign_roles() parameter validation
|
||||
*/
|
||||
public function test_assign_roles_params3() {
|
||||
global $USER;
|
||||
|
||||
// Call without correct context details.
|
||||
$this->resetAfterTest(true);
|
||||
$course = self::getDataGenerator()->create_course();
|
||||
$this->setExpectedException('invalid_parameter_exception');
|
||||
core_role_external::assign_roles(array('roleid' => 3, 'userid' => $USER->id, 'instanceid' => $course->id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test unassign_roles
|
||||
*/
|
||||
public function test_unassign_roles() {
|
||||
global $USER;
|
||||
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$course = self::getDataGenerator()->create_course();
|
||||
|
||||
// Set the required capabilities by the external function.
|
||||
$context = context_course::instance($course->id);
|
||||
$roleid = $this->assignUserCapability('moodle/role:assign', $context->id);
|
||||
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
|
||||
|
||||
// Add manager role to $USER.
|
||||
// So $USER is allowed to assign 'manager', 'editingteacher', 'teacher' and 'student'.
|
||||
role_assign(1, $USER->id, context_system::instance()->id);
|
||||
|
||||
// Add teacher role to $USER on course context.
|
||||
role_assign(3, $USER->id, $context->id);
|
||||
|
||||
// Check the teacher role has been assigned to $USER on course context.
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 1);
|
||||
|
||||
// Call the external function. Assign teacher role to $USER.
|
||||
core_role_external::unassign_roles(array(
|
||||
array('roleid' => 3, 'userid' => $USER->id, 'contextid' => $context->id)));
|
||||
|
||||
// Check the role has been unassigned on course context.
|
||||
$users = get_role_users(3, $context);
|
||||
$this->assertEquals(count($users), 0);
|
||||
|
||||
// Call without required capability.
|
||||
$this->unassignUserCapability('moodle/role:assign', $context->id, $roleid);
|
||||
$this->setExpectedException('moodle_exception');
|
||||
$categories = core_role_external::unassign_roles(
|
||||
array('roleid' => 3, 'userid' => $USER->id, 'contextid' => $context->id));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue