diff --git a/lib/classes/context/module.php b/lib/classes/context/module.php index e1db534868f..6322a34cbb9 100644 --- a/lib/classes/context/module.php +++ b/lib/classes/context/module.php @@ -170,15 +170,7 @@ class module extends context { $subcaps = array(); $modulepath = "{$CFG->dirroot}/mod/{$module->name}"; - if (file_exists("{$modulepath}/db/subplugins.json")) { - $subplugins = (array) json_decode(file_get_contents("{$modulepath}/db/subplugins.json"))->plugintypes; - } else if (file_exists("{$modulepath}/db/subplugins.php")) { - debugging('Use of subplugins.php has been deprecated. ' . - 'Please update your plugin to provide a subplugins.json file instead.', - DEBUG_DEVELOPER); - $subplugins = array(); // Should be redefined in the file. - include("{$modulepath}/db/subplugins.php"); - } + $subplugins = \core\component::get_subplugins("mod_{$module->name}"); if (!empty($subplugins)) { foreach (array_keys($subplugins) as $subplugintype) { diff --git a/lib/tests/context/module_test.php b/lib/tests/context/module_test.php index 033d3ea895b..6aadffaa06b 100644 --- a/lib/tests/context/module_test.php +++ b/lib/tests/context/module_test.php @@ -189,13 +189,16 @@ class module_test extends \advanced_testcase { $this->resetAfterTest(); $course = $this->getDataGenerator()->create_course(); - $page = $this->getDataGenerator()->create_module('page', ['course' => $course->id, 'name' => 'Pokus']); - $context = module::instance($page->cmid); + $mod = $this->getDataGenerator()->create_module('book', ['course' => $course->id, 'name' => 'Pokus']); + $context = module::instance($mod->cmid); $capabilities = $context->get_capabilities(); $capabilities = convert_to_array($capabilities); $capabilities = array_column($capabilities, 'name'); - $this->assertContains('mod/page:view', $capabilities); + + $this->assertContains('mod/book:read', $capabilities); + $this->assertContains('booktool/exportimscp:export', $capabilities); + $this->assertContains('booktool/importhtml:import', $capabilities); $this->assertNotContains('mod/url:view', $capabilities); $this->assertNotContains('moodle/course:view', $capabilities); $this->assertNotContains('moodle/category:manage', $capabilities);