Annotation of embedaddon/php/ext/soap/tests/bugs/bug36226.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #36226 (SOAP Inconsistent handling when passing potential arrays)
3: --SKIPIF--
4: <?php require_once('skipif.inc'); ?>
5: --INI--
6: soap.wsdl_cache_enabled=0
7: --FILE--
8: <?php
9: ini_set("soap.wsdl_cache_enabled",0);
10: $timestamp = "2005-11-08T11:22:07+03:00";
11: $wsdl = dirname(__FILE__)."/bug35142.wsdl";
12:
13: function PostEvents($x) {
14: var_dump($x);
15: exit();
16: return $x;
17: }
18:
19: class TestSoapClient extends SoapClient {
20:
21: function __construct($wsdl, $options) {
22: parent::__construct($wsdl, $options);
23: $this->server = new SoapServer($wsdl, $options);
24: $this->server->addFunction('PostEvents');
25: }
26:
27: function __doRequest($request, $location, $action, $version, $one_way = 0) {
28: echo "$request\n";
29: $this->server->handle($request);
30: return $response;
31: }
32:
33: }
34:
35: $soapClient = new TestSoapClient($wsdl,
36: array('trace' => 1, 'exceptions' => 0,
37: 'classmap' => array('logOnEvent' => 'LogOnEvent',
38: 'logOffEvent' => 'LogOffEvent',
39: 'events' => 'IVREvents'),
40: 'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
41:
42: $logOnEvent = new LogOnEvent(34567, $timestamp);
43: $logOffEvents[] = new LogOffEvent(34567, $timestamp, "Smoked");
44: $logOffEvents[] = new LogOffEvent(34568, $timestamp, "SmokeFree");
45: $ivrEvents = new IVREvents("1.0", 101, 12345, 'IVR', $logOnEvent, $logOffEvents);
46:
47: $result = $soapClient->PostEvents($ivrEvents);
48:
49: class LogOffEvent {
50: public $audienceMemberId;
51: public $timestamp;
52: public $smokeStatus;
53: public $callInitiator;
54:
55: function __construct($audienceMemberId, $timestamp, $smokeStatus) {
56: $this->audienceMemberId = $audienceMemberId;
57: $this->timestamp = $timestamp;
58: $this->smokeStatus = $smokeStatus;
59: $this->callInitiator = "IVR";
60: }
61: }
62:
63: class LogOnEvent {
64: public $audienceMemberId;
65: public $timestamp;
66:
67: function __construct($audienceMemberId, $timestamp) {
68: $this->audienceMemberId = $audienceMemberId;
69: $this->timestamp = $timestamp;
70: }
71: }
72:
73: class IVREvents {
74: public $version;
75: public $activityId;
76: public $messageId;
77: public $source;
78: public $logOnEvent;
79: public $logOffEvent;
80:
81: function __construct($version, $activityId, $messageId, $source, $logOnEvent=NULL, $logOffEvent=NULL) {
82: $this->version = $version;
83: $this->activityId = $activityId;
84: $this->messageId = $messageId;
85: $this->source = $source;
86: $this->logOnEvent = $logOnEvent;
87: $this->logOffEvent = $logOffEvent;
88: }
89: }
90: ?>
91: --EXPECTF--
92: <?xml version="1.0" encoding="UTF-8"?>
93: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testurl/Message"><SOAP-ENV:Body><ns1:ivrEvents version="1.0" activityId="101" messageId="12345" source="IVR"><ns1:logOffEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="Smoked" callInitiator="IVR"/><ns1:logOffEvent audienceMemberId="34568" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="SmokeFree" callInitiator="IVR"/><ns1:logOnEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00"/></ns1:ivrEvents></SOAP-ENV:Body></SOAP-ENV:Envelope>
94:
95: object(IVREvents)#%d (6) {
96: ["version"]=>
97: string(3) "1.0"
98: ["activityId"]=>
99: int(101)
100: ["messageId"]=>
101: int(12345)
102: ["source"]=>
103: string(3) "IVR"
104: ["logOnEvent"]=>
105: array(1) {
106: [0]=>
107: object(LogOnEvent)#10 (2) {
108: ["audienceMemberId"]=>
109: int(34567)
110: ["timestamp"]=>
111: string(25) "2005-11-08T11:22:07+03:00"
112: }
113: }
114: ["logOffEvent"]=>
115: array(2) {
116: [0]=>
117: object(LogOffEvent)#%d (4) {
118: ["audienceMemberId"]=>
119: int(34567)
120: ["timestamp"]=>
121: string(25) "2005-11-08T11:22:07+03:00"
122: ["smokeStatus"]=>
123: string(6) "Smoked"
124: ["callInitiator"]=>
125: string(3) "IVR"
126: }
127: [1]=>
128: object(LogOffEvent)#%d (4) {
129: ["audienceMemberId"]=>
130: int(34568)
131: ["timestamp"]=>
132: string(25) "2005-11-08T11:22:07+03:00"
133: ["smokeStatus"]=>
134: string(9) "SmokeFree"
135: ["callInitiator"]=>
136: string(3) "IVR"
137: }
138: }
139: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>