MDL-72173 behat: Add and use behat logout URL

This commit is contained in:
Andrew Nicols 2021-07-18 21:53:27 +08:00
parent c59450fde9
commit 9448cb11d2
3 changed files with 44 additions and 8 deletions

View file

@ -53,7 +53,7 @@ class behat_auth extends behat_base {
return; return;
} }
$loginurl = new moodle_url('/lib/tests/behat/login.php', [ $loginurl = new moodle_url('/auth/tests/behat/login.php', [
'username' => $username, 'username' => $username,
]); ]);
if ($wantsurl !== null) { if ($wantsurl !== null) {
@ -70,11 +70,6 @@ class behat_auth extends behat_base {
* @Given /^I log out$/ * @Given /^I log out$/
*/ */
public function i_log_out() { public function i_log_out() {
$this->execute('behat_general::i_visit', [new moodle_url('/auth/tests/behat/logout.php')]);
// 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"));
} }
} }

View file

@ -58,7 +58,7 @@ if ($failurereason) {
$reason = get_string('unauthorisedlogin', 'core', $username); $reason = get_string('unauthorisedlogin', 'core', $username);
break; break;
default: default:
$reason = "Unknown login failure: '{$failureeason}'"; $reason = "Unknown login failure: '{$failurereason}'";
break; break;
} }

View file

@ -0,0 +1,41 @@
<?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/>.
// 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 <andrew@nicols.co.uk>
* @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('/'));
}