// 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'
);
}
// 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
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;
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();
if ($expect !== NULL) {
$this->expect = $expect;
}
+ if ($cmp_func !== NULL) {
+ $this->cmp_func = $cmp_func;
+ }
// determine test type
if ($params) {
//***********************************************************
// 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
<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>
</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>
<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>
}
$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
}
$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
<?php
+function hex_compare($f1, $f2)
+{
+ return strcasecmp($f1,$f2) == 0;
+}
+
function number_compare($f1, $f2)
{
# figure out which has the least fractional digits