Annotation of embedaddon/php/ext/soap/tests/bugs/bug30106.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #30106 (SOAP cannot not parse 'ref' element. Causes Uncaught SoapFault exception)
! 3: --SKIPIF--
! 4: <?php require_once('skipif.inc'); ?>
! 5: --FILE--
! 6: <?php
! 7: ini_set("soap.wsdl_cache_enabled", 0);
! 8:
! 9: function getContinentList() {
! 10: return array("getContinentListResult"=>array(
! 11: "schema"=>"<xsd:schema><element name=\"test\" type=\"xsd:string\"/></xsd:schema>",
! 12: "any"=>"<test>Hello World!</test><test>Bye World!</test>"));
! 13: }
! 14:
! 15: class LocalSoapClient extends SoapClient {
! 16: function __construct($wsdl, $options=array()) {
! 17: parent::__construct($wsdl, $options);
! 18: $this->server = new SoapServer($wsdl, $options);
! 19: $this->server->addFunction("getContinentList");
! 20: }
! 21:
! 22: function __doRequest($request, $location, $action, $version, $one_way = 0) {
! 23: echo $request;
! 24: ob_start();
! 25: $this->server->handle($request);
! 26: $response = ob_get_contents();
! 27: ob_end_clean();
! 28: echo $response;
! 29: return $response;
! 30: }
! 31: }
! 32:
! 33: $client = new LocalSoapClient(dirname(__FILE__)."/bug30106.wsdl");
! 34: var_dump($client->__getFunctions());
! 35: var_dump($client->__getTypes());
! 36: $x = $client->getContinentList(array("AFFILIATE_ID"=>1,"PASSWORD"=>"x"));
! 37: var_dump($x);
! 38: ?>
! 39: --EXPECTF--
! 40: array(1) {
! 41: [0]=>
! 42: string(71) "getContinentListResponse getContinentList(getContinentList $parameters)"
! 43: }
! 44: array(3) {
! 45: [0]=>
! 46: string(64) "struct getContinentList {
! 47: int AFFILIATE_ID;
! 48: string PASSWORD;
! 49: }"
! 50: [1]=>
! 51: string(83) "struct getContinentListResponse {
! 52: getContinentListResult getContinentListResult;
! 53: }"
! 54: [2]=>
! 55: string(66) "struct getContinentListResult {
! 56: <anyXML> schema;
! 57: <anyXML> any;
! 58: }"
! 59: }
! 60: <?xml version="1.0" encoding="UTF-8"?>
! 61: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/PRWebServ/getOtherInformation"><SOAP-ENV:Body><ns1:getContinentList><ns1:AFFILIATE_ID>1</ns1:AFFILIATE_ID><ns1:PASSWORD>x</ns1:PASSWORD></ns1:getContinentList></SOAP-ENV:Body></SOAP-ENV:Envelope>
! 62: <?xml version="1.0" encoding="UTF-8"?>
! 63: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://tempuri.org/PRWebServ/getOtherInformation"><SOAP-ENV:Body><ns1:getContinentListResponse><ns1:getContinentListResult><xsd:schema><element name="test" type="xsd:string"/></xsd:schema><test>Hello World!</test><test>Bye World!</test></ns1:getContinentListResult></ns1:getContinentListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
! 64: object(stdClass)#%d (1) {
! 65: ["getContinentListResult"]=>
! 66: object(stdClass)#%d (2) {
! 67: ["schema"]=>
! 68: string(65) "<xsd:schema><element name="test" type="xsd:string"/></xsd:schema>"
! 69: ["any"]=>
! 70: string(48) "<test>Hello World!</test><test>Bye World!</test>"
! 71: }
! 72: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>