MDL-51025 tool_lp: More tests to cover category context
This commit is contained in:
@@ -39,12 +39,21 @@ use tool_lp\plan;
|
||||
*/
|
||||
class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
|
||||
/** @var stdClass $learningplancreator User with enough permissions to create */
|
||||
/** @var stdClass $creator User with enough permissions to create insystem context. */
|
||||
protected $creator = null;
|
||||
|
||||
/** @var stdClass $learningplanuser User with enough permissions to view */
|
||||
/** @var stdClass $learningplancreator User with enough permissions to create incategory context. */
|
||||
protected $catcreator = null;
|
||||
|
||||
/** @var stdClass $category Category */
|
||||
protected $category = null;
|
||||
|
||||
/** @var stdClass $user User with enough permissions to view insystem context */
|
||||
protected $user = null;
|
||||
|
||||
/** @var stdClass $catuser User with enough permissions to view incategory context */
|
||||
protected $catuser = null;
|
||||
|
||||
/** @var int Creator role id */
|
||||
protected $creatorrole = null;
|
||||
|
||||
@@ -52,7 +61,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
protected $userrole = null;
|
||||
|
||||
/**
|
||||
* Setup function - we will create a course and add an assign instance to it.
|
||||
* Setup function- we will create a course and add an assign instance to it.
|
||||
*/
|
||||
protected function setUp() {
|
||||
global $DB;
|
||||
@@ -62,24 +71,49 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
// Create some users.
|
||||
$creator = $this->getDataGenerator()->create_user();
|
||||
$user = $this->getDataGenerator()->create_user();
|
||||
$syscontext = context_system::instance();
|
||||
$catuser = $this->getDataGenerator()->create_user();
|
||||
$category = $this->getDataGenerator()->create_category();
|
||||
$catcreator = $this->getDataGenerator()->create_user();
|
||||
|
||||
$syscontext = context_system::instance();
|
||||
$catcontext = context_coursecat::instance($category->id);
|
||||
|
||||
// Fetching default authenticated user role.
|
||||
$userroles = get_archetype_roles('user');
|
||||
$this->assertCount(1, $userroles);
|
||||
$authrole = array_pop($userroles);
|
||||
|
||||
// Reset all default authenticated users permissions.
|
||||
unassign_capability('tool/lp:competencymanage', $authrole->id);
|
||||
unassign_capability('tool/lp:competencyread', $authrole->id);
|
||||
unassign_capability('tool/lp:planmanageall', $authrole->id);
|
||||
unassign_capability('tool/lp:planmanageown', $authrole->id);
|
||||
unassign_capability('tool/lp:planviewall', $authrole->id);
|
||||
unassign_capability('tool/lp:templatemanage', $authrole->id);
|
||||
unassign_capability('tool/lp:templateread', $authrole->id);
|
||||
|
||||
// Creating specific roles.
|
||||
$this->creatorrole = create_role('Creator role', 'creatorrole', 'learning plan creator role description');
|
||||
$this->userrole = create_role('User role', 'userrole', 'learning plan user role description');
|
||||
|
||||
assign_capability('tool/lp:competencymanage', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:competencyview', CAP_ALLOW, $this->userrole, $syscontext->id);
|
||||
assign_capability('tool/lp:competencyread', CAP_ALLOW, $this->userrole, $syscontext->id);
|
||||
assign_capability('tool/lp:planmanageall', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:planmanageown', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:planviewall', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:templatemanage', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:templatemanage', CAP_ALLOW, $this->creatorrole, $syscontext->id);
|
||||
assign_capability('tool/lp:templateread', CAP_ALLOW, $this->userrole, $syscontext->id);
|
||||
|
||||
role_assign($this->creatorrole, $creator->id, $syscontext->id);
|
||||
role_assign($this->creatorrole, $catcreator->id, $catcontext->id);
|
||||
role_assign($this->userrole, $user->id, $syscontext->id);
|
||||
role_assign($this->userrole, $catuser->id, $catcontext->id);
|
||||
|
||||
$this->creator = $creator;
|
||||
$this->catcreator = $catcreator;
|
||||
$this->user = $user;
|
||||
$this->catuser = $catuser;
|
||||
$this->category = $category;
|
||||
accesslib_clear_all_caches_for_unit_testing();
|
||||
}
|
||||
|
||||
@@ -93,6 +127,16 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
array('contextid' => context_system::instance()->id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can't create a competency framework with only read permissions.
|
||||
*/
|
||||
public function test_create_competency_frameworks_with_read_permissions_in_category() {
|
||||
$this->setExpectedException('required_capability_exception');
|
||||
$this->setUser($this->catuser);
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can create a competency framework with manage permissions.
|
||||
*/
|
||||
@@ -112,6 +156,32 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals(true, $result->visible);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can create a competency framework with manage permissions.
|
||||
*/
|
||||
public function test_create_competency_frameworks_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->catcreator);
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$result = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
$this->assertGreaterThan(0, $result->timecreated);
|
||||
$this->assertGreaterThan(0, $result->timemodified);
|
||||
$this->assertEquals($this->catcreator->id, $result->usermodified);
|
||||
$this->assertEquals('shortname', $result->shortname);
|
||||
$this->assertEquals('idnumber', $result->idnumber);
|
||||
$this->assertEquals('description', $result->description);
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
|
||||
try {
|
||||
external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$this->fail('User cannot create a framework at system level.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we cannot create a competency framework with nasty data.
|
||||
*/
|
||||
@@ -145,6 +215,42 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals(true, $result->visible);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can read a competency framework with manage permissions.
|
||||
*/
|
||||
public function test_read_competency_frameworks_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
$id = $incat->id;
|
||||
$result = external::read_competency_framework($id);
|
||||
$result = (object) external_api::clean_returnvalue(external::read_competency_framework_returns(), $result);
|
||||
|
||||
$this->assertGreaterThan(0, $result->timecreated);
|
||||
$this->assertGreaterThan(0, $result->timemodified);
|
||||
$this->assertEquals($this->creator->id, $result->usermodified);
|
||||
$this->assertEquals('catshortname', $result->shortname);
|
||||
$this->assertEquals('catidnumber', $result->idnumber);
|
||||
$this->assertEquals('catdescription', $result->description);
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
|
||||
try {
|
||||
$id = $insystem->id;
|
||||
$result = external::read_competency_framework($id);
|
||||
$result = (object) external_api::clean_returnvalue(external::read_competency_framework_returns(), $result);
|
||||
$this->fail('User cannot read a framework at system level.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can read a competency framework with read permissions.
|
||||
*/
|
||||
@@ -169,6 +275,41 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
}
|
||||
/**
|
||||
* Test we can read a competency framework with read permissions.
|
||||
*/
|
||||
public function test_read_competency_frameworks_with_read_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
// Switch users to someone with less permissions.
|
||||
$this->setUser($this->catuser);
|
||||
$id = $incat->id;
|
||||
$result = external::read_competency_framework($id);
|
||||
$result = (object) external_api::clean_returnvalue(external::read_competency_framework_returns(), $result);
|
||||
|
||||
$this->assertGreaterThan(0, $result->timecreated);
|
||||
$this->assertGreaterThan(0, $result->timemodified);
|
||||
$this->assertEquals($this->creator->id, $result->usermodified);
|
||||
$this->assertEquals('catshortname', $result->shortname);
|
||||
$this->assertEquals('catidnumber', $result->idnumber);
|
||||
$this->assertEquals('catdescription', $result->description);
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
|
||||
// Switching to user with no permissions.
|
||||
try {
|
||||
$result = external::read_competency_framework($insystem->id);
|
||||
$this->fail('Current user cannot should not be able to read the framework.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can delete a competency framework with manage permissions.
|
||||
@@ -186,6 +327,35 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can delete a competency framework with manage permissions.
|
||||
*/
|
||||
public function test_delete_competency_frameworks_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
$id = $incat->id;
|
||||
$result = external::delete_competency_framework($id);
|
||||
$result = external_api::clean_returnvalue(external::delete_competency_framework_returns(), $result);
|
||||
|
||||
$this->assertTrue($result);
|
||||
|
||||
try {
|
||||
$id = $insystem->id;
|
||||
$result = external::delete_competency_framework($id);
|
||||
$result = external_api::clean_returnvalue(external::delete_competency_framework_returns(), $result);
|
||||
$this->fail('Current user cannot should not be able to delete the framework.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can delete a competency framework with read permissions.
|
||||
*/
|
||||
@@ -218,6 +388,36 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can update a competency framework with manage permissions.
|
||||
*/
|
||||
public function test_update_competency_frameworks_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
$id = $incat->id;
|
||||
|
||||
$result = external::update_competency_framework($id, 'shortname2', 'idnumber2', 'description2', FORMAT_PLAIN, false);
|
||||
$result = external_api::clean_returnvalue(external::update_competency_framework_returns(), $result);
|
||||
|
||||
$this->assertTrue($result);
|
||||
|
||||
try {
|
||||
$id = $insystem->id;
|
||||
$result = external::update_competency_framework($id, 'shortname3', 'idnumber3', 'description3', FORMAT_PLAIN, false);
|
||||
$result = external_api::clean_returnvalue(external::update_competency_framework_returns(), $result);
|
||||
$this->fail('Current user cannot should not be able to update the framework.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can update a competency framework with read permissions.
|
||||
*/
|
||||
@@ -338,6 +538,44 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals($framework->id, $competency->competencyframeworkid);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test we can create a competency with manage permissions.
|
||||
*/
|
||||
public function test_create_competency_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
|
||||
$competency = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $incat->id, 0);
|
||||
$competency = (object) external_api::clean_returnvalue(external::create_competency_returns(), $competency);
|
||||
|
||||
$this->assertGreaterThan(0, $competency->timecreated);
|
||||
$this->assertGreaterThan(0, $competency->timemodified);
|
||||
$this->assertEquals($this->catcreator->id, $competency->usermodified);
|
||||
$this->assertEquals('shortname', $competency->shortname);
|
||||
$this->assertEquals('idnumber', $competency->idnumber);
|
||||
$this->assertEquals('description', $competency->description);
|
||||
$this->assertEquals(FORMAT_HTML, $competency->descriptionformat);
|
||||
$this->assertEquals(true, $competency->visible);
|
||||
$this->assertEquals(0, $competency->parentid);
|
||||
$this->assertEquals($incat->id, $competency->competencyframeworkid);
|
||||
|
||||
try {
|
||||
$competency = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $insystem->id, 0);
|
||||
$competency = (object) external_api::clean_returnvalue(external::create_competency_returns(), $competency);
|
||||
$this->fail('User should not be able to create a competency in system context.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we cannot create a competency with nasty data.
|
||||
*/
|
||||
@@ -375,7 +613,48 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
$this->assertEquals(0, $result->parentid);
|
||||
$this->assertEquals($framework->id, $result->competencyframeworkid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can read a competency with manage permissions.
|
||||
*/
|
||||
public function test_read_competencies_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$sysframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$catframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
$id = $incat->id;
|
||||
$result = external::read_competency($id);
|
||||
$result = (object) external_api::clean_returnvalue(external::read_competency_returns(), $result);
|
||||
|
||||
$this->assertGreaterThan(0, $result->timecreated);
|
||||
$this->assertGreaterThan(0, $result->timemodified);
|
||||
$this->assertEquals($this->creator->id, $result->usermodified);
|
||||
$this->assertEquals('shortname', $result->shortname);
|
||||
$this->assertEquals('idnumber', $result->idnumber);
|
||||
$this->assertEquals('description', $result->description);
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
$this->assertEquals(0, $result->parentid);
|
||||
$this->assertEquals($catframework->id, $result->competencyframeworkid);
|
||||
|
||||
try {
|
||||
external::read_competency($insystem->id);
|
||||
$this->fail('User should not be able to read a competency in system context.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -404,7 +683,49 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
$this->assertEquals(0, $result->parentid);
|
||||
$this->assertEquals($framework->id, $result->competencyframeworkid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can read a competency with read permissions.
|
||||
*/
|
||||
public function test_read_competencies_with_read_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$sysframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$catframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
// Switch users to someone with less permissions.
|
||||
$this->setUser($this->catuser);
|
||||
$id = $incat->id;
|
||||
$result = external::read_competency($id);
|
||||
$result = (object) external_api::clean_returnvalue(external::read_competency_returns(), $result);
|
||||
|
||||
$this->assertGreaterThan(0, $result->timecreated);
|
||||
$this->assertGreaterThan(0, $result->timemodified);
|
||||
$this->assertEquals($this->creator->id, $result->usermodified);
|
||||
$this->assertEquals('shortname', $result->shortname);
|
||||
$this->assertEquals('idnumber', $result->idnumber);
|
||||
$this->assertEquals('description', $result->description);
|
||||
$this->assertEquals(FORMAT_HTML, $result->descriptionformat);
|
||||
$this->assertEquals(true, $result->visible);
|
||||
$this->assertEquals(0, $result->parentid);
|
||||
$this->assertEquals($catframework->id, $result->competencyframeworkid);
|
||||
|
||||
try {
|
||||
external::read_competency($insystem->id);
|
||||
$this->fail('User should not be able to read a competency in system context.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -425,6 +746,38 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can delete a competency with manage permissions.
|
||||
*/
|
||||
public function test_delete_competency_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$sysframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$catframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
$id = $incat->id;
|
||||
$result = external::delete_competency($id);
|
||||
$result = external_api::clean_returnvalue(external::delete_competency_returns(), $result);
|
||||
|
||||
$this->assertTrue($result);
|
||||
|
||||
try {
|
||||
$result = external::delete_competency($insystem->id);
|
||||
$this->fail('User should not be able to delete a competency in system context.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can delete a competency with read permissions.
|
||||
*/
|
||||
@@ -460,6 +813,38 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can update a competency with manage permissions.
|
||||
*/
|
||||
public function test_update_competency_with_manage_permissions_in_category() {
|
||||
$this->setUser($this->creator);
|
||||
|
||||
$result = external::create_competency_framework('shortname', 'idnumber', 'description', FORMAT_HTML, true,
|
||||
array('contextid' => context_system::instance()->id));
|
||||
$sysframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$insystem = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$result = external::create_competency_framework('catshortname', 'catidnumber', 'catdescription', FORMAT_HTML, true,
|
||||
array('contextid' => context_coursecat::instance($this->category->id)->id));
|
||||
$catframework = (object) external_api::clean_returnvalue(external::create_competency_framework_returns(), $result);
|
||||
$result = external::create_competency('shortname', 'idnumber', 'description', FORMAT_HTML, true, $result->id, 0);
|
||||
$incat = (object) external_api::clean_returnvalue(external::create_competency_returns(), $result);
|
||||
|
||||
$this->setUser($this->catcreator);
|
||||
|
||||
$result = external::update_competency($incat->id, 'shortname2', 'idnumber2', 'description2', FORMAT_HTML, false);
|
||||
$result = external_api::clean_returnvalue(external::update_competency_returns(), $result);
|
||||
|
||||
$this->assertTrue($result);
|
||||
|
||||
try {
|
||||
external::update_competency($insystem->id, 'shortname2', 'idnumber2', 'description2', FORMAT_HTML, false);
|
||||
$this->fail('User should not be able to update a competency in system context.');
|
||||
} catch (required_capability_exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test we can update a competency with read permissions.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user