MDL-63185 core_test: add set_user function to behat
Part of MDL-62610
This commit is contained in:
@@ -946,6 +946,32 @@ class behat_base extends Behat\MinkExtension\Context\RawMinkContext {
|
||||
return $DB->get_record('user', ['id' => $userid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set current $USER, reset access cache.
|
||||
* @static
|
||||
* @param null|int|stdClass $user user record, null or 0 means non-logged-in, positive integer means userid
|
||||
* @return void
|
||||
*/
|
||||
public static function set_user($user = null) {
|
||||
global $DB;
|
||||
|
||||
if (is_object($user)) {
|
||||
$user = clone($user);
|
||||
} else if (!$user) {
|
||||
// Assign valid data to admin user (some generator-related code needs a valid user).
|
||||
$user = $DB->get_record('user', array('username' => 'admin'));
|
||||
} else {
|
||||
$user = $DB->get_record('user', array('id'=> $user));
|
||||
}
|
||||
unset($user->description);
|
||||
unset($user->access);
|
||||
unset($user->preference);
|
||||
|
||||
// Enusre session is empty, as it may contain caches and user specific info.
|
||||
\core\session\manager::init_empty_session();
|
||||
|
||||
\core\session\manager::set_user($user);
|
||||
}
|
||||
/**
|
||||
* Trigger click on node via javascript instead of actually clicking on it via pointer.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user