1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 namespace message_email\privacy; 18 19 use context_system; 20 use core_message_external; 21 use core_privacy\local\request\writer; 22 use core_privacy\tests\provider_testcase; 23 24 /** 25 * Unit tests for message\output\email\classes\privacy\provider.php 26 * 27 * @package message_email 28 * @covers \message_email\privacy\provider 29 * @copyright 2018 Mihail Geshoski <mihail@moodle.com> 30 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 31 */ 32 class provider_test extends provider_testcase { 33 /** 34 * Basic setup for these tests. 35 */ 36 public function setUp(): void { 37 $this->resetAfterTest(true); 38 } 39 40 /** 41 * Test returning metadata. 42 */ 43 public function test_get_metadata() { 44 $collection = new \core_privacy\local\metadata\collection('message_email'); 45 $collection = \message_email\privacy\provider::get_metadata($collection); 46 $this->assertNotEmpty($collection); 47 } 48 49 /** 50 * Test getting the context for the user ID related to this plugin. 51 */ 52 public function test_get_contexts_for_userid() { 53 $user = $this->getDataGenerator()->create_user(); 54 55 $contextlist = \message_email\privacy\provider::get_contexts_for_userid($user->id); 56 $this->assertEmpty($contextlist); 57 } 58 59 /** 60 * Test exporting user preferences 61 */ 62 public function test_export_user_preferences(): void { 63 global $CFG; 64 65 require_once("{$CFG->dirroot}/message/externallib.php"); 66 67 $user = $this->getDataGenerator()->create_user(); 68 $this->setUser($user); 69 70 // Submit configuration form, which adds the preferences.. 71 core_message_external::message_processor_config_form($user->id, 'email', [ 72 [ 73 'name' => 'email_email', 74 'value' => 'alternate@example.com', 75 ], 76 ]); 77 78 // Switch to admin user (so we can validate preferences of the correct user are being exported). 79 $this->setAdminUser(); 80 81 provider::export_user_preferences($user->id); 82 83 $writer = writer::with_context(context_system::instance()); 84 $this->assertTrue($writer->has_any_data()); 85 86 $preferences = $writer->get_user_preferences('message_email'); 87 $this->assertNotEmpty($preferences->email); 88 89 $this->assertEquals('alternate@example.com', $preferences->email->value); 90 $this->assertEquals(get_string('privacy:preference:email', 'message_email'), $preferences->email->description); 91 } 92 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body