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>