MDL-63185 core_test: add set_user function to behat

Part of MDL-62610
This commit is contained in:
Simey Lameze
2018-09-28 11:07:21 +08:00
parent 6e4fe9afe0
commit a190910595
+26
View File
@@ -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.
*