From 8072628a6726b262c425e2d515feadbb83459454 Mon Sep 17 00:00:00 2001 From: Neill Magill Date: Wed, 26 Nov 2014 14:28:56 +0000 Subject: [PATCH] MDL-48177 core: Plugin environment checks with no version of Moodle The environment.xml files in plugins force you to define the versions of Moodle that the checks should be carried out against. For community plugins the environment requirements of the plugin seem unlikely to be dependant on the version of Moodle. This patch will allow the environment.xml files to use a new tag in place of the part:$environment_result->info), fix all warnings and errors!"); } } + + /** + * Test the get_list_of_environment_versions() function. + */ + public function test_get_list_of_environment_versions() { + global $CFG; + require_once($CFG->libdir.'/environmentlib.php'); + // Build a sample xmlised environment.xml. + $xml = << + + + + + + + + + + + + + + + + + + + + + + + + + + +END; + $environemt = xmlize($xml); + $versions = get_list_of_environment_versions($environemt); + $this->assertCount(5, $versions); + $this->assertContains('1.9', $versions); + $this->assertContains('2.5', $versions); + $this->assertContains('2.6', $versions); + $this->assertContains('2.7', $versions); + $this->assertContains('all', $versions); + } + + /** + * Test the environment_verify_plugin() function. + */ + public function test_verify_plugin() { + global $CFG; + require_once($CFG->libdir.'/environmentlib.php'); + // Build sample xmlised environment file fragments. + $plugin1xml = << + + + + +END; + $plugin1 = xmlize($plugin1xml); + $plugin2xml = << + + + + +END; + $plugin2 = xmlize($plugin2xml); + $this->assertTrue(environment_verify_plugin('block_testcase', $plugin1['PLUGIN'])); + $this->assertFalse(environment_verify_plugin('block_testcase', $plugin2['PLUGIN'])); + $this->assertFalse(environment_verify_plugin('mod_someother', $plugin1['PLUGIN'])); + $this->assertFalse(environment_verify_plugin('mod_someother', $plugin2['PLUGIN'])); + } } diff --git a/lib/upgrade.txt b/lib/upgrade.txt index 95ab70c0f50..6971492668f 100644 --- a/lib/upgrade.txt +++ b/lib/upgrade.txt @@ -11,6 +11,9 @@ information provided here is intended especially for developers. * The file pluginlib.php was deprecated since 2.6 and has now been removed, do not include or require it. * \core_component::fetch_subsystems() now returns a valid path for completion component instead of null. * Deprecated JS global methods have been removed (show_item, destroy_item, hide_item, addonload, getElementsByTagName, findChildNodes). +* For 3rd party plugin specific environment.xml files, it's now possible to specify version independent checks by using the + tag instead of the version dependent one. If the PLUGIN tag is used any + Moodle specific tags will be ignored. === 2.8 ===