mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
MDL-76862 user: Unit test for setting user home page preferences
This commit is contained in:
parent
f3c335b376
commit
6a6f5b79dd
@ -1675,4 +1675,36 @@ class externallib_test extends externallib_advanced_testcase {
|
||||
$this->assertEquals('email', $user['extrafields'][0]['name']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test verifying that update_user_preferences prevents changes to the default homepage for other users.
|
||||
*/
|
||||
public function test_update_user_preferences_homepage_permission_callback() {
|
||||
global $DB;
|
||||
$this->resetAfterTest();
|
||||
|
||||
$user = self::getDataGenerator()->create_user();
|
||||
$this->setUser($user);
|
||||
$adminuser = get_admin();
|
||||
|
||||
// Allow user selection of the default homepage via preferences.
|
||||
set_config('defaulthomepage', HOMEPAGE_USER);
|
||||
|
||||
// Try to save another user's home page preference which uses the permissioncallback.
|
||||
$preferences = [
|
||||
[
|
||||
'name' => 'user_home_page_preference',
|
||||
'value' => '3',
|
||||
'userid' => $adminuser->id,
|
||||
]
|
||||
];
|
||||
$result = core_user_external::set_user_preferences($preferences);
|
||||
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
|
||||
$this->assertCount(1, $result['warnings']);
|
||||
$this->assertCount(0, $result['saved']);
|
||||
|
||||
// Verify no change to the preference, checking from DB to avoid cache.
|
||||
$this->assertEquals(null, $DB->get_field('user_preferences', 'value',
|
||||
['userid' => $adminuser->id, 'name' => 'user_home_page_preference']));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user