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; } public function setUp() { $this->args = argParser::getArgs(); $this->baseUrl = $this->args['LOCALSERVER'] . str_replace( '/demo/server/server.php', '/debugger/', $this->args['URI'] ); $this->coverageScriptUrl = 'http://' . $this->args['LOCALSERVER'] . '/' . str_replace( '/demo/server/server.php', 'tests/phpunit_coverage.php', $this->args['URI'] ); } protected function request($file, $method = 'GET', $payload = '') { $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); $this->assertNotContains('Fatal error', $page); $this->assertNotContains('Notice:', $page); return $page; } public function testIndex() { $page = $this->request('index.php'); } public function testController() { $page = $this->request('controller.php'); } /** * @todo test: * - list methods * - describe a method * - execute a method * - wrap a method */ public function testAction() { $page = $this->request('action.php'); } }