Merge branch 'wip-MDL-61815-33' of git://github.com/abgreeve/moodle into MOODLE_33_STABLE

This commit is contained in:
Jake Dallimore
2018-04-03 17:54:43 +08:00
4 changed files with 29 additions and 2 deletions
@@ -78,7 +78,7 @@ class plugintype_link implements type {
* @return array
*/
public function get_privacy_fields() {
return null;
return [];
}
/**
@@ -78,7 +78,7 @@ class subsystem_link implements type {
* @return array
*/
public function get_privacy_fields() {
return null;
return [];
}
/**
+15
View File
@@ -131,6 +131,21 @@ class manager {
return false;
}
/**
* Retrieve the reason for implementing the null provider interface.
*
* @param string $component Frankenstyle component name.
* @return string The key to retrieve the language string for the null provider reason.
*/
public function get_null_provider_reason($component) {
if ($this->component_implements($component, \core_privacy\local\metadata\null_provider::class)) {
$classname = $this->get_provider_classname($component);
return $classname::get_reason();
} else {
throw new \coding_exception('Call to undefined method', 'Please only call this method on a null provider.');
}
}
/**
* Get the privacy metadata for all components.
*
+12
View File
@@ -201,4 +201,16 @@ class privacy_manager_testcase extends advanced_testcase {
$metadata = $manager->get_metadata_for_components();
$this->assertNotEmpty($metadata);
}
/**
* Test that the reason for the null provider is returned.
*/
public function test_get_null_provider_reason() {
$manager = new \core_privacy\manager();
// Null providers return the reason string.
$this->assertEquals('testcomponent2 null provider reason', $manager->get_null_provider_reason('mod_testcomponent2'));
// Throw an exception if the wrong type of provider is given.
$this->expectException(\coding_exception::class);
$string = $manager->get_null_provider_reason('mod_testcomponent');
}
}