Commit de230fd3 authored by Petr Škoda's avatar Petr Škoda
Browse files

MDL-37324 fix phpunit and behat SESSION and USER setup

parent c925e4fa
......@@ -155,8 +155,9 @@ class manager {
$_SESSION['USER']->mnethostid = 1;
}
if (PHPUNIT_TEST) {
// Phpunit tests use reversed reference.
if (PHPUNIT_TEST or defined('BEHAT_TEST')) {
// Phpunit tests and behat init use reversed reference,
// the reason is we can not point global to $_SESSION outside of global scope.
global $USER, $SESSION;
$USER = $_SESSION['USER'];
$SESSION = $_SESSION['SESSION'];
......@@ -597,8 +598,9 @@ class manager {
}
sesskey(); // Init session key.
if (PHPUNIT_TEST) {
// Phpunit tests use reversed reference.
if (PHPUNIT_TEST or defined('BEHAT_TEST')) {
// Phpunit tests and behat init use reversed reference,
// the reason is we can not point global to $_SESSION outside of global scope.
global $USER;
$USER = $_SESSION['USER'];
$_SESSION['USER'] =& $USER;
......
......@@ -765,8 +765,10 @@ if (empty($CFG->sessiontimeout)) {
$CFG->sessiontimeout = 7200;
}
\core\session\manager::start();
$SESSION = &$_SESSION['SESSION'];
$USER = &$_SESSION['USER'];
if (!PHPUNIT_TEST and !defined('BEHAT_TEST')) {
$SESSION =& $_SESSION['SESSION'];
$USER =& $_SESSION['USER'];
}
// Late profiling, only happening if early one wasn't started
if (!empty($CFG->profilingenabled)) {
......
......@@ -162,8 +162,10 @@ class behat_hooks extends behat_base {
behat_selectors::register_moodle_selectors($session);
}
// Avoid some notices / warnings.
// Reset $SESSION.
$_SESSION = array();
$SESSION = new stdClass();
$_SESSION['SESSION'] =& $SESSION;
behat_util::reset_database();
behat_util::reset_dataroot();
......@@ -174,7 +176,7 @@ class behat_hooks extends behat_base {
// Reset the nasty strings list used during the last test.
nasty_strings::reset_used_strings();
// Assing valid data to admin user (some generator-related code needs a valid user).
// Assign valid data to admin user (some generator-related code needs a valid user).
$user = $DB->get_record('user', array('username' => 'admin'));
\core\session\manager::set_user($user);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment