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', '/demo/', $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 testAgeSort() { $page = $this->request('client/agesort.php'); } public function testClient() { $page = $this->request('client/client.php'); // we could test many more calls to the client demo, but the upstream server is gone anyway... $page = $this->request('client/client.php', 'POST', array('stateno' => '1')); } public function testComment() { $page = $this->request('client/comment.php'); $page = $this->request('client/client.php', 'POST', array('storyid' => '1')); } public function testIntrospect() { $page = $this->request('client/introspect.php'); } public function testMail() { $page = $this->request('client/mail.php'); $page = $this->request('client/client.php', 'POST', array( 'server' => '', "mailto" => '', "mailsub" => '', "mailmsg" => '', "mailfrom" => '', "mailcc" => '', "mailbcc" => '', )); } public function testSimpleCall() { $page = $this->request('client/simple_call.php'); } public function testWhich() { $page = $this->request('client/which.php'); } public function testWrap() { $page = $this->request('client/wrap.php'); } public function testZopeTest() { $page = $this->request('client/zopetest.php'); } public function testDiscussServer() { $page = $this->request('server/discuss.php'); $this->assertContains('faultCode', $page); $this->assertRegexp('#10(5|3)#', $page); } public function testProxyServer() { $page = $this->request('server/proxy.php'); $this->assertContains('faultCode', $page); $this->assertRegexp('#10(5|3)#', $page); } }