From 3ea7982a8529e925715d981e6d70b277e8ec4afc Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Sun, 18 Jul 2021 21:53:27 +0800 Subject: [PATCH] MDL-72173 behat: Add and use behat logout URL --- auth/tests/behat/behat_auth.php | 9 ++----- {lib => auth}/tests/behat/login.php | 2 +- auth/tests/behat/logout.php | 41 +++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 8 deletions(-) rename {lib => auth}/tests/behat/login.php (97%) create mode 100644 auth/tests/behat/logout.php diff --git a/auth/tests/behat/behat_auth.php b/auth/tests/behat/behat_auth.php index 316cc2579fadd..e6fcadb71f42b 100644 --- a/auth/tests/behat/behat_auth.php +++ b/auth/tests/behat/behat_auth.php @@ -53,7 +53,7 @@ public function i_log_in_as(string $username, moodle_url $wantsurl = null) { 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 @@ public function i_log_in_as(string $username, moodle_url $wantsurl = null) { * @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 8103806d8e323..d9d06b47d7177 100644 --- a/lib/tests/behat/login.php +++ b/auth/tests/behat/login.php @@ -58,7 +58,7 @@ $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 0000000000000..d2d7a69ade052 --- /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('/')); +}