81 lines
2.2 KiB
PHP
81 lines
2.2 KiB
PHP
<?php
|
|
|
|
include_once __DIR__ . '/parse_args.php';
|
|
|
|
abstract class PhpXmlRpc_LocalFileTestCase extends PHPUnit_Framework_TestCase
|
|
{
|
|
public $args = array();
|
|
|
|
protected $baseUrl;
|
|
|
|
protected $testId;
|
|
/** @var boolean $collectCodeCoverageInformation */
|
|
protected $collectCodeCoverageInformation;
|
|
protected $coverageScriptUrl;
|
|
|
|
public function run(PHPUnit_Framework_TestResult $result = NULL)
|
|
{
|
|
$this->testId = get_class($this) . '__' . $this->getName();
|
|
|
|
if ($result === NULL) {
|
|
$result = $this->createResult();
|
|
}
|
|
|
|
$this->collectCodeCoverageInformation = $result->getCollectCodeCoverageInformation();
|
|
|
|
parent::run($result);
|
|
|
|
if ($this->collectCodeCoverageInformation) {
|
|
$coverage = new PHPUnit_Extensions_SeleniumCommon_RemoteCoverage(
|
|
$this->coverageScriptUrl,
|
|
$this->testId
|
|
);
|
|
$result->getCodeCoverage()->append(
|
|
$coverage->get(), $this
|
|
);
|
|
}
|
|
|
|
// do not call this before to give the time to the Listeners to run
|
|
//$this->getStrategy()->endOfTest($this->session);
|
|
|
|
return $result;
|
|
}
|
|
|
|
protected function request($file, $method = 'GET', $payload = '', $emptyPageOk = false)
|
|
{
|
|
$url = $this->baseUrl . $file;
|
|
|
|
$ch = curl_init($url);
|
|
curl_setopt_array($ch, array(
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_FAILONERROR => true
|
|
));
|
|
if ($method == 'POST')
|
|
{
|
|
curl_setopt_array($ch, array(
|
|
CURLOPT_POST => true,
|
|
CURLOPT_POSTFIELDS => $payload
|
|
));
|
|
}
|
|
if ($this->collectCodeCoverageInformation)
|
|
{
|
|
curl_setopt($ch, CURLOPT_COOKIE, 'PHPUNIT_SELENIUM_TEST_ID=true');
|
|
}
|
|
if ($this->args['DEBUG'] > 0) {
|
|
curl_setopt($ch, CURLOPT_VERBOSE, 1);
|
|
}
|
|
$page = curl_exec($ch);
|
|
curl_close($ch);
|
|
|
|
$this->assertNotFalse($page);
|
|
if (!$emptyPageOk) {
|
|
$this->assertNotEquals('', $page);
|
|
}
|
|
$this->assertNotContains('Fatal error', $page);
|
|
$this->assertNotContains('Notice:', $page);
|
|
|
|
return $page;
|
|
}
|
|
|
|
}
|