first commit

This commit is contained in:
aschwarz
2023-02-27 10:20:09 +01:00
commit 09ee4a8728
2309 changed files with 449255 additions and 0 deletions

View File

@ -0,0 +1,26 @@
<?php
/**
* Controller for PHPT that implements the SimpleTest unit-testing interface.
*/
class PHPT_Controller_SimpleTest extends SimpleTestCase
{
protected $_path;
public function __construct($path)
{
$this->_path = $path;
parent::__construct($path);
}
public function testPhpt()
{
$suite = new PHPT_Suite(array($this->_path));
$phpt_reporter = new PHPT_Reporter_SimpleTest($this->reporter);
$suite->run($phpt_reporter);
}
}
// vim: et sw=4 sts=4

View File

@ -0,0 +1,86 @@
<?php
/**
* Proxies results from PHPT_Reporter to SimpleTest's reporter
*/
class PHPT_Reporter_SimpleTest implements PHPT_Reporter
{
/** SimpleTest reporter to proxy results to */
protected $reporter;
/** @param SimpleTest reporter */
public function __construct($reporter)
{
$this->reporter = $reporter;
}
// TODO: Figure out what the proper calls should be, since we've given
// each Suite its own UnitTestCase controller
/**
* Called when the Reporter is started from a PHPT_Suite
* @todo Figure out if Suites can be named
*/
public function onSuiteStart(PHPT_Suite $suite)
{
//$this->reporter->paintGroupStart('PHPT Suite', $suite->count());
}
/**
* Called when the Reporter is finished in a PHPT_Suite
*/
public function onSuiteEnd(PHPT_Suite $suite)
{
//$this->reporter->paintGroupEnd('PHPT Suite');
}
/**
* Called when a Case is started
*/
public function onCaseStart(PHPT_Case $case)
{
//$this->reporter->paintCaseStart($case->name);
}
/**
* Called when a Case ends
*/
public function onCaseEnd(PHPT_Case $case)
{
//$this->reporter->paintCaseEnd($case->name);
}
/**
* Called when a Case runs without Exception
*/
public function onCasePass(PHPT_Case $case)
{
$this->reporter->paintPass("{$case->name} in {$case->filename}");
}
/**
* Called when a PHPT_Case_VetoException is thrown during a Case's run()
*/
public function onCaseSkip(PHPT_Case $case, PHPT_Case_VetoException $veto)
{
$this->reporter->paintSkip($veto->getMessage() . ' [' . $case->filename .']');
}
/**
* Called when any Exception other than a PHPT_Case_VetoException is encountered
* during a Case's run()
*/
public function onCaseFail(PHPT_Case $case, PHPT_Case_FailureException $failure)
{
$this->reporter->paintFail($failure->getReason());
}
public function onParserError(Exception $exception)
{
$this->reporter->paintException($exception);
}
}
// vim: et sw=4 sts=4

View File

@ -0,0 +1,36 @@
<?php
class PHPT_Section_PRESKIPIF implements PHPT_Section_RunnableBefore
{
private $_data = null;
private $_runner_factory = null;
public function __construct($data)
{
$this->_data = $data;
$this->_runner_factory = new PHPT_CodeRunner_Factory();
}
public function run(PHPT_Case $case)
{
// @todo refactor this code into PHPT_Util class as its used in multiple places
$filename = dirname($case->filename) . '/' . basename($case->filename, '.php') . '.skip.php';
// @todo refactor to PHPT_CodeRunner
file_put_contents($filename, $this->_data);
$runner = $this->_runner_factory->factory($case);
$runner->ini = "";
$response = $runner->run($filename)->output;
unlink($filename);
if (preg_match('/^skip( - (.*))?/', $response, $matches)) {
$message = !empty($matches[2]) ? $matches[2] : '';
throw new PHPT_Case_VetoException($message);
}
}
public function getPriority()
{
return -2;
}
}