3 changed files with 94 additions and 2 deletions
@ -0,0 +1,40 @@ |
|||
--TEST-- |
|||
Bug #37278 (SOAP not respecting uri in __soapCall) |
|||
--SKIPIF-- |
|||
<?php require_once('skipif.inc'); ?> |
|||
--FILE-- |
|||
<?php |
|||
function Test($param) { |
|||
global $g; |
|||
$g = $param->strA."\n".$param->strB."\n"; |
|||
return $g; |
|||
} |
|||
|
|||
class TestSoapClient extends SoapClient { |
|||
function __construct($wsdl) { |
|||
parent::__construct($wsdl); |
|||
$this->server = new SoapServer($wsdl); |
|||
$this->server->addFunction('Test'); |
|||
} |
|||
|
|||
function __doRequest($request, $location, $action, $version) { |
|||
ob_start(); |
|||
$this->server->handle($request); |
|||
$response = ob_get_contents(); |
|||
ob_end_clean(); |
|||
return $response; |
|||
} |
|||
} |
|||
|
|||
$client = new TestSoapClient(dirname(__FILE__).'/bug38004.wsdl'); |
|||
$strA = 'test & test'; |
|||
$strB = 'test & test'; |
|||
$res = $client->Test(array('strA'=>$strA, 'strB'=>$strB)); |
|||
print_r($res); |
|||
print_r($g); |
|||
?> |
|||
--EXPECT-- |
|||
test & test |
|||
test & test |
|||
test & test |
|||
test & test |
|||
@ -0,0 +1,51 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<definitions |
|||
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" |
|||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" |
|||
xmlns:s="http://www.w3.org/2001/XMLSchema" |
|||
xmlns:s0="http://test.pl" |
|||
targetNamespace="http://test.pl" |
|||
xmlns="http://schemas.xmlsoap.org/wsdl/" |
|||
> |
|||
<types> |
|||
<s:schema elementFormDefault="qualified" targetNamespace="http://test.pl"> |
|||
<s:complexType name="Test"> |
|||
<s:attribute use="required" name="strA" type="s:string"/> |
|||
<s:attribute use="required" name="strB" type="s:string"/> |
|||
</s:complexType> |
|||
<s:element type="s0:Test" name="Test"/> |
|||
<s:element type="s:string" name="Ret"/> |
|||
</s:schema> |
|||
</types> |
|||
|
|||
<message name="TestSoapIn"> |
|||
<part name="parameters" element="s0:Test"/> |
|||
</message> |
|||
<message name="TestSoapOut"> |
|||
<part name="parameters" element="s0:Ret"/> |
|||
</message> |
|||
<portType name="TestSoap"> |
|||
<operation name="Test"> |
|||
<input message="s0:TestSoapIn"/> |
|||
<output message="s0:TestSoapOut"/> |
|||
</operation> |
|||
</portType> |
|||
<binding name="TestSoap" type="s0:TestSoap"> |
|||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" |
|||
style="document"/> |
|||
<operation name="Test"> |
|||
<soap:operation soapAction="http:/Test/Test" style="document"/> |
|||
<input> |
|||
<soap:body use="literal"/> |
|||
</input> |
|||
<output> |
|||
<soap:body use="literal"/> |
|||
</output> |
|||
</operation> |
|||
</binding> |
|||
<service name="Test"> |
|||
<port name="TestSoapPort" binding="s0:TestSoap"> |
|||
<soap:address location="http://localhost:8080/~dmitry/bug38004/server.php"/> |
|||
</port> |
|||
</service> |
|||
</definitions> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue