diff --git a/admin/tool/phpunit/settings.php b/admin/tool/phpunit/settings.php index efefd32dfab..e42049bbbb0 100644 --- a/admin/tool/phpunit/settings.php +++ b/admin/tool/phpunit/settings.php @@ -27,6 +27,4 @@ defined('MOODLE_INTERNAL') || die; if ($hassiteconfig) { $ADMIN->add('development', new admin_externalpage('toolphpunit', get_string('pluginname', 'tool_phpunit'), "$CFG->wwwroot/$CFG->admin/tool/phpunit/index.php")); - $ADMIN->add('development', new admin_externalpage('toolphpunitwebrunner', get_string('pluginname', 'tool_phpunit'), "$CFG->wwwroot/$CFG->admin/tool/phpunit/webrunner.php", - 'moodle/site:config', true)); } diff --git a/admin/tool/phpunit/upgrade.txt b/admin/tool/phpunit/upgrade.txt new file mode 100644 index 00000000000..4580c988f50 --- /dev/null +++ b/admin/tool/phpunit/upgrade.txt @@ -0,0 +1,4 @@ +This files describes API changes in the tool_phpunit code. + +=== 3.9 === +* webrunner was removed diff --git a/admin/tool/phpunit/webrunner.php b/admin/tool/phpunit/webrunner.php deleted file mode 100644 index 47a2b42ecb6..00000000000 --- a/admin/tool/phpunit/webrunner.php +++ /dev/null @@ -1,192 +0,0 @@ -. - -/** - * PHPUnit shell execution wrapper - * - * @package tool_phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -define('NO_OUTPUT_BUFFERING', true); - -require(__DIR__ . '/../../../config.php'); -require_once($CFG->libdir.'/adminlib.php'); - -$testpath = optional_param('testpath', '', PARAM_PATH); -$testclass = optional_param('testclass', '', PARAM_ALPHANUMEXT); -$execute = optional_param('execute', 0, PARAM_BOOL); - -navigation_node::override_active_url(new moodle_url('/admin/tool/phpunit/index.php')); -admin_externalpage_setup('toolphpunitwebrunner'); - -if (!$CFG->debugdeveloper) { - print_error('notlocalisederrormessage', 'error', '', null, 'Not available on production sites, sorry.'); -} - -core_php_time_limit::raise(60*30); - -$oldcwd = getcwd(); -$code = 0; - -if (!isset($CFG->phpunit_dataroot) or !isset($CFG->phpunit_prefix)) { - tool_phpunit_problem('Missing $CFG->phpunit_dataroot or $CFG->phpunit_prefix, can not execute tests.'); -} -if (!file_exists($CFG->phpunit_dataroot)) { - mkdir($CFG->phpunit_dataroot, 02777, true); -} -if (!is_writable($CFG->phpunit_dataroot)) { - tool_phpunit_problem('$CFG->phpunit_dataroot in not writable, can not execute tests.'); -} -$output = null; -exec('php --version', $output, $code); -if ($code != 0) { - tool_phpunit_problem('Can not execute \'php\' binary.'); -} - -if ($execute) { - require_sesskey(); - - chdir($CFG->dirroot); - $output = null; - exec("php $CFG->admin/tool/phpunit/cli/util.php --diag", $output, $code); - if ($code == 0) { - // everything is ready - - } else if ($code == PHPUNIT_EXITCODE_INSTALL) { - tool_phpunit_header(); - echo $OUTPUT->box_start('generalbox'); - echo '
';
- echo "Initialising test database:\n\n";
- chdir($CFG->dirroot);
- ignore_user_abort(true);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --buildconfig", $code);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --install", $code);
- chdir($oldcwd);
- echo '';
- echo $OUTPUT->box_end();
- if ($code != 0) {
- tool_phpunit_problem('Can not initialize database');
- }
- set_debugging(DEBUG_NONE, false); // Hack: no redirect warning, we really want to redirect.
- redirect(new moodle_url($PAGE->url, array('execute'=>1, 'tespath'=>$testpath, 'testclass'=>$testclass, 'sesskey'=>sesskey())), 'Reloading page');
- echo $OUTPUT->footer();
- die();
-
- } else if ($code == PHPUNIT_EXITCODE_REINSTALL) {
- tool_phpunit_header();
- echo $OUTPUT->box_start('generalbox');
- echo '';
- echo "Reinitialising test database:\n\n";
- chdir($CFG->dirroot);
- ignore_user_abort(true);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --drop", $code);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --buildconfig", $code);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --install", $code);
- chdir($oldcwd);
- echo '';
- echo $OUTPUT->box_end();
- if ($code != 0) {
- tool_phpunit_problem('Can not initialize database');
- }
- set_debugging(DEBUG_NONE, false); // Hack: no redirect warning, we really want to redirect.
- redirect(new moodle_url($PAGE->url, array('execute'=>1, 'tespath'=>$testpath, 'testclass'=>$testclass, 'sesskey'=>sesskey())), 'Reloading page');
- die();
-
- } else {
- tool_phpunit_header();
- echo $OUTPUT->box_start('generalbox');
- echo '';
- echo "Error: $code\n\n";
- echo implode("\n", $output);
- echo '';
- echo $OUTPUT->box_end();
- tool_phpunit_problem('Can not execute tests');
- die();
- }
-
- tool_phpunit_header();
- echo $OUTPUT->box_start('generalbox');
- echo '';
-
- // use the dataroot file
- $configdir = "$CFG->phpunit_dataroot/phpunit/webrunner.xml";
- if (!file_exists($configdir)) {
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --buildconfig", $code);
- if ($code != 0) {
- tool_phpunit_problem('Can not create configuration file');
- }
- }
- $configdir = escapeshellarg($configdir);
- // no cleanup of path - this is tricky because we can not use escapeshellarg and friends for escaping,
- // this is from admin user so PARAM_PATH must be enough
- chdir($CFG->dirroot);
- passthru("php $CFG->admin/tool/phpunit/cli/util.php --run -c $configdir $testclass $testpath", $code);
- chdir($oldcwd);
-
- echo '';
- echo $OUTPUT->box_end();
-
-} else {
- tool_phpunit_header();
-}
-
-echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
-echo '';
-echo $OUTPUT->box_end();
-echo $OUTPUT->footer();
-die;
-
-
-
-//========================================
-
-/**
- * Print headers and experimental warning
- * @return void
- */
-function tool_phpunit_header() {
- global $OUTPUT;
- echo $OUTPUT->header();
- echo $OUTPUT->heading(get_string('pluginname', 'tool_phpunit'));
- echo $OUTPUT->box('EXPERIMENTAL: it is recommended to execute PHPUnit tests and init scripts only from command line.', array('generalbox'));
-}
-
-/**
- * Called when PHPUnit can not execute.
- * @param string $message
- * @return void
- */
-function tool_phpunit_problem($message) {
- global $PAGE;
- if (!$PAGE->headerprinted) {
- tool_phpunit_header();
- }
- notice($message, new moodle_url('/admin/tool/phpunit/'));
-}
diff --git a/lib/phpunit/classes/util.php b/lib/phpunit/classes/util.php
index 2605f6fde15..844cc74ba94 100644
--- a/lib/phpunit/classes/util.php
+++ b/lib/phpunit/classes/util.php
@@ -63,7 +63,7 @@ class phpunit_util extends testing_util {
/**
* @var array Files to skip when dropping dataroot folder
*/
- protected static $datarootskipondrop = array('.', '..', 'lock', 'webrunner.xml');
+ protected static $datarootskipondrop = array('.', '..', 'lock');
/**
* Load global $CFG;
@@ -482,7 +482,7 @@ class phpunit_util extends testing_util {
}
/**
- * Builds dirroot/phpunit.xml and dataroot/phpunit/webrunner.xml files using defaults from /phpunit.xml.dist
+ * Builds dirroot/phpunit.xml file using defaults from /phpunit.xml.dist
* @static
* @return bool true means main config file created, false means only dataroot file created
*/
@@ -570,14 +570,6 @@ class phpunit_util extends testing_util {
}
}
- // relink - it seems that xml:base does not work in phpunit xml files, remove this nasty hack if you find a way to set xml base for relative refs
- $data = str_replace('lib/phpunit/', $CFG->dirroot.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.'phpunit'.DIRECTORY_SEPARATOR, $data);
- $data = preg_replace('|