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

This commit is contained in:
Paul Holden 2019-03-27 12:01:42 +00:00
parent 3271c39c74
commit 38cb434ba6
2 changed files with 17 additions and 1 deletions

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);

View File

@ -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.
*/