Merge branch 'MDL-38007_master' of git://github.com/dmonllao/moodle

This commit is contained in:
Aparup Banerjee 2013-03-05 14:37:05 +08:00
commit 212e5ee909
6 changed files with 159 additions and 8 deletions

View file

@ -101,9 +101,9 @@ class behat_command {
* the behat help command to ensure it works as expected
*
* @param bool $checkphp Extra check for the PHP version
* @return void
* @return int Error code or 0 if all ok
*/
public static function check_behat_setup($checkphp = false) {
public static function behat_setup_problem($checkphp = false) {
global $CFG;
// We don't check the PHP version if $CFG->behat_switchcompletely has been enabled.
@ -123,20 +123,27 @@ class behat_command {
$docslink = html_writer::tag('a', $docslink, array('href' => $docslink, 'target' => '_blank'));
}
$msg .= '. ' . get_string('moreinfoin', 'tool_behat', $docslink);
notice($msg);
self::output_msg($msg);
return BEHAT_EXITCODE_COMPOSER;
}
// Behat test command.
list($output, $code) = self::run(' --help');
if ($code != 0) {
notice(get_string('wrongbehatsetup', 'tool_behat'));
// Returning composer error code to avoid conflicts with behat and moodle error codes.
self::output_msg(get_string('wrongbehatsetup', 'tool_behat'));
return BEHAT_EXITCODE_COMPOSER;
}
// Checking behat dataroot existence otherwise notice about admin/tool/behat/cli/util.php.
// Checking behat dataroot existence otherwise echo about admin/tool/behat/cli/util.php.
if (empty($CFG->behat_dataroot) || !is_dir($CFG->behat_dataroot) || !is_writable($CFG->behat_dataroot)) {
notice(get_string('runclitool', 'tool_behat', 'php admin/tool/behat/cli/util.php'));
self::output_msg(get_string('runclitool', 'tool_behat', 'php admin/tool/behat/cli/util.php'));
return BEHAT_EXITCODE_CONFIG;
}
return 0;
}
/**
@ -150,4 +157,22 @@ class behat_command {
return true;
}
/**
* Outputs a message.
*
* Used in CLI + web UI methods. Stops the
* execution in web.
*
* @param string $msg
* @return void
*/
protected static function output_msg($msg) {
if (!CLI_SCRIPT) {
notice($msg);
} else {
echo $msg;
}
}
}

View file

@ -176,7 +176,9 @@ class behat_util extends testing_util {
}
// Checks the behat set up and the PHP version.
behat_command::check_behat_setup(true);
if ($errorcode = behat_command::behat_setup_problem(true)) {
exit($code);
}
// Check that test environment is correctly set up.
self::test_environment_problem();
@ -196,6 +198,26 @@ class behat_util extends testing_util {
}
}
/**
* Returns the status of the behat test environment
*
* @return int Error code
*/
public static function get_behat_status() {
if (!defined('BEHAT_UTIL')) {
throw new coding_exception('This method can be only used by Behat CLI tool');
}
// Checks the behat set up and the PHP version, returning an error code if something went wrong.
if ($errorcode = behat_command::behat_setup_problem(true)) {
return $code;
}
// Check that test environment is correctly set up, stops execution.
self::test_environment_problem();
}
/**
* Disables test mode
* @throws coding_exception

View file

@ -32,6 +32,7 @@ define('BEHAT_EXITCODE_REQUIREMENT', 251);
define('BEHAT_EXITCODE_PERMISSIONS', 252);
define('BEHAT_EXITCODE_REINSTALL', 253);
define('BEHAT_EXITCODE_INSTALL', 254);
define('BEHAT_EXITCODE_COMPOSER', 255);
/**
* Exits with an error code