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 441f313217
commit 93cb87cddb
3 changed files with 44 additions and 8 deletions

View File

@ -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')]);
}
}

View File

@ -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;
}

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('/'));
}