mirror of
https://github.com/moodle/moodle.git
synced 2025-03-14 04:30:15 +01:00
Merge branch 'MDL-39686_master' of git://github.com/dmonllao/moodle
This commit is contained in:
commit
e6302a3c75
@ -587,6 +587,13 @@ $CFG->admin = 'admin';
|
||||
// Example:
|
||||
// $CFG->behat_switchcompletely = true;
|
||||
//
|
||||
// You can force the browser session (not user's sessions) to restart after N seconds. This could
|
||||
// be useful if you are using a cloud-based service with time restrictions in the browser side.
|
||||
// Setting this value the browser session that Behat is using will be restarted. Set the time in
|
||||
// seconds. Is not recommended to use this setting if you don't explicitly need it.
|
||||
// Example:
|
||||
// $CFG->behat_restart_browser_after = 7200; // Restarts the browser session after 2 hours
|
||||
//
|
||||
|
||||
//=========================================================================
|
||||
// ALL DONE! To continue installation, visit your main page with a browser
|
||||
|
@ -54,6 +54,11 @@ use Behat\Behat\Event\SuiteEvent as SuiteEvent,
|
||||
*/
|
||||
class behat_hooks extends behat_base {
|
||||
|
||||
/**
|
||||
* @var Last browser session start time.
|
||||
*/
|
||||
protected static $lastbrowsersessionstart = 0;
|
||||
|
||||
/**
|
||||
* Gives access to moodle codebase, ensures all is ready and sets up the test lock.
|
||||
*
|
||||
@ -102,6 +107,12 @@ class behat_hooks extends behat_base {
|
||||
}
|
||||
// Avoid parallel tests execution, it continues when the previous lock is released.
|
||||
test_lock::acquire('behat');
|
||||
|
||||
// Store the browser reset time if reset after N seconds is specified in config.php.
|
||||
if (!empty($CFG->behat_restart_browser_after)) {
|
||||
// Store the initial browser session opening.
|
||||
self::$lastbrowsersessionstart = time();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -138,6 +149,15 @@ class behat_hooks extends behat_base {
|
||||
$user = $DB->get_record('user', array('username' => 'admin'));
|
||||
session_set_user($user);
|
||||
|
||||
// Reset the browser if specified in config.php.
|
||||
if (!empty($CFG->behat_restart_browser_after) && $this->running_javascript()) {
|
||||
$now = time();
|
||||
if (self::$lastbrowsersessionstart + $CFG->behat_restart_browser_after < $now) {
|
||||
$this->getSession()->restart();
|
||||
self::$lastbrowsersessionstart = $now;
|
||||
}
|
||||
}
|
||||
|
||||
// Start always in the the homepage.
|
||||
$this->getSession()->visit($this->locate_path('/'));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user