summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/soap/interop/client_round2_interop.php21
-rw-r--r--ext/soap/interop/client_round2_params.php10
-rw-r--r--ext/soap/interop/echoheadersvc.wsdl.php2
-rw-r--r--ext/soap/interop/index.php8
-rw-r--r--ext/soap/interop/interop.wsdl.php2
-rw-r--r--ext/soap/interop/server_round2_base.php2
-rw-r--r--ext/soap/interop/server_round2_groupB.php2
-rw-r--r--ext/soap/interop/test.utility.php5
8 files changed, 33 insertions, 19 deletions
diff --git a/ext/soap/interop/client_round2_interop.php b/ext/soap/interop/client_round2_interop.php
index 6c4dbd6499..7d981b33d2 100644
--- a/ext/soap/interop/client_round2_interop.php
+++ b/ext/soap/interop/client_round2_interop.php
@@ -71,18 +71,18 @@ class Interop_Client
// set up local endpoint
$this->localEndpoint['base'] = (object)array(
'endpointName'=>'PHP ext/soap',
- 'endpointURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/server_round2_base.php',
- 'wsdlURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/interop.wsdl.php'
+ 'endpointURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/server_round2_base.php',
+ 'wsdlURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/interop.wsdl.php'
);
$this->localEndpoint['GroupB'] = (object)array(
'endpointName'=>'PHP ext/soap',
- 'endpointURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/server_round2_groupB.php',
- 'wsdlURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/interopB.wsdl.php'
+ 'endpointURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/server_round2_groupB.php',
+ 'wsdlURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/interopB.wsdl.php'
);
$this->localEndpoint['GroupC'] = (object)array(
'endpointName'=>'PHP ext/soap',
- 'endpointURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/server_round2_groupC.php',
- 'wsdlURL'=>'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/echoheadersvc.wsdl.php'
+ 'endpointURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/server_round2_groupC.php',
+ 'wsdlURL'=>'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/echoheadersvc.wsdl.php'
);
}
@@ -481,9 +481,14 @@ class Interop_Client
// compare the results with what we sent
- $ok = $this->compareResult($sent_d,$return, $sent->type);
- if (!$ok && $soap_test->expect) {
+ if ($soap_test->cmp_func !== NULL) {
+ $cmp_func = $soap_test->cmp_func;
+ $ok = $cmp_func($sent_d,$return);
+ } else {
+ $ok = $this->compareResult($sent_d,$return, $sent->type);
+ if (!$ok && $soap_test->expect) {
$ok = $this->compareResult($soap_test->expect,$return);
+ }
}
// save the wire
diff --git a/ext/soap/interop/client_round2_params.php b/ext/soap/interop/client_round2_params.php
index b78fb14bce..c7a8245924 100644
--- a/ext/soap/interop/client_round2_params.php
+++ b/ext/soap/interop/client_round2_params.php
@@ -27,6 +27,7 @@ class SOAP_Test {
var $test_name = NULL;
var $method_name = NULL;
var $method_params = NULL;
+ var $cmp_func = NULL;
var $expect = NULL;
var $expect_fault = FALSE;
var $headers = NULL;
@@ -36,7 +37,7 @@ class SOAP_Test {
var $debug = 0;
var $encoding = 'UTF-8';
- function SOAP_Test($methodname, $params, $expect = NULL) {
+ function SOAP_Test($methodname, $params, $expect = NULL, $cmp_func = NULL) {
# XXX we have to do this to make php-soap happy with NULL params
if (!$params) $params = array();
@@ -51,6 +52,9 @@ class SOAP_Test {
if ($expect !== NULL) {
$this->expect = $expect;
}
+ if ($cmp_func !== NULL) {
+ $this->cmp_func = $cmp_func;
+ }
// determine test type
if ($params) {
@@ -259,9 +263,9 @@ $soap_tests['base'][] = new SOAP_Test('echoBase64', array('inputBase64' =>
//***********************************************************
// Base echoHexBinary
-$soap_tests['base'][] = new SOAP_Test('echoHexBinary', array('inputHexBinary' => '736F61707834'));
+$soap_tests['base'][] = new SOAP_Test('echoHexBinary', array('inputHexBinary' => '736F61707834'),'736F61707834','hex_compare');
$soap_tests['base'][] = new SOAP_Test('echoHexBinary', array('inputHexBinary' =>
- soap_value('inputHexBinary','736F61707834',XSD_HEXBINARY)));
+ soap_value('inputHexBinary','736F61707834',XSD_HEXBINARY)),'736F61707834','hex_compare');
//***********************************************************
// Base echoDecimal
diff --git a/ext/soap/interop/echoheadersvc.wsdl.php b/ext/soap/interop/echoheadersvc.wsdl.php
index 2eb5c8c6e1..b310960657 100644
--- a/ext/soap/interop/echoheadersvc.wsdl.php
+++ b/ext/soap/interop/echoheadersvc.wsdl.php
@@ -12,7 +12,7 @@ echo "\n";
<service name="interopLabEchoHeader">
<port name="interopPortEchoHdr" binding="tns:InteropEchoHeaderBinding">
- <soap:address location="http://<?php echo ($_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']));?>/server_round2.php"/>
+ <soap:address location="<?php echo ((isset($_SERVER['HTTPS'])?"https://":"http://").$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']));?>/server_round2.php"/>
</port>
</service>
diff --git a/ext/soap/interop/index.php b/ext/soap/interop/index.php
index 7c63ebf79f..999cd47efa 100644
--- a/ext/soap/interop/index.php
+++ b/ext/soap/interop/index.php
@@ -6,10 +6,10 @@
</head>
<?php
// get our endpoint
-$server = $_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'];
-$base = 'http://'.$server.dirname($_SERVER['PHP_SELF'])."/interop.wsdl.php";
-$groupb = 'http://'.$server.dirname($_SERVER['PHP_SELF'])."/interopB.wsdl.php";
-$groupc = 'http://'.$server.dirname($_SERVER['PHP_SELF'])."/echoheadersvc.wsdl.php";
+$server = $_SERVER['HTTP_HOST'].':'.$_SERVER['SERVER_PORT'];
+$base = (isset($_SERVER['HTTPS'])?"https://":"http://").$server.dirname($_SERVER['PHP_SELF'])."/interop.wsdl.php";
+$groupb = (isset($_SERVER['HTTPS'])?"https://":"http://").$server.dirname($_SERVER['PHP_SELF'])."/interopB.wsdl.php";
+$groupc = (isset($_SERVER['HTTPS'])?"https://":"http://").$server.dirname($_SERVER['PHP_SELF'])."/echoheadersvc.wsdl.php";
?>
<body>
diff --git a/ext/soap/interop/interop.wsdl.php b/ext/soap/interop/interop.wsdl.php
index e71a19c76d..b257c56b66 100644
--- a/ext/soap/interop/interop.wsdl.php
+++ b/ext/soap/interop/interop.wsdl.php
@@ -328,7 +328,7 @@ echo "\n";
<service name="InteropTest">
<port name="InteropTestPort" binding="tns:InteropTestBinding">
- <soap:address location="http://<?php echo ($_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']));?>/server_round2_base.php"/>
+ <soap:address location="<?php echo ((isset($_SERVER['HTTPS'])?"https://":"http://").$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']));?>/server_round2_base.php"/>
</port>
</service>
diff --git a/ext/soap/interop/server_round2_base.php b/ext/soap/interop/server_round2_base.php
index 314a5c85e2..0c6771d88e 100644
--- a/ext/soap/interop/server_round2_base.php
+++ b/ext/soap/interop/server_round2_base.php
@@ -139,7 +139,7 @@ class SOAP_Interop_Base {
}
$server = new SoapServer("http://test-uri");
-$server->bind("http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF'])."/interop.wsdl.php");
+$server->bind((isset($_SERVER['HTTPS'])?"https://":"http://").$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/interop.wsdl.php");
$server->setClass("SOAP_Interop_Base");
$server->handle();
?> \ No newline at end of file
diff --git a/ext/soap/interop/server_round2_groupB.php b/ext/soap/interop/server_round2_groupB.php
index dc36aa5027..eaae5ba89b 100644
--- a/ext/soap/interop/server_round2_groupB.php
+++ b/ext/soap/interop/server_round2_groupB.php
@@ -64,7 +64,7 @@ class SOAP_Interop_GroupB {
}
$server = new SoapServer("http://test-uri");
-$server->bind("http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF'])."/interopB.wsdl.php");
+$server->bind((isset($_SERVER['HTTPS'])?"https://":"http://").$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/interopB.wsdl.php");
$server->setClass("SOAP_Interop_GroupB");
$server->handle();
?> \ No newline at end of file
diff --git a/ext/soap/interop/test.utility.php b/ext/soap/interop/test.utility.php
index bfe176dc93..50f85f1cd8 100644
--- a/ext/soap/interop/test.utility.php
+++ b/ext/soap/interop/test.utility.php
@@ -1,5 +1,10 @@
<?php
+function hex_compare($f1, $f2)
+{
+ return strcasecmp($f1,$f2) == 0;
+}
+
function number_compare($f1, $f2)
{
# figure out which has the least fractional digits