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