diff --git a/config-dist.php b/config-dist.php index 995e0df8b0c..ecd56b6b6fa 100644 --- a/config-dist.php +++ b/config-dist.php @@ -898,13 +898,6 @@ $CFG->admin = 'admin'; // ), // ); // -// 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 this page's extra Moodle settings are compared against a white list of allowed settings // (the basic and behat_* ones) to avoid problems with production environments. This setting can be // used to expand the default white list with an array of extra settings. diff --git a/lib/tests/behat/behat_hooks.php b/lib/tests/behat/behat_hooks.php index 115765a97f0..2ba7b37fda3 100644 --- a/lib/tests/behat/behat_hooks.php +++ b/lib/tests/behat/behat_hooks.php @@ -63,11 +63,6 @@ use Behat\Testwork\Hook\Scope\BeforeSuiteScope, */ class behat_hooks extends behat_base { - /** - * @var Last browser session start time. - */ - protected static $lastbrowsersessionstart = 0; - /** * @var For actions that should only run once. */ @@ -196,12 +191,6 @@ 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(); - } - if (!empty($CFG->behat_faildump_path) && !is_writable($CFG->behat_faildump_path)) { throw new behat_stop_exception('You set $CFG->behat_faildump_path to a non-writable directory'); } @@ -381,15 +370,6 @@ class behat_hooks extends behat_base { $user = $DB->get_record('user', array('username' => 'admin')); \core\session\manager::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) { - $session->restart(); - self::$lastbrowsersessionstart = $now; - } - } - // Set the theme if not default. if ($suitename !== "default") { set_config('theme', $suitename); @@ -576,25 +556,13 @@ class behat_hooks extends behat_base { } /** - * Executed after scenario having switch window to restart session. - * This is needed to close all extra browser windows and starting - * one browser window. + * Reset the session between each scenario. * * @param AfterScenarioScope $scope scope passed by event fired after scenario. - * @AfterScenario @_switch_window + * @AfterScenario */ - public function after_scenario_switchwindow(AfterScenarioScope $scope) { - for ($count = 0; $count < behat_base::get_extended_timeout(); $count++) { - try { - $this->getSession()->restart(); - break; - } catch (DriverException $e) { - // Wait for timeout and try again. - sleep(self::get_timeout()); - } - } - // If session is not restarted above then it will try to start session before next scenario - // and if that fails then exception will be thrown. + public function reset_webdriver_between_scenarios(AfterScenarioScope $scope) { + $this->getSession()->stop(); } /** diff --git a/lib/upgrade.txt b/lib/upgrade.txt index ab9d1d596fd..fd1f97d3f43 100644 --- a/lib/upgrade.txt +++ b/lib/upgrade.txt @@ -6,6 +6,8 @@ information provided here is intended especially for developers. when the modal's height exceeds the browser's height. This is also supported in core/modal_factory through the 'scrollable' config parameter which can be set to either true or false. If not explicitly defined, the default value of 'scrollable' is true. +* The `$CFG->behat_retart_browser_after` configuration setting has been removed. + The browser session is now restarted between all tests. === 3.9 === * Following function has been deprecated, please use \core\task\manager::run_from_cli(). diff --git a/mod/scorm/tests/behat/behat_mod_scorm.php b/mod/scorm/tests/behat/behat_mod_scorm.php deleted file mode 100644 index ed7e16f1821..00000000000 --- a/mod/scorm/tests/behat/behat_mod_scorm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -// This file is part of Moodle - http://moodle.org/ -// -// Moodle is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// Moodle is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Moodle. If not, see <http://www.gnu.org/licenses/>. - -/** - * Steps definitions related to the SCORM activity module. - * - * @package mod_scorm - * @category test - * @copyright 2019 Andrew Nicols <andrew@nicols.co.uk> - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. - -require_once(__DIR__ . '/../../../../lib/behat/behat_base.php'); - -use Behat\Behat\Hook\Scope\AfterScenarioScope; - -/** - * Steps definitions related to the SCORM activity module. - * - * @package mod_scorm - * @category test - * @copyright 2019 Andrew Nicols <andrew@nicols.co.uk> - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class behat_mod_scorm extends behat_base { - - /** - * Restart the Seleium Session after each mod_scorm Scenario. - * - * This prevents issues with the scorm player's onbeforeunload event, and cached SCORM content being served to the - * browser in subsequent tests. - * - * @AfterScenario @mod_scorm - * @param AfterScenarioScope $scope The scenario scope - */ - public function reset_after_scorm(AfterScenarioScope $scope) { - $this->getSession()->stop(); - } -}