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