include_once __DIR__ . '/parse_args.php';
-abstract class PhpXmlRpc_LocalFileTestCase extends PHPUnit_Framework_TestCase
+include_once __DIR__ . '/PolyfillTestCase.php';
+
+use PHPUnit\Extensions\SeleniumCommon\RemoteCoverage;
+
+/**
+ * @todo rename
+ */
+abstract class PhpXmlRpc_LocalFileTestCase extends PhpXmlRpc_PolyfillTestCase
{
public $args = array();
protected $collectCodeCoverageInformation;
protected $coverageScriptUrl;
- public function run(PHPUnit_Framework_TestResult $result = NULL)
+ /**
+ * Reimplemented to allow us to collect code coverage info for the target php files executed via an http request.
+ * Code taken from PHPUnit_Extensions_Selenium2TestCase
+ *
+ * @todo instead of overriding run via _run, try to achieve this by implementing Yoast\PHPUnitPolyfills\TestListeners\TestListenerDefaultImplementation
+ */
+ public function _run($result = NULL)
{
$this->testId = get_class($this) . '__' . $this->getName();
$this->collectCodeCoverageInformation = $result->getCollectCodeCoverageInformation();
- parent::run($result);
+ parent::_run($result);
if ($this->collectCodeCoverageInformation) {
- $coverage = new PHPUnit_Extensions_SeleniumCommon_RemoteCoverage(
+ $coverage = new RemoteCoverage(
$this->coverageScriptUrl,
$this->testId
);
return $result;
}
- protected function request($file, $method = 'GET', $payload = '')
+ protected function request($file, $method = 'GET', $payload = '', $emptyPageOk = false)
{
$url = $this->baseUrl . $file;
}
if ($this->collectCodeCoverageInformation)
{
- curl_setopt($ch, CURLOPT_COOKIE, 'PHPUNIT_SELENIUM_TEST_ID=true');
+ curl_setopt($ch, CURLOPT_COOKIE, 'PHPUNIT_SELENIUM_TEST_ID='.$this->testId);
}
if ($this->args['DEBUG'] > 0) {
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_close($ch);
$this->assertNotFalse($page);
- $this->assertNotContains('Fatal error', $page);
- $this->assertNotContains('Notice:', $page);
+ if (!$emptyPageOk) {
+ $this->assertNotEquals('', $page);
+ }
+ $this->assertStringNotContainsStringIgnoringCase('Fatal error', $page);
+ $this->assertStringNotContainsStringIgnoringCase('Notice:', $page);
return $page;
}
-
}