Commit:    4cca6241e03f0abd442fd867f397b14b3be9d0bd
Author:    Dmitry Stogov <dmi...@tpl2.home>         Mon, 3 Sep 2012 11:38:08 
+0400
Parents:   6fc2962b9aa1aa8fe41400f2a895a09a16034e8c
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=4cca6241e03f0abd442fd867f397b14b3be9d0bd

Log:
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice)

Bugs:
https://bugs.php.net/50997

Changed paths:
  A  ext/soap/tests/bugs/bug50997.phpt
  A  ext/soap/tests/bugs/bug50997.wsdl


Diff:
diff --git a/ext/soap/tests/bugs/bug50997.phpt 
b/ext/soap/tests/bugs/bug50997.phpt
new file mode 100644
index 0000000..0508aac
--- /dev/null
+++ b/ext/soap/tests/bugs/bug50997.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #50997 (SOAP Error when trying to submit 2nd Element of a choice)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+$soapClient = new SoapClient(__DIR__ . '/bug50997.wsdl', array('trace' => 1, 
'exceptions'=>0));
+$params = array('code'=>'foo');
+$soapClient->newOperation($params);
+echo $soapClient->__getLastRequest();
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ns1="http://www.example.org/service2/";><SOAP-ENV:Body><ns1:NewOperation><code>foo</code></ns1:NewOperation></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/bugs/bug50997.wsdl 
b/ext/soap/tests/bugs/bug50997.wsdl
new file mode 100644
index 0000000..16c6d36
--- /dev/null
+++ b/ext/soap/tests/bugs/bug50997.wsdl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://www.example.org/service2/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="service2" 
targetNamespace="http://www.example.org/service2/";>
+      <wsdl:types>
+        <xsd:schema targetNamespace="http://www.example.org/service2/";>
+          <xsd:element name="NewOperation">
+            <xsd:complexType>
+              <xsd:choice>
+                                  <xsd:sequence>
+                                    <xsd:element name="firstName" 
type="xsd:string"> </xsd:element>
+                                    <xsd:element name="surName" 
type="xsd:string"/>
+                                  </xsd:sequence>
+                                  <xsd:element name="code" type="xsd:string"/>
+                                </xsd:choice>
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="NewOperationResponse">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="out" type="xsd:string"/>
+              </xsd:sequence>
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:schema>
+      </wsdl:types>
+      <wsdl:message name="NewOperationRequest">
+        <wsdl:part element="tns:NewOperation" name="parameters"/>
+      </wsdl:message>
+      <wsdl:message name="NewOperationResponse">
+        <wsdl:part element="tns:NewOperationResponse" name="parameters"/>
+      </wsdl:message>
+      <wsdl:portType name="service2">
+        <wsdl:operation name="NewOperation">
+          <wsdl:input message="tns:NewOperationRequest"/>
+          <wsdl:output message="tns:NewOperationResponse"/>
+        </wsdl:operation>
+      </wsdl:portType>
+      <wsdl:binding name="service2SOAP" type="tns:service2">
+        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="NewOperation">
+          <soap:operation 
soapAction="http://www.example.org/service2/NewOperation"/>
+          <wsdl:input>
+            <soap:body use="literal"/>
+          </wsdl:input>
+          <wsdl:output>
+            <soap:body use="literal"/>
+          </wsdl:output>
+        </wsdl:operation>
+      </wsdl:binding>
+      <wsdl:service name="service2">
+        <wsdl:port binding="tns:service2SOAP" name="service2SOAP">
+          <soap:address location="test://"/>
+        </wsdl:port>
+      </wsdl:service>
+    </wsdl:definitions>


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to