Files
programming/lib/phpxmlrpc/tests/LocalFileTestCase.php
2026-02-07 09:46:32 +08:00

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;
}
}