php-src/ext/soap/tests/bugs/bug32941.phpt
2006-08-01 16:10:25 +00:00

85 lines
2.3 KiB
PHP
Executable File

--TEST--
Bug #32941 (Sending structured exception kills a php)
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
class TestSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
return <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>service.EchoServiceException</faultstring>
<detail>
<service.EchoServiceException xsi:type="ns1:EchoServiceException" xmlns:ns1="urn:service.EchoService">
<intParameter xsi:type="xsd:int">105</intParameter>
<parameter xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">string param</parameter>
</service.EchoServiceException>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">steckovic</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
EOF;
}
}
ini_set("soap.wsdl_cache_enabled", 1);
$client = new TestSoapClient(dirname(__FILE__).'/bug32941.wsdl', array("trace" => 1, 'exceptions' => 0));
$ahoj = $client->echoString('exception');
$client = new TestSoapClient(dirname(__FILE__).'/bug32941.wsdl', array("trace" => 1, 'exceptions' => 0));
$ahoj = $client->echoString('exception');
var_dump($ahoj->detail);
echo "ok\n";
?>
--EXPECT--
object(stdClass)#1 (2) {
["service.EchoServiceException"]=>
object(SoapVar)#8 (4) {
["enc_type"]=>
int(0)
["enc_value"]=>
object(stdClass)#7 (2) {
["intParameter"]=>
int(105)
["parameter"]=>
string(12) "string param"
}
["enc_stype"]=>
string(20) "EchoServiceException"
["enc_ns"]=>
string(23) "urn:service.EchoService"
}
["hostname"]=>
string(9) "steckovic"
}
ok
--UEXPECT--
object(stdClass)#1 (2) {
[u"service.EchoServiceException"]=>
object(SoapVar)#8 (4) {
[u"enc_type"]=>
int(0)
[u"enc_value"]=>
object(stdClass)#7 (2) {
[u"intParameter"]=>
int(105)
[u"parameter"]=>
unicode(12) "string param"
}
[u"enc_stype"]=>
unicode(20) "EchoServiceException"
[u"enc_ns"]=>
unicode(23) "urn:service.EchoService"
}
[u"hostname"]=>
unicode(9) "steckovic"
}
ok