/**
* Returns all test methods from the base class, except the ones which failed already
*
- * @todo reintroduce skipping of tests which failed when executed individually if test runs happen as separate processes
+ * @todo (re)introduce skipping of tests which failed when executed individually even if test runs happen as separate processes
* @todo reintroduce skipping of tests within the loop
*/
public function getSingleHttpTestMethods()
{
- $unsafeMethods = array('testHttps', 'testCatchExceptions', 'testUtf8Method', 'testServerComments', 'testExoticCharsetsRequests',
- 'testExoticCharsetsRequests2', 'testExoticCharsetsRequests3',
- // @todo the following are currently not compatible w Digest Auth (most likely because of client copy) and should be fixed
- 'testcatchWarnings', 'testWrappedMethodAsSource', 'testTransferOfObjectViaWrapping');
+ $unsafeMethods = array(
+ 'testCatchExceptions', 'testUtf8Method', 'testServerComments',
+ 'testExoticCharsetsRequests', 'testExoticCharsetsRequests2', 'testExoticCharsetsRequests3',
+ );
$methods = array();
foreach(get_class_methods('LocalhostTest') as $method)
*/
public function testProxy($method)
{
- if (!$this->args['PROXYSERVER'])
+ if ($this->args['PROXYSERVER'] == '')
{
- $this->markTestSkipped('PROXY definition missing: cannot test proxy');
+ $this->markTestSkipped('PROXYSERVER definition missing: cannot test proxy');
return;
}
$this->$method();
}
+ /**
+ * @dataProvider getSingleHttpTestMethods
+ * @param string $method
+ */
+ public function testHttp10Curl($method)
+ {
+ if(!function_exists('curl_init'))
+ {
+ $this->markTestSkipped('CURL missing: cannot test http 1.1');
+ return;
+ }
+
+ $this->method = 'http10'; // not an error the double assignment!
+ $this->client->method = 'http10';
+ $this->client->keepalive = false;
+ $this->client->setUseCurl(\PhpXmlRpc\Client::USE_CURL_ALWAYS);
+
+ $this->$method();
+ }
+
/**
* @dataProvider getSingleHttpTestMethods
* @param string $method
}
else if ($this->args['PROXYSERVER'] == '')
{
- $this->markTestSkipped('PROXY definition missing: cannot test proxy w. http 1.1');
+ $this->markTestSkipped('PROXYSERVER definition missing: cannot test proxy w. http 1.1');
return;
}
$this->markTestSkipped('CURL missing: cannot test https functionality');
return;
}
+ else if ($this->args['HTTPSSERVER'] == '')
+ {
+ $this->markTestSkipped('HTTPS SERVER definition missing: cannot test https');
+ return;
+ }
+
+ $this->client->server = $this->args['HTTPSSERVER'];
+ $this->method = 'https';
+ $this->client->method = 'https';
+ $this->client->path = $this->args['HTTPSURI'];
+ $this->client->setSSLVerifyPeer(!$this->args['HTTPSIGNOREPEER']);
+ $this->client->setSSLVerifyHost($this->args['HTTPSVERIFYHOST']);
+ $this->client->setSSLVersion($this->args['SSLVERSION']);
+
+ $this->$method();
+ }
+
+ /**
+ * @dataProvider getSingleHttpTestMethods
+ * @param string $method
+ */
+ public function testHttpsSocket($method)
+ {
+ if ($this->args['HTTPSSERVER'] == '')
+ {
+ $this->markTestSkipped('HTTPS SERVER definition missing: cannot test https');
+ return;
+ }
$this->client->server = $this->args['HTTPSSERVER'];
$this->method = 'https';
$this->client->setSSLVerifyPeer(!$this->args['HTTPSIGNOREPEER']);
$this->client->setSSLVerifyHost($this->args['HTTPSVERIFYHOST']);
$this->client->setSSLVersion($this->args['SSLVERSION']);
+ $this->client->setUseCurl(\PhpXmlRpc\Client::USE_CURL_NEVER);
$this->$method();
}
{
if(!function_exists('curl_init'))
{
- $this->markTestSkipped('CURL missing: cannot test https functionality');
+ $this->markTestSkipped('CURL missing: cannot test https w. proxy');
return;
}
else if ($this->args['PROXYSERVER'] == '')
{
- $this->markTestSkipped('PROXY definition missing: cannot test proxy w. http 1.1');
+ $this->markTestSkipped('PROXYSERVER definition missing: cannot test proxy w. https');
return;
}
+ else if ($this->args['HTTPSSERVER'] == '')
+ {
+ $this->markTestSkipped('HTTPS SERVER definition missing: cannot test https w. proxy');
+ return;
+ }
+
$this->client->server = $this->args['HTTPSSERVER'];
$this->method = 'https';
$this->client->method = 'https';