diff --git a/auth/tests/behat/behat_auth.php b/auth/tests/behat/behat_auth.php index 316cc2579fa..e6fcadb71f4 100644 --- a/auth/tests/behat/behat_auth.php +++ b/auth/tests/behat/behat_auth.php @@ -53,7 +53,7 @@ class behat_auth extends behat_base { return; } - $loginurl = new moodle_url('/lib/tests/behat/login.php', [ + $loginurl = new moodle_url('/auth/tests/behat/login.php', [ 'username' => $username, ]); if ($wantsurl !== null) { @@ -70,11 +70,6 @@ class behat_auth extends behat_base { * @Given /^I log out$/ */ public function i_log_out() { - - // Wait for page to be loaded. - $this->wait_for_pending_js(); - - // Click on logout link in footer, as it's much faster. - $this->execute('behat_general::i_click_on_in_the', array(get_string('logout'), 'link', '#page-footer', "css_element")); + $this->execute('behat_general::i_visit', [new moodle_url('/auth/tests/behat/logout.php')]); } } diff --git a/lib/tests/behat/login.php b/auth/tests/behat/login.php similarity index 97% rename from lib/tests/behat/login.php rename to auth/tests/behat/login.php index 8103806d8e3..d9d06b47d71 100644 --- a/lib/tests/behat/login.php +++ b/auth/tests/behat/login.php @@ -58,7 +58,7 @@ if ($failurereason) { $reason = get_string('unauthorisedlogin', 'core', $username); break; default: - $reason = "Unknown login failure: '{$failureeason}'"; + $reason = "Unknown login failure: '{$failurereason}'"; break; } diff --git a/auth/tests/behat/logout.php b/auth/tests/behat/logout.php new file mode 100644 index 00000000000..d2d7a69ade0 --- /dev/null +++ b/auth/tests/behat/logout.php @@ -0,0 +1,41 @@ +. +// phpcs:disable moodle.Files.RequireLogin.Missing +// phpcs:disable moodle.PHP.ForbiddenFunctions.Found + +/** + * Login end point for Behat tests only. + * + * @package core_auth + * @category test + * @copyright Andrew Lyons + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +require(__DIR__.'/../../../config.php'); + +$behatrunning = defined('BEHAT_SITE_RUNNING') && BEHAT_SITE_RUNNING; +if (!$behatrunning) { + redirect(new moodle_url('/login/logout.php')); +} + +require_logout(); + +$login = optional_param('loginpage', 0, PARAM_BOOL); +if ($login) { + redirect(get_login_url()); +} else { + redirect(new moodle_url('/')); +}