Tests were improved (https:// support)

This commit is contained in:
Dmitry Stogov 2004-01-09 14:56:24 +00:00
parent b9052251e7
commit 6af0639c92
8 changed files with 33 additions and 19 deletions

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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();
?>

View File

@ -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();
?>

View File

@ -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