Annotation of embedaddon/php/ext/soap/tests/bugs/bug30106.phpt, revision 1.1.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>