Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

< /** < * Metadata registry tests. < * < * @package tool_dataprivacy < * @copyright 2018 Adrian Greeve <adriangreeve.com> < * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later < */ < < defined('MOODLE_INTERNAL') || die(); < global $CFG;
> namespace tool_dataprivacy;
/** * Metadata registry tests. * * @package tool_dataprivacy * @copyright 2018 Adrian Greeve <adriangreeve.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */
< class tool_dataprivacy_metadata_registry_testcase extends advanced_testcase {
> class metadata_registry_test extends \advanced_testcase {
/** * Fetch the meta data and return it in a form that we can easily unit test. * * @return array the meta data. */ protected function get_meta_data() { $metadataregistry = new \tool_dataprivacy\metadata_registry(); $data = $metadataregistry->get_registry_metadata(); $newdata = []; foreach ($data as $value) { $additional = []; foreach ($value['plugins'] as $moredata) { $additional[$moredata['raw_component']] = $moredata; } $newdata[$value['plugin_type_raw']] = $additional; } return $newdata; } /** * Test that we can fetch metadata about users for the whole system and that it matches the system count. */ public function test_get_registry_metadata_count() { $data = $this->get_meta_data(); $plugintypes = \core_component::get_plugin_types(); // Check that we have the correct number of plugin types. $plugincount = count($plugintypes) + 1; // Plus one for core. $this->assertEquals($plugincount, count($data)); // Check that each plugin count matches. foreach ($plugintypes as $plugintype => $notused) { $plugins = \core_component::get_plugin_list($plugintype); $this->assertEquals(count($plugins), count($data[$plugintype])); } // Let's check core subsystems. // The Privacy API adds an extra component in the form of 'core'. $coresubsystems = \core_component::get_core_subsystems(); $this->assertEquals(count($coresubsystems) + 1, count($data['core'])); } /** * Check that the expected null provider information is returned. */ public function test_get_registry_metadata_null_provider_details() { $data = $this->get_meta_data(); // Check details of core privacy (a null privder) are correct. $coreprivacy = $data['core']['core_privacy']; $this->assertEquals(1, $coreprivacy['compliant']); $this->assertNotEmpty($coreprivacy['nullprovider']); } /** * Check that the expected privacy provider information is returned. */ public function test_get_registry_metadata_provider_details() { $data = $this->get_meta_data(); // Check details of core rating (a normal provider) are correct. $corerating = $data['core']['core_rating']; $this->assertEquals(1, $corerating['compliant']); $this->assertNotEmpty($corerating['metadata']); $this->assertEquals('database_table', $corerating['metadata'][0]['type']); $this->assertNotEmpty($corerating['metadata'][0]['fields']); } }