Annotation of embedaddon/php/ext/soap/tests/bugs/bug36575.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #36575 (Incorrect complex type instantiation with hierarchies)
                      3: --SKIPIF--
                      4: <?php require_once('skipif.inc'); ?>
                      5: --INI--
                      6: soap.wsdl_cache_enabled=0
                      7: --FILE--
                      8: <?php
                      9: abstract class CT_A1 {
                     10:        public $var1;
                     11: }
                     12: 
                     13: class CT_A2 extends CT_A1 {
                     14:        public $var2;
                     15: }
                     16: 
                     17: class CT_A3 extends CT_A2 {
                     18:        public $var3;
                     19: }
                     20: 
                     21: // returns A2 in WSDL
                     22: function test( $a1 ) {
                     23:        $a3 = new CT_A3();
                     24:        $a3->var1 = $a1->var1;
                     25:        $a3->var2 = "var two";
                     26:        $a3->var3 = "var three";
                     27:        return $a3;
                     28: }
                     29: 
                     30: $classMap = array("A1" => "CT_A1", "A2" => "CT_A2", "A3" => "CT_A3");
                     31: 
                     32: $client = new SoapClient(dirname(__FILE__)."/bug36575.wsdl", array("trace" => 1, "exceptions" => 0, "classmap" => $classMap));
                     33: $a2 = new CT_A2();
                     34: $a2->var1 = "one";
                     35: $a2->var2 = "two";
                     36: $client->test($a2);
                     37: 
                     38: $soapRequest = $client->__getLastRequest();
                     39: 
                     40: echo $soapRequest;
                     41: 
                     42: $server = new SoapServer(dirname(__FILE__)."/bug36575.wsdl", array("classmap" => $classMap));
                     43: $server->addFunction("test");
                     44: $server->handle($soapRequest);
                     45: echo "ok\n";
                     46: ?>
                     47: --EXPECT--
                     48: <?xml version="1.0" encoding="UTF-8"?>
                     49: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:test.soap#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:test.soap.types#" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><a1 xsi:type="ns2:A2"><var1 xsi:type="xsd:string">one</var1><var2 xsi:type="xsd:string">two</var2></a1></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
                     50: <?xml version="1.0" encoding="UTF-8"?>
                     51: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:test.soap#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:test.soap.types#" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:testResponse><result xsi:type="ns2:A3"><var1 xsi:type="xsd:string">one</var1><var2 xsi:type="xsd:string">var two</var2><var3 xsi:type="xsd:string">var three</var3></result></ns1:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
                     52: ok

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>