MDL-65197 editor: handle empty user preference in privacy export.

This commit is contained in:
Paul Holden
2019-05-01 09:52:59 +01:00
parent 96607cf5b3
commit 29fcc59f88
2 changed files with 17 additions and 1 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ class provider implements
*/
public static function export_user_preferences(int $userid) {
$preference = get_user_preferences('htmleditor');
if (null !== $preference) {
if (!empty($preference)) {
$desc = get_string('privacy:preference:htmleditor', 'core_editor',
get_string('pluginname', "editor_{$preference}"));
writer::export_user_preference('core_editor', 'htmleditor', $preference, $desc);
@@ -36,6 +36,7 @@ defined('MOODLE_INTERNAL') || die();
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_editor_privacy_provider_testcase extends \core_privacy\tests\provider_testcase {
/**
* When no preference exists, there should be no export.
*/
@@ -48,6 +49,21 @@ class core_editor_privacy_provider_testcase extends \core_privacy\tests\provider
$this->assertFalse(writer::with_context(\context_system::instance())->has_any_data());
}
/**
* When preference exists but is empty, there should be no export.
*/
public function test_empty_preference() {
global $USER;
$this->resetAfterTest();
$this->setAdminUser();
set_user_preference('htmleditor', '');
provider::export_user_preferences($USER->id);
$this->assertFalse(writer::with_context(\context_system::instance())->has_any_data());
}
/**
* When an editor is set, the name of that editor will be reported.
*/