Permalink
Browse files

MDL-39686 behat: Add option to restart the browser

  • Loading branch information...
1 parent 268cb03 commit c0b59154ba9ed8ac40ba1bdac2046330c571ae94 @dmonllao dmonllao committed May 15, 2013
Showing with 20 additions and 0 deletions.
  1. +20 −0 lib/tests/behat/behat_hooks.php
@@ -54,6 +54,11 @@
*/
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 @@ public static function before_suite($event) {
}
// 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 @@ public function before_scenario($event) {
$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('/'));

0 comments on commit c0b5915

Please sign in to comment.