From 9ffe753899c3103deb271908e0be352e29aa770e Mon Sep 17 00:00:00 2001 From: gggeek Date: Fri, 27 Mar 2015 08:51:29 +0000 Subject: [PATCH] Add tests for the demo files not to have fatal errors --- composer.json | 3 +- tests/1ParsingBugsTest.php | 15 +++- tests/5DemofilesTest.php | 154 +++++++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 5 deletions(-) create mode 100644 tests/5DemofilesTest.php diff --git a/composer.json b/composer.json index bae04ba9..51130cb2 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,8 @@ "require-dev": { "phpunit/phpunit": ">=4.0.0", "phpunit/phpunit-selenium": "*", - "codeclimate/php-test-reporter": "dev-master" + "codeclimate/php-test-reporter": "dev-master", + "ext-curl": "*" }, "suggest": { "ext-curl": "Needed for HTTPS and HTTP 1.1 support, NTLM Auth etc...", diff --git a/tests/1ParsingBugsTest.php b/tests/1ParsingBugsTest.php index db03a478..0868a918 100644 --- a/tests/1ParsingBugsTest.php +++ b/tests/1ParsingBugsTest.php @@ -14,6 +14,13 @@ class ParsingBugsTests extends PHPUnit_Framework_TestCase $this->assertEquals($u->scalarval(), $v->scalarval()); } + public function testMinusOneInt() + { + $v = new xmlrpcval(-1); + $u = new xmlrpcval(-1, 'string'); + $this->assertEquals($u->scalarval(), $v->scalarval()); + } + public function testUnicodeInMemberName() { $str = "G" . chr(252) . "nter, El" . chr(232) . "ne"; @@ -403,19 +410,19 @@ and there they were.postid7414222userid311127 -dateCreated20011126T09:17:52content' . utf8_encode('àüèàüè') . 'postid7414222 +dateCreated20011126T09:17:52content' . utf8_encode('������') . 'postid7414222 '; $r = $s->parseResponse($f, false, 'phpvals'); $v = $r->value(); $v = $v['content']; - $this->assertEquals("àüèàüè", $v); + $this->assertEquals("������", $v); $f = 'userid311127 -dateCreated20011126T09:17:52content' . utf8_encode('àüèàüè') . 'postid7414222 +dateCreated20011126T09:17:52content' . utf8_encode('������') . 'postid7414222 '; $r = $s->parseResponse($f, false, 'phpvals'); $v = $r->value(); $v = $v['content']; - $this->assertEquals("àüèàüè", $v); + $this->assertEquals("������", $v); } public function testUTF8IntString() diff --git a/tests/5DemofilesTest.php b/tests/5DemofilesTest.php new file mode 100644 index 00000000..be97eeb1 --- /dev/null +++ b/tests/5DemofilesTest.php @@ -0,0 +1,154 @@ +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'); + } + $page = curl_exec($ch); + curl_close($ch); + + $this->assertNotFalse($page); + $this->assertNotContains('Fatal error', $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->assertContains('105', $page); + } + + public function testProxyServer() + { + $page = $this->request('server/proxy.php'); + $this->assertContains('faultCode', $page); + $this->assertContains('105', $page); + } +} -- 2.47.0