mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
Merge branch 'wip-mdl-56898-fix3' of https://github.com/rajeshtaneja/moodle
This commit is contained in:
commit
2ecb3ffa97
@ -15,6 +15,7 @@ Feature: Forms manipulation
|
||||
Then the field "First name" matches value "Field value"
|
||||
And the "Select a country" select box should contain "Japan"
|
||||
And the field "New password" matches value "TestPass"
|
||||
And I take focus off "Update profile" "button"
|
||||
And I press "Update profile"
|
||||
|
||||
@javascript
|
||||
|
@ -61,6 +61,10 @@ 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"));
|
||||
}
|
||||
|
@ -64,6 +64,9 @@ class behat_enrol extends behat_base {
|
||||
// Set form fields.
|
||||
$this->execute("behat_forms::i_set_the_following_fields_to_these_values", $table);
|
||||
|
||||
// Ensure we get button in focus, before pressing button.
|
||||
$this->execute("behat_general::i_take_focus_off_field", array(get_string('addinstance', 'enrol'), "button"));
|
||||
|
||||
// Save changes.
|
||||
$this->execute("behat_forms::press_button", get_string('addinstance', 'enrol'));
|
||||
|
||||
|
@ -134,13 +134,6 @@ function behat_error_handler($errno, $errstr, $errfile, $errline, $errcontext) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// No need to report the before_scenario warning generated to clear last error.
|
||||
// As error_clear_last is only available in php 7.0+, we trigger E_USER_WARNING
|
||||
// to clear any last error which was generated during reset in before_scenario.
|
||||
if (($errno === E_USER_WARNING) && $errstr == 'before_scenario') {
|
||||
return;
|
||||
}
|
||||
|
||||
// This error handler receives E_ALL | E_STRICT, running the behat test site the debug level is
|
||||
// set to DEVELOPER and will always include E_NOTICE,E_USER_NOTICE... as part of E_ALL, if the current
|
||||
// error_reporting() value does not include one of those levels is because it has been forced through
|
||||
@ -183,13 +176,6 @@ function behat_shutdown_function() {
|
||||
// Ignore E_WARNING, as they might come via ( @ )suppression and might lead to false failure.
|
||||
if (isset($error['type']) && !($error['type'] & E_WARNING)) {
|
||||
|
||||
// No need to report the before_scenario warning generated to clear last error.
|
||||
// As error_clear_last is only available in php 7.0+, we trigger E_USER_WARNING
|
||||
// to clear any last error which was generated during reset in before_scenario.
|
||||
if (($error['type'] & E_USER_WARNING) && $error['message'] == 'before_scenario') {
|
||||
return;
|
||||
}
|
||||
|
||||
$errors = behat_get_shutdown_process_errors();
|
||||
|
||||
$errors[] = $error;
|
||||
|
@ -103,13 +103,6 @@ class behat_hooks extends behat_base {
|
||||
*/
|
||||
protected static $runningsuite = '';
|
||||
|
||||
/**
|
||||
* Keeps track of php error generated during reset.
|
||||
*
|
||||
* @var int keep track of how many php errors were generated.
|
||||
*/
|
||||
public static $phperrorduringresetcounter = 0;
|
||||
|
||||
/**
|
||||
* Hook to capture BeforeSuite event so as to give access to moodle codebase.
|
||||
* This will try and catch any exception and exists if anything fails.
|
||||
@ -346,30 +339,12 @@ class behat_hooks extends behat_base {
|
||||
// Reset $SESSION.
|
||||
\core\session\manager::init_empty_session();
|
||||
|
||||
// Set custom handler to try reset all data, if failed because of previous ajax.
|
||||
set_error_handler(
|
||||
function($errno, $errstr, $errfile, $errline) {
|
||||
behat_hooks::$phperrorduringresetcounter++;
|
||||
if (behat_hooks::$phperrorduringresetcounter < self::TIMEOUT) {
|
||||
sleep(1);
|
||||
behat_util::reset_all_data();
|
||||
}
|
||||
return true;
|
||||
}, -1 & ~E_NOTICE & ~E_WARNING);
|
||||
// Ignore E_NOTICE and E_WARNING during reset, as this might be caused because of some existing process
|
||||
// running ajax. This will be investigated in another issue.
|
||||
$errorlevel = error_reporting();
|
||||
error_reporting($errorlevel & ~E_NOTICE & ~E_WARNING);
|
||||
behat_util::reset_all_data();
|
||||
restore_error_handler();
|
||||
|
||||
// Trigger an error which will be ignored by behat_shutdown_function, this is hacky way to clear last error in php < 7.0.
|
||||
if (self::$phperrorduringresetcounter > 0) {
|
||||
if (function_exists('error_clear_last')) {
|
||||
error_clear_last();
|
||||
} else {
|
||||
trigger_error('before_scenario', E_USER_WARNING);
|
||||
}
|
||||
}
|
||||
|
||||
// Reset the counter here, as this won't be required.
|
||||
self::$phperrorduringresetcounter = 0;
|
||||
error_reporting($errorlevel);
|
||||
|
||||
// Assign valid data to admin user (some generator-related code needs a valid user).
|
||||
$user = $DB->get_record('user', array('username' => 'admin'));
|
||||
@ -422,7 +397,6 @@ class behat_hooks extends behat_base {
|
||||
public function after_scenario(AfterScenarioScope $scope) {
|
||||
try {
|
||||
$this->wait_for_pending_js();
|
||||
$this->getSession()->visit($this->locate_path('/README.txt'));
|
||||
$this->getSession()->reset();
|
||||
} catch (DriverException $e) {
|
||||
// Try restart session, if DriverException caught.
|
||||
|
Loading…
x
Reference in New Issue
Block a user