* (c) Francis Besset * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace BeSimple\SoapClient\Tests; use BeSimple\SoapClient\Curl\Curl; use BeSimple\SoapClient\Curl\CurlOptionsBuilder; /** * @author Andreas Schamberger */ class CurlTest extends AbstractWebserverTest { public function testExec() { $curlOptions = CurlOptionsBuilder::buildDefault(); $curl = new Curl( $curlOptions ); $this->assertTrue($curl->executeCurl($curlOptions, sprintf('http://localhost:%d/curl.txt', WEBSERVER_PORT))); $this->assertTrue($curl->exec(sprintf('http://localhost:%d/404.txt', WEBSERVER_PORT))); } public function testGetErrorMessage() { $curl = new Curl(array( 'proxy_host' => false, )); $curl->exec('http://unknown/curl.txt'); $this->assertEquals('Could not connect to host', $curl->getErrorMessage()); $curl->exec(sprintf('xyz://localhost:%d/@404.txt', WEBSERVER_PORT)); $this->assertEquals('Unknown protocol. Only http and https are allowed.', $curl->getErrorMessage()); $curl->exec(''); $this->assertEquals('Unable to parse URL', $curl->getErrorMessage()); } public function testGetRequestHeaders() { $curl = new Curl(array( 'proxy_host' => false, )); $curl->exec(sprintf('http://localhost:%d/curl.txt', WEBSERVER_PORT)); $this->assertEquals(132 + self::$websererPortLength, strlen($curl->getRequestHeaders())); $curl->exec(sprintf('http://localhost:%s/404.txt', WEBSERVER_PORT)); $this->assertEquals(131 + self::$websererPortLength, strlen($curl->getRequestHeaders())); } public function testGetResponse() { $curl = new Curl(array( 'proxy_host' => false, )); $curl->exec(sprintf('http://localhost:%d/curl.txt', WEBSERVER_PORT)); $this->assertSame('OK', $curl->getResponseStatusMessage()); $this->assertEquals(145 + self::$websererPortLength, strlen($curl->getResponse())); $curl->exec(sprintf('http://localhost:%d/404.txt', WEBSERVER_PORT)); $this->assertSame('Not Found', $curl->getResponseStatusMessage()); } public function testGetResponseBody() { $curl = new Curl(array( 'proxy_host' => false, )); $curl->exec(sprintf('http://localhost:%d/curl.txt', WEBSERVER_PORT)); $this->assertEquals('This is a testfile for cURL.', $curl->getResponseBody()); } }