mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
eb9ca848fa
Behat 3.x doesn't support chained steps and hence this is first step to get rid of chained steps in core.
79 lines
2.8 KiB
PHP
79 lines
2.8 KiB
PHP
<?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/>.
|
|
|
|
/**
|
|
* Basic authentication steps definitions.
|
|
*
|
|
* @package core_auth
|
|
* @category test
|
|
* @copyright 2012 David Monllaó
|
|
* @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');
|
|
|
|
/**
|
|
* Log in log out steps definitions.
|
|
*
|
|
* @package core_auth
|
|
* @category test
|
|
* @copyright 2012 David Monllaó
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class behat_auth extends behat_base {
|
|
|
|
/**
|
|
* Logs in the user. There should exist a user with the same value as username and password.
|
|
*
|
|
* @Given /^I log in as "(?P<username_string>(?:[^"]|\\")*)"$/
|
|
*/
|
|
public function i_log_in_as($username) {
|
|
// Visit login page.
|
|
$this->getSession()->visit($this->locate_path('login/index.php'));
|
|
|
|
// Enter username and password.
|
|
$this->execute('behat_forms::i_set_the_field_to', array('Username', $this->escape($username)));
|
|
$this->execute('behat_forms::i_set_the_field_to', array('Password', $this->escape($username)));
|
|
|
|
// Press log in button, no need to check for exceptions as it will checked after this step execution.
|
|
$this->execute('behat_forms::press_button', get_string('login'));
|
|
}
|
|
|
|
/**
|
|
* Logs out of the system.
|
|
*
|
|
* @Given /^I log out$/
|
|
*/
|
|
public function i_log_out() {
|
|
// There is no longer any need to worry about whether the navigation
|
|
// bar needs to be expanded; user_menu now lives outside the
|
|
// hamburger.
|
|
|
|
// However, the user menu *always* needs to be expanded. if running JS.
|
|
if ($this->running_javascript()) {
|
|
$xpath = "//div[@class='usermenu']//a[contains(concat(' ', @class, ' '), ' toggle-display ')]";
|
|
|
|
$this->execute('behat_general::i_click_on', array($xpath, "xpath_element"));
|
|
}
|
|
|
|
// No need to check for exceptions as it will checked after this step execution.
|
|
$this->execute('behat_general::click_link', get_string('logout'));
|
|
}
|
|
}
|