MDL-65726 role: do not fail unittest if plugins create their roles

This commit is contained in:
Marina Glancy
2019-05-28 19:06:35 +02:00
parent 383aec8a01
commit f2c00a6f22
+15 -7
View File
@@ -727,8 +727,13 @@ class core_accesslib_testcase extends advanced_testcase {
$this->resetAfterTest();
$allroles = get_all_roles();
$this->assertInternalType('array', $allroles);
$this->assertCount(8, $allroles); // There are 8 roles is standard install.
$this->assertIsArray($allroles);
$initialrolescount = count($allroles);
$this->assertTrue($initialrolescount >= 8); // There are 8 roles is standard install.
$rolenames = array_column($allroles, 'shortname');
foreach (get_role_archetypes() as $archetype) {
$this->assertContains($archetype, $rolenames);
}
$role = reset($allroles);
$role = (array)$role;
@@ -750,8 +755,8 @@ class core_accesslib_testcase extends advanced_testcase {
$renames = $DB->get_records_menu('role_names', array('contextid'=>$coursecontext->id), '', 'roleid, name');
$allroles = get_all_roles($coursecontext);
$this->assertInternalType('array', $allroles);
$this->assertCount(9, $allroles);
$this->assertIsArray($allroles);
$this->assertCount($initialrolescount + 1, $allroles);
$role = reset($allroles);
$role = (array)$role;
@@ -784,11 +789,11 @@ class core_accesslib_testcase extends advanced_testcase {
public function test_get_archetype_roles() {
$this->resetAfterTest();
// New install should have 1 role for each archetype.
// New install should have at least 1 role for each archetype.
$archetypes = get_role_archetypes();
foreach ($archetypes as $archetype) {
$roles = get_archetype_roles($archetype);
$this->assertCount(1, $roles);
$this->assertGreaterThanOrEqual(1, count($roles));
$role = reset($roles);
$this->assertSame($archetype, $role->archetype);
}
@@ -818,8 +823,11 @@ class core_accesslib_testcase extends advanced_testcase {
$renames = $DB->get_records_menu('role_names', array('contextid'=>$coursecontext->id), '', 'roleid, name');
foreach ($allroles as $role) {
if (in_array($role->shortname, get_role_archetypes())) {
// Standard roles do not have a set name.
$this->assertSame('', $role->name);
}
// Get localised name from lang pack.
$this->assertSame('', $role->name);
$name = role_get_name($role, null, ROLENAME_ORIGINAL);
$this->assertNotEmpty($name);
$this->assertNotEquals($role->shortname, $name);