]> granicus.if.org Git - php/commitdiff
Some tests from official SOAP 1.2 specification was added
authorDmitry Stogov <dmitry@php.net>
Fri, 30 Jan 2004 15:08:52 +0000 (15:08 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 30 Jan 2004 15:08:52 +0000 (15:08 +0000)
40 files changed:
ext/soap/tests/soap12/T24.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T25.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T27.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T28.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T31.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T33.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T41.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T42.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T43.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T44.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T45.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T46.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T47.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T48.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T49.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T50.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T51.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T52.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T53.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T54.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T55.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T56.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T57.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T58.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T59.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T60.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T61.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T69.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T70.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T71.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T72.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T73.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T76_1.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T76_2.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T77_1.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T77_2.phpt [new file with mode: 0644]
ext/soap/tests/soap12/T77_3.phpt [new file with mode: 0644]
ext/soap/tests/soap12/skipif.inc [new file with mode: 0644]
ext/soap/tests/soap12/soap12-test.inc [new file with mode: 0644]
ext/soap/tests/soap12/soap12-test.wsdl [new file with mode: 0644]

diff --git a/ext/soap/tests/soap12/T24.phpt b/ext/soap/tests/soap12/T24.phpt
new file mode 100644 (file)
index 0000000..ac2f842
--- /dev/null
@@ -0,0 +1,21 @@
+--TEST--
+SOAP 1.2: T24 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://wrong-version/"> 
+  <env:Body>
+    <test:echoOk xmlns:test="http://example.org/ts-tests">
+      foo
+    </test:echoOk>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:VersionMismatch</faultcode><faultstring>Wrong Version</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/soap12/T25.phpt b/ext/soap/tests/soap12/T25.phpt
new file mode 100644 (file)
index 0000000..894136e
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T25 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<!DOCTYPE env:Envelope SYSTEM "env.dtd"[]>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
+  <env:Body>
+    <test:echoOk xmlns:test="http://example.org/ts-tests">
+      foo
+    </test:echoOk>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>DTD are not supported by SOAP</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/soap12/T27.phpt b/ext/soap/tests/soap12/T27.phpt
new file mode 100644 (file)
index 0000000..851b294
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T27 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <env:Body>
+    <test:echoStringArray xmlns:test="http://example.org/ts-tests" 
+          xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <test:array enc:itemType="xs:string" enc:arraySize="1">
+        <a>
+          <b>1</b>
+        </a>
+      </test:array>            
+    </test:echoStringArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of encoding rules</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T28.phpt b/ext/soap/tests/soap12/T28.phpt
new file mode 100644 (file)
index 0000000..f93ace7
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T28 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
+  <env:Body env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+    <test:echoOk xmlns:test="http://example.org/ts-tests" >
+      foo
+    </test:echoOk>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>encodingStyle cannot be specified on the Body</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T31.phpt b/ext/soap/tests/soap12/T31.phpt
new file mode 100644 (file)
index 0000000..56dc883
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T31 returnVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
+  <env:Body>
+    <test:returnVoid xmlns:test="http://example.org/ts-tests">
+    </test:returnVoid>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:returnVoidResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"/></env:Body></env:Envelope>
+ok
+
diff --git a/ext/soap/tests/soap12/T33.phpt b/ext/soap/tests/soap12/T33.phpt
new file mode 100644 (file)
index 0000000..c39f9e1
--- /dev/null
@@ -0,0 +1,20 @@
+--TEST--
+SOAP 1.2: T33
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
+  <env:Body>
+    <test:DoesNotExist xmlns:test="http://example.org/ts-tests">
+  </test:DoesNotExist>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>rpc:ProcedureNotPresent</env:Value></env:Code><env:Reason><env:Text>Procedure not present</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T41.phpt b/ext/soap/tests/soap12/T41.phpt
new file mode 100644 (file)
index 0000000..d57eead
--- /dev/null
@@ -0,0 +1,30 @@
+--TEST--
+SOAP 1.2: T41 echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStruct xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStruct xsi:type="ns1:SOAPStruct"
+                   xmlns:ns1="http://example.org/ts-tests/xsd">
+        <varInt xsi:type="xsd:int">42</varInt>
+        <varFloat xsi:type="xsd:float">0.005</varFloat>
+        <varString xsi:type="xsd:string">hello world</varString>
+      </inputStruct>
+    </test:echoStruct>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></return></ns1:echoStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T42.phpt b/ext/soap/tests/soap12/T42.phpt
new file mode 100644 (file)
index 0000000..7ce8281
--- /dev/null
@@ -0,0 +1,39 @@
+--TEST--
+SOAP 1.2: T42 echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStructArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStructArray enc:itemType="ns1:SOAPStruct"
+                        enc:arraySize="2"
+                        xmlns:ns1="http://example.org/ts-tests/xsd"
+                        xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item xsi:type="ns1:SOAPStruct">
+          <varInt xsi:type="xsd:int">42</varInt>
+          <varFloat xsi:type="xsd:float">0.005</varFloat>
+          <varString xsi:type="xsd:string">hello world</varString>
+        </item>
+        <item xsi:type="ns1:SOAPStruct">
+          <varInt xsi:type="xsd:int">43</varInt>
+          <varFloat xsi:type="xsd:float">0.123</varFloat>
+          <varString xsi:type="xsd:string">bye world</varString>
+        </item>
+      </inputStructArray>
+    </test:echoStructArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStructArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="ns2:SOAPStruct" enc:arraySize="2" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">bye world</varString><varInt xsi:type="xsd:int">43</varInt><varFloat xsi:type="xsd:float">0.123</varFloat></item></return></ns1:echoStructArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T43.phpt b/ext/soap/tests/soap12/T43.phpt
new file mode 100644 (file)
index 0000000..7dd6316
--- /dev/null
@@ -0,0 +1,30 @@
+--TEST--
+SOAP 1.2: T43 echoStructAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStructAsSimpleTypes xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStruct xsi:type="ns1:SOAPStruct"
+                   xmlns:ns1="http://example.org/ts-tests/xsd">
+        <varInt xsi:type="xsd:int">42</varInt>
+        <varFloat xsi:type="xsd:float">0.005</varFloat>
+        <varString xsi:type="xsd:string">hello world</varString>
+      </inputStruct>
+    </test:echoStructAsSimpleTypes>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:echoStructAsSimpleTypesResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><outputString xsi:type="xsd:string">hello world</outputString><outputInteger xsi:type="xsd:int">42</outputInteger><outputFloat xsi:type="xsd:float">0.005</outputFloat></ns1:echoStructAsSimpleTypesResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T44.phpt b/ext/soap/tests/soap12/T44.phpt
new file mode 100644 (file)
index 0000000..2264f10
--- /dev/null
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T44 echoSimpleTypesAsStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoSimpleTypesAsStruct xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputInt xsi:type="xsd:int">42</inputInt>
+      <inputFloat xsi:type="xsd:float">0.005</inputFloat>
+      <inputString xsi:type="xsd:string">hello world</inputString>
+    </test:echoSimpleTypesAsStruct>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoSimpleTypesAsStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></return></ns1:echoSimpleTypesAsStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T45.phpt b/ext/soap/tests/soap12/T45.phpt
new file mode 100644 (file)
index 0000000..68e3cce
--- /dev/null
@@ -0,0 +1,35 @@
+--TEST--
+SOAP 1.2: T45 echoNestedStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoNestedStruct xmlns:test="http://example.org/ts-tests"
+       env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStruct xsi:type="ns1:SOAPStructStruct"
+                   xmlns:ns1="http://example.org/ts-tests/xsd">
+        <varInt xsi:type="xsd:int">42</varInt>
+        <varFloat xsi:type="xsd:float">0.005</varFloat>
+        <varString xsi:type="xsd:string">hello world</varString>
+        <varStruct xsi:type="ns1:SOAPStruct">
+          <varInt xsi:type="xsd:int">99</varInt>
+          <varFloat xsi:type="xsd:float">4.0699e-12</varFloat>
+          <varString xsi:type="xsd:string">nested struct</varString>
+        </varStruct>
+      </inputStruct>
+    </test:echoNestedStruct>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoNestedStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">nested struct</varString><varInt xsi:type="xsd:int">99</varInt><varFloat xsi:type="xsd:float">4.0699E-12</varFloat></varStruct></return></ns1:echoNestedStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T46.phpt b/ext/soap/tests/soap12/T46.phpt
new file mode 100644 (file)
index 0000000..9cbb4b1
--- /dev/null
@@ -0,0 +1,36 @@
+--TEST--
+SOAP 1.2: T46 echoNestedArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoNestedArray xmlns:test="http://exaple.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStruct xsi:type="ns1:SOAPArrayStruct"
+                   xmlns:ns1="http://example.org/ts-tests/xsd">
+        <varInt xsi:type="xsd:int">42</varInt>
+        <varFloat xsi:type="xsd:float">0.005</varFloat>
+        <varString xsi:type="xsd:string">hello world</varString>
+        <varArray enc:itemType="xsd:string" enc:arraySize="3"
+                         xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+          <item xsi:type="xsd:string">red</item>
+          <item xsi:type="xsd:string">blue</item>
+          <item xsi:type="xsd:string">green</item>
+        </varArray>
+      </inputStruct>
+    </test:echoNestedArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoNestedArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat><varArray enc:itemType="xsd:string" enc:arraySize="3" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></return></ns1:echoNestedArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T47.phpt b/ext/soap/tests/soap12/T47.phpt
new file mode 100644 (file)
index 0000000..e1d8b8f
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T47 echoFloatArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoFloatArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputFloatArray enc:itemType="xsd:float" enc:arraySize="2"
+                       xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item xsi:type="xsd:float">0.00000555</item>
+        <item xsi:type="xsd:float">12999.9</item>
+      </inputFloatArray>
+    </test:echoFloatArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoFloatArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:float" enc:arraySize="2" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">5.55E-06</item><item xsi:type="xsd:float">12999.9</item></return></ns1:echoFloatArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T48.phpt b/ext/soap/tests/soap12/T48.phpt
new file mode 100644 (file)
index 0000000..07ac407
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T48 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStringArray enc:itemType="xsd:string" enc:arraySize="2"
+                        xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item xsi:type="xsd:string">hello</item>
+        <item xsi:type="xsd:string">world</item>
+      </inputStringArray>
+    </test:echoStringArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:string" enc:arraySize="2" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">hello</item><item xsi:type="xsd:string">world</item></return></ns1:echoStringArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T49.phpt b/ext/soap/tests/soap12/T49.phpt
new file mode 100644 (file)
index 0000000..c919e2b
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T49 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStringArray enc:arraySize="2"
+                        xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item xsi:type="xsd:string">hello</item>
+        <item xsi:type="xsd:string">world</item>
+      </inputStringArray>
+    </test:echoStringArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:string" enc:arraySize="2" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">hello</item><item xsi:type="xsd:string">world</item></return></ns1:echoStringArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T50.phpt b/ext/soap/tests/soap12/T50.phpt
new file mode 100644 (file)
index 0000000..8e431e5
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T50 echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoIntegerArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputIntegerArray enc:itemType="xsd:int" enc:arraySize="2"
+                         xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item xsi:type="xsd:int">100</item>
+        <item xsi:type="xsd:int">200</item>
+      </inputIntegerArray>
+    </test:echoIntegerArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoIntegerArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:int" enc:arraySize="2" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">100</item><item xsi:type="xsd:int">200</item></return></ns1:echoIntegerArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T51.phpt b/ext/soap/tests/soap12/T51.phpt
new file mode 100644 (file)
index 0000000..9776576
--- /dev/null
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T51 echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <env:Body>
+    <test:echoBase64 xmlns:test="http://example.org/ts-tests"
+       env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputBase64 xsi:type="xsd:base64Binary">
+        YUdWc2JHOGdkMjl5YkdRPQ==
+      </inputBase64>
+    </test:echoBase64>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBase64Response env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:base64Binary">YUdWc2JHOGdkMjl5YkdRPQ==</return></ns1:echoBase64Response></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T52.phpt b/ext/soap/tests/soap12/T52.phpt
new file mode 100644 (file)
index 0000000..3034f0a
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T52 echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoBoolean xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputBoolean xsi:type="xsd:boolean">1</inputBoolean>
+    </test:echoBoolean>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBooleanResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:echoBooleanResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T53.phpt b/ext/soap/tests/soap12/T53.phpt
new file mode 100644 (file)
index 0000000..c1c8fe6
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T53 echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoDate xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputDate xsi:type="xsd:date">1956-10-18T22:20:00-07:00</inputDate>
+    </test:echoDate>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoDateResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:dateTime">1956-10-18T22:20:00-07:00</return></ns1:echoDateResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T54.phpt b/ext/soap/tests/soap12/T54.phpt
new file mode 100644 (file)
index 0000000..ba3ed35
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T54 echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoDecimal xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputDecimal xsi:type="xsd:decimal">123.45678901234567890</inputDecimal>
+    </test:echoDecimal>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoDecimalResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:decimal">123.45678901234567890</return></ns1:echoDecimalResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T55.phpt b/ext/soap/tests/soap12/T55.phpt
new file mode 100644 (file)
index 0000000..1c12e50
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T55 echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoFloat xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputFloat xsi:type="xsd:float">0.005</inputFloat>
+    </test:echoFloat>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoFloatResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:float">0.005</return></ns1:echoFloatResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T56.phpt b/ext/soap/tests/soap12/T56.phpt
new file mode 100644 (file)
index 0000000..a653a9d
--- /dev/null
@@ -0,0 +1,34 @@
+--TEST--
+SOAP 1.2: T56 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+  <env:Header>
+    <test:DataHolder xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <test:Data enc:id="data-1" xsi:type="xsd:string">
+        hello world
+      </test:Data>
+    </test:DataHolder>
+  </env:Header>
+  <env:Body>
+    <test:echoString xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputString enc:ref="#data-2" xsi:type="xsd:string" />
+    </test:echoString>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Unresolved reference '#data-2'</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T57.phpt b/ext/soap/tests/soap12/T57.phpt
new file mode 100644 (file)
index 0000000..ad3e9ef
--- /dev/null
@@ -0,0 +1,32 @@
+--TEST--
+SOAP 1.2: T57 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+  <env:Header>
+    <test:DataHolder xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <test:Data enc:id="data" xsi:type="xsd:string">hello world</test:Data>
+    </test:DataHolder>
+  </env:Header>
+  <env:Body>
+    <test:echoString xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <test:inputString enc:ref="#data" xsi:type="xsd:string" />
+    </test:echoString>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T58.phpt b/ext/soap/tests/soap12/T58.phpt
new file mode 100644 (file)
index 0000000..e1503ed
--- /dev/null
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T58 echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoIntegerArray xmlns:test="http://example.org/ts-tests" 
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputIntegerArray enc:itemType="xsd:int" enc:arraySize="1"
+                   xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <a><b>1</b></a>
+      </inputIntegerArray>             
+    </test:echoIntegerArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of encoding rules</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T59.phpt b/ext/soap/tests/soap12/T59.phpt
new file mode 100644 (file)
index 0000000..8487a5a
--- /dev/null
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T59 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStringArray enc:itemType="xsd:string" 
+                        xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+        <item enc:id="data" xsi:type="xsd:string" enc:ref="#data">hello</item>
+        <item>world</item>
+      </inputStringArray>
+    </test:echoStringArray>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of id and ref information items '#data'</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T60.phpt b/ext/soap/tests/soap12/T60.phpt
new file mode 100644 (file)
index 0000000..234ef4c
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T60 countItems
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:countItems xmlns:test="http://example.org/ts-tests"
+          xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStringArray enc:itemType="xsd:string" enc:arraySize="*">
+        <item xsi:type="xsd:string">hello</item>
+        <item xsi:type="xsd:string">world</item>
+      </inputStringArray>
+    </test:countItems>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:countItemsResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:int">2</return></ns1:countItemsResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T61.phpt b/ext/soap/tests/soap12/T61.phpt
new file mode 100644 (file)
index 0000000..728efb1
--- /dev/null
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T61 countItems
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:countItems xmlns:test="http://example.org/ts-tests"
+          xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputStringArray enc:itemType="xsd:string" enc:arraySize="2 *">
+        <item xsi:type="xsd:string">hello</item>
+        <item xsi:type="xsd:string">world</item>
+      </inputStringArray>
+    </test:countItems>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: '*' may only be first arraySize value in list</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T69.phpt b/ext/soap/tests/soap12/T69.phpt
new file mode 100644 (file)
index 0000000..cf4eac5
--- /dev/null
@@ -0,0 +1,19 @@
+--TEST--
+SOAP 1.2: T69 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+       <test:echoOk xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
+ </env:Header>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>Body must be present in a SOAP envelope</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T70.phpt b/ext/soap/tests/soap12/T70.phpt
new file mode 100644 (file)
index 0000000..884b686
--- /dev/null
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T70 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+  <env:Header>
+       <test:echoOk xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
+  </env:Header>
+  <env:Body>
+  </env:Body>
+  <Trailer>
+  </Trailer>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>A SOAP 1.2 envelope can contain only Header and Body</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T71.phpt b/ext/soap/tests/soap12/T71.phpt
new file mode 100644 (file)
index 0000000..da7bd95
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T71 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+     attr1="a-value">
+  <env:Header>
+       <test:echoOk xmlns:test="http://example.org/ts-tests">
+      foo
+    </test:echoOk>
+  </env:Header>
+  <env:Body>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>A SOAP Envelope element cannot have non Namespace qualified attributes</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
\ No newline at end of file
diff --git a/ext/soap/tests/soap12/T72.phpt b/ext/soap/tests/soap12/T72.phpt
new file mode 100644 (file)
index 0000000..6f88f6b
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T72 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+  <env:Body>
+    <test:echoOk xmlns:test="http://example.org/ts-tests">
+      foo
+    </test:echoOk>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>encodingStyle cannot be specified on the Envelope</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T73.phpt b/ext/soap/tests/soap12/T73.phpt
new file mode 100644 (file)
index 0000000..5ac1be0
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+SOAP 1.2: T73 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoString xmlns:test="http://example.org/ts-tests"
+                     env:encodingStyle="http://www.w3.org/2003/05/soap-envelope/encoding/none">
+      <test:inputString xsi:type="xsd:string"
+            env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">hello world</test:inputString>
+    </test:echoString>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T76_1.phpt b/ext/soap/tests/soap12/T76_1.phpt
new file mode 100644 (file)
index 0000000..e97c179
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T76.1 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:echoString xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputString xsi:type="xsd:string">hello world</inputString>
+    </test:echoString>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T76_2.phpt b/ext/soap/tests/soap12/T76_2.phpt
new file mode 100644 (file)
index 0000000..cc6ea0d
--- /dev/null
@@ -0,0 +1,32 @@
+--TEST--
+SOAP 1.2: T76.2 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+  <env:Header>
+    <test:DataHolder xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <test:Data enc:id="data" xsi:type="xsd:string">hello world</test:Data>
+    </test:DataHolder>
+  </env:Header>
+  <env:Body>
+    <test:echoString xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputString enc:ref="data" xsi:type="xsd:string" />
+    </test:echoString>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_1.phpt b/ext/soap/tests/soap12/T77_1.phpt
new file mode 100644 (file)
index 0000000..fea616a
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T77.1 isNil
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:isNil xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputString xsi:nil="1" />
+    </test:isNil>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_2.phpt b/ext/soap/tests/soap12/T77_2.phpt
new file mode 100644 (file)
index 0000000..1e49e8a
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T77.2 isNil
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:isNil xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+    </test:isNil>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_3.phpt b/ext/soap/tests/soap12/T77_3.phpt
new file mode 100644 (file)
index 0000000..f404dd0
--- /dev/null
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T77.3 isNul
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
+              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <env:Body>
+    <test:isNil xmlns:test="http://example.org/ts-tests"
+          env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+      <inputString xsi:type="xsd:string">
+        This is a string
+      </inputString>
+    </test:isNil>
+  </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">0</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/skipif.inc b/ext/soap/tests/soap12/skipif.inc
new file mode 100644 (file)
index 0000000..fa8574e
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+  if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/soap12/soap12-test.inc b/ext/soap/tests/soap12/soap12-test.inc
new file mode 100644 (file)
index 0000000..44733d2
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+class Soap12test {
+
+       function echoOk($x) {
+       return $x;
+       }
+
+       function echoString($inputString) {
+               return $inputString;
+       }
+
+       function echoStringArray($inputStringArray) {
+               return $inputStringArray;
+       }
+
+       function echoInteger($inputInteger) {
+               return $inputInteger;
+       }
+
+       function echoIntegerArray($inputIntegerArray) {
+               return $inputIntegerArray;
+       }
+
+       function echoFloat($inputFloat) {
+               return $inputFloat;
+       }
+
+       function echoFloatArray($inputFloatArray) {
+               return $inputFloatArray;
+  }
+
+       function echoStruct($x) {
+       return $x;
+       }
+
+       function echoStructArray($x) {
+       return $x;
+       }
+
+       function echoVoid() {
+               return NULL;
+       }
+
+       function echoBase64($b_encoded) {
+               return $b_encoded;
+  }
+
+       function echoDate($timeInstant) {
+               return $timeInstant;
+       }
+
+       function echoHexBinary($hb) {
+               return $hb;
+       }
+
+       function echoDecimal($dec) {
+               return $dec;
+       }
+
+       function echoBoolean($boolean) {
+               return $boolean;
+       }
+
+       function echoStructAsSimpleTypes ($struct) {
+                return array('outputString'  => $struct->varString,
+                             'outputInteger' => $struct->varInt,
+                             'outputFloat'   => $struct->varFloat);
+       }
+
+       function echoSimpleTypesAsStruct($string, $int, $float) {
+               return (object)array("varString" => $string,
+                                                                                                "varInt"    => $int,
+                                                                                        "varFloat"  => $float);
+       }
+
+       function echoNestedStruct($struct) {
+               return $struct;
+       }
+
+       function echo2DStringArray($ary) {
+               return $ary;
+       }
+
+       function echoNestedArray($ary) {
+               return $ary;
+       }
+
+       function countItems($input) {
+               return count($input);
+       }
+
+       function isNil($input) {
+               return is_null($input);
+       }
+
+       function returnVoid() {
+       }
+}
+
+$server = new soapserver("http://http://example.org/ts-tests");
+$server->bind(dirname(__FILE__)."/soap12-test.wsdl");
+$server->setClass("Soap12test");
+
+$server->handle();
+echo "ok\n";
+?>
diff --git a/ext/soap/tests/soap12/soap12-test.wsdl b/ext/soap/tests/soap12/soap12-test.wsdl
new file mode 100644 (file)
index 0000000..e1feccf
--- /dev/null
@@ -0,0 +1,699 @@
+<?xml version="1.0"?>\r
+\r
+<definitions name="SOAP-12-TestDefinitions"\r
+       targetNamespace="http://whitemesa.net/wsdl/soap12-test"\r
+       xmlns="http://schemas.xmlsoap.org/wsdl/"\r
+       xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"\r
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema"\r
+       xmlns:enc="http://www.w3.org/2003/05/soap-encoding"\r
+       xmlns:tns="http://whitemesa.net/wsdl/soap12-test"\r
+       xmlns:types="http://example.org/ts-tests/xsd"\r
+       xmlns:test="http://example.org/ts-tests"\r
+       xmlns:xlink="http://www.w3.org/1999/xlink"\r
+       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"\r
+       xmlns:enc11="http://schemas.xmlsoap.org/soap/encoding/">\r
+       <types>\r
+               <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/ts-tests/xsd">\r
+\r
+                       <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />\r
+\r
+                       <complexType name="ArrayOfstring">\r
+                               <complexContent>\r
+                                       <restriction base="enc11:Array">\r
+                                               <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:string[]"/>\r
+                                       </restriction>\r
+                               </complexContent>\r
+                       </complexType>\r
+\r
+                       <complexType name="ArrayOfint">\r
+                               <complexContent>\r
+                                       <restriction base="enc11:Array">\r
+                                               <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:int[]"/>\r
+                                       </restriction>\r
+                               </complexContent>\r
+                       </complexType>\r
+\r
+                       <complexType name="ArrayOffloat">\r
+                               <complexContent>\r
+                                       <restriction base="enc11:Array">\r
+                                               <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:float[]"/>\r
+                                       </restriction>\r
+                               </complexContent>\r
+                       </complexType>\r
+\r
+                       <complexType name="ArrayOfSOAPStruct">\r
+                               <complexContent>\r
+                                       <restriction base="enc11:Array">\r
+                                               <attribute ref="enc11:arrayType" wsdl:arrayType="types:SOAPStruct[]"/>\r
+                                       </restriction>\r
+                               </complexContent>\r
+                       </complexType>\r
+\r
+                       <complexType name="SOAPStruct">\r
+                               <all>\r
+                                       <element name="varString" type="xsd:string"/>\r
+                                       <element name="varInt" type="xsd:int"/>\r
+                                       <element name="varFloat" type="xsd:float"/>\r
+                               </all>\r
+                       </complexType>\r
+                       <complexType name="SOAPStructStruct">\r
+                               <all>\r
+                                       <element name="varString" type="xsd:string"/>\r
+                                       <element name="varInt" type="xsd:int"/>\r
+                                       <element name="varFloat" type="xsd:float"/>\r
+                                       <element name="varStruct" type="types:SOAPStruct"/>\r
+                               </all>\r
+                       </complexType>\r
+\r
+                       <complexType name="SOAPArrayStruct">\r
+                               <all>\r
+                                       <element name="varString" type="xsd:string"/>\r
+                                       <element name="varInt" type="xsd:int"/>\r
+                                       <element name="varFloat" type="xsd:float"/>\r
+                                       <element name="varArray" type="types:ArrayOfstring"/>\r
+                               </all>\r
+                       </complexType>\r
+\r
+                       <!-- unknown header block type -->\r
+                       <complexType name="UnknownType">\r
+                                       <sequence>\r
+                                               <element minOccurs="0" maxOccurs="1" name="stringValue" type="xsd:string" />\r
+                                       </sequence>\r
+                       </complexType>\r
+\r
+               </schema>\r
+\r
+       <schema xmlns="http://www.w3.org/2001/XMLSchema"\r
+                       elementFormDefault="qualified"\r
+                       targetNamespace="http://example.org/ts-tests">\r
+\r
+                       <import namespace="http://www.w3.org/1999/xlink" />\r
+                       <import namespace="http://example.org/ts-tests/xsd" />\r
+\r
+                       <!-- 3.2.1 echoOk -->\r
+                       <element name="echoOk" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.2 responseOk -->\r
+                       <element name="responseOk" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.3 Ignore -->\r
+                       <element name="Ignore" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.4 requiredHeader -->\r
+                       <element name="requiredHeader" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.5 DataHolder -->\r
+                       <element name="DataHolder" type="test:DataHolder_t"/>\r
+                       <complexType name="DataHolder_t">\r
+                               <sequence>\r
+                                       <element name="Data" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>\r
+                               </sequence>\r
+                       </complexType>\r
+\r
+                       <!-- 3.2.6 concatAndForwardEchoOk -->\r
+                       <element name="concatAndForwardEchoOk"/>\r
+\r
+                       <!-- 3.2.7 concatAndForwardEchoOkArg1 -->\r
+                       <element name="concatAndForwardEchoOkArg1" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.8 concatAndForwardEchoOkArg2 -->\r
+                       <element name="concatAndForwardEchoOkArg2" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.9 validateCountryCode -->\r
+                       <element name="validateCountryCode" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.10 validateCountryCodeFault -->\r
+                       <element name="validateCountryCodeFault" type="xsd:string"/>\r
+\r
+                       <!-- 3.2.11 echoResolvedRef -->\r
+                       <element name="RelativeReference" type="test:RelativeReference_t"/>\r
+                       <complexType name="RelativeReference_t">\r
+                               <attribute ref="xml:base"/>\r
+                               <attribute ref="xlink:href"/>\r
+                       </complexType>\r
+\r
+                       <element name="echoResolvedRef" type="test:echoResolvedRef_t"/>\r
+                       <complexType name="echoResolvedRef_t">\r
+                               <sequence>\r
+                                       <element ref="test:RelativeReference" minOccurs="1" maxOccurs="1"/>\r
+                               </sequence>\r
+                       </complexType>\r
+\r
+                       <!-- 3.2.12 responseResolvedRef -->\r
+                       <element name="responseResolvedRef" type="xsd:string"/>\r
+\r
+                       <!-- echoOkUltimateReceiver added to support testing of "relay" -->\r
+                       <element name="echoOkUltimateReceiver" type="xsd:string"/>\r
+\r
+                       <!-- responseOkUltimateReceiver added to support testing of "relay" -->\r
+                       <element name="responseOkUltimateReceiver" type="xsd:string"/>\r
+\r
+                       <element name="Unknown" type="types:UnknownType" />\r
+\r
+               </schema>\r
+\r
+       </types>\r
+\r
+       <!-- 3.4.1 returnVoid rpc operation -->\r
+       <message name="returnVoidRequest"/>\r
+       <message name="returnVoidResponse"/>\r
+\r
+       <!-- 3.4.2 echoStruct rpc operation -->\r
+       <message name="echoStructRequest">\r
+               <part name="inputStruct" type="types:SOAPStruct"/>\r
+       </message>\r
+       <message name="echoStructResponse">\r
+               <part name="return" type="types:SOAPStruct"/>\r
+       </message>\r
+\r
+       <!-- 3.4.3 echoStructArray rpc operation -->\r
+       <message name="echoStructArrayRequest">\r
+               <part name="inputStructArray" type="types:ArrayOfSOAPStruct"/>\r
+       </message>\r
+       <message name="echoStructArrayResponse">\r
+               <part name="return" type="types:ArrayOfSOAPStruct"/>\r
+       </message>\r
+\r
+       <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->\r
+       <message name="echoStructAsSimpleTypesRequest">\r
+               <part name="inputStruct" type="types:SOAPStruct"/>\r
+       </message>\r
+       <message name="echoStructAsSimpleTypesResponse">\r
+               <part name="outputString" type="xsd:string"/>\r
+               <part name="outputInteger" type="xsd:int"/>\r
+               <part name="outputFloat" type="xsd:float"/>\r
+       </message>\r
+\r
+       <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->\r
+       <message name="echoSimpleTypesAsStructRequest">\r
+               <part name="inputString" type="xsd:string"/>\r
+               <part name="inputInt" type="xsd:int"/>\r
+               <part name="inputFloat" type="xsd:float"/>\r
+       </message>\r
+       <message name="echoSimpleTypesAsStructResponse">\r
+               <part name="return" type="types:SOAPStruct"/>\r
+       </message>\r
+\r
+       <!-- 3.4.6 echoNestedStruct rpc operation -->\r
+       <message name="echoNestedStructRequest">\r
+               <part name="inputStruct" type="types:SOAPStructStruct"/>\r
+       </message>\r
+       <message name="echoNestedStructResponse">\r
+               <part name="return" type="types:SOAPStructStruct"/>\r
+       </message>\r
+\r
+       <!-- 3.4.7 echoNestedArray rpc operation -->\r
+       <message name="echoNestedArrayRequest">\r
+               <part name="inputStruct" type="types:SOAPArrayStruct"/>\r
+       </message>\r
+       <message name="echoNestedArrayResponse">\r
+               <part name="return" type="types:SOAPArrayStruct"/>\r
+       </message>\r
+\r
+       <!-- 3.4.8 echoFloatArray rpc operation -->\r
+       <message name="echoFloatArrayRequest">\r
+               <part name="inputFloatArray" type="types:ArrayOffloat"/>\r
+       </message>\r
+       <message name="echoFloatArrayResponse">\r
+               <part name="return" type="types:ArrayOffloat"/>\r
+       </message>\r
+\r
+       <!-- 3.4.9 echoStringArray rpc operation -->\r
+       <message name="echoStringArrayRequest">\r
+               <part name="inputStringArray" type="types:ArrayOfstring"/>\r
+       </message>\r
+       <message name="echoStringArrayResponse">\r
+               <part name="return" type="types:ArrayOfstring"/>\r
+       </message>\r
+\r
+       <!-- 3.4.10 echoIntegerArray rpc operation -->\r
+       <message name="echoIntegerArrayRequest">\r
+               <part name="inputIntegerArray" type="types:ArrayOfint"/>\r
+       </message>\r
+       <message name="echoIntegerArrayResponse">\r
+               <part name="return" type="types:ArrayOfint"/>\r
+       </message>\r
+\r
+       <!-- 3.4.11 echoBase64 rpc operation -->\r
+       <message name="echoBase64Request">\r
+               <part name="inputBase64" type="xsd:base64Binary"/>\r
+       </message>\r
+       <message name="echoBase64Response">\r
+               <part name="return" type="xsd:base64Binary"/>\r
+       </message>\r
+\r
+       <!-- 3.4.12 echoBoolean rpc operation -->\r
+       <message name="echoBooleanRequest">\r
+               <part name="inputBoolean" type="xsd:boolean"/>\r
+       </message>\r
+       <message name="echoBooleanResponse">\r
+               <part name="return" type="xsd:boolean"/>\r
+       </message>\r
+\r
+       <!-- 3.4.13 echoDate rpc operation -->\r
+       <message name="echoDateRequest">\r
+               <part name="inputDate" type="xsd:dateTime"/>\r
+       </message>\r
+       <message name="echoDateResponse">\r
+               <part name="return" type="xsd:dateTime"/>\r
+       </message>\r
+\r
+       <!-- 3.4.14 echoDecimal rpc operation -->\r
+       <message name="echoDecimalRequest">\r
+               <part name="inputDecimal" type="xsd:decimal"/>\r
+       </message>\r
+       <message name="echoDecimalResponse">\r
+               <part name="return" type="xsd:decimal"/>\r
+       </message>\r
+\r
+       <!-- 3.4.15 echoFloat rpc operation -->\r
+       <message name="echoFloatRequest">\r
+               <part name="inputFloat" type="xsd:float"/>\r
+       </message>\r
+       <message name="echoFloatResponse">\r
+               <part name="return" type="xsd:float"/>\r
+       </message>\r
+\r
+       <!-- 3.4.16 echoString rpc operation -->\r
+       <message name="echoStringRequest">\r
+               <part name="inputString" type="xsd:string"/>\r
+       </message>\r
+       <message name="echoStringResponse">\r
+               <part name="return" type="xsd:string"/>\r
+       </message>\r
+\r
+       <!-- 3.4.17 countItems rpc operation -->\r
+       <message name="countItemsRequest">\r
+               <part name="inputStringArray" type="types:ArrayOfstring"/>\r
+       </message>\r
+       <message name="countItemsResponse">\r
+               <part name="return" type="xsd:int"/>\r
+       </message>\r
+\r
+       <!-- 3.4.18 isNil rpc operation -->\r
+       <message name="isNilRequest">\r
+               <part name="inputString" type="xsd:string"/>\r
+       </message>\r
+       <message name="isNilResponse">\r
+               <part name="return" type="xsd:boolean"/>\r
+       </message>\r
+\r
+       <!-- DataHolder header block -->\r
+       <message name="DataHolderRequest">\r
+               <part name="DataHolder" type="test:DataHolder_t"/>\r
+       </message>\r
+       <message name="DataHolderResponse">\r
+               <part name="DataHolder" type="test:DataHolder_t"/>\r
+       </message>\r
+\r
+       <!-- empty message for doc/literal testing -->\r
+       <message name="emptyBodyRequest"/>\r
+       <message name="emptyBodyResponse"/>\r
+\r
+       <!-- echoOk body/header block -->\r
+       <message name="echoOkRequest">\r
+               <part name="echoOk" element="test:echoOk"/>\r
+       </message>\r
+       <message name="echoOkResponse">\r
+               <part name="responseOk" element="test:responseOk"/>\r
+       </message>\r
+\r
+       <!-- "unknown" header block -->\r
+       <message name="UnknownHdrBlockLit">\r
+               <part name="Unknown" element="test:Unknown" />\r
+       </message>\r
+       <message name="UnknownHdrBlockEnc">\r
+               <part name="Unknown" type="types:UnknownType" />\r
+       </message>\r
+\r
+       <portType name="Soap12TestPortTypeDoc">\r
+               <operation name="emptyBody">\r
+                       <input message="tns:emptyBodyRequest" />\r
+                       <output message="tns:emptyBodyResponse" />\r
+               </operation>\r
+               <operation name="echoOk">\r
+                       <input message="tns:echoOkRequest" />\r
+                       <output message="tns:echoOkResponse" />\r
+               </operation>\r
+       </portType>\r
+\r
+       <portType name="Soap12TestPortTypeRpc">\r
+\r
+               <!-- 3.4.1 returnVoid rpc operation -->\r
+               <operation name="returnVoid">\r
+                       <input message="tns:returnVoidRequest"/>\r
+                       <output message="tns:returnVoidResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.2 echoStruct rpc operation -->\r
+               <operation name="echoStruct" parameterOrder="inputStruct">\r
+                       <input message="tns:echoStructRequest"/>\r
+                       <output message="tns:echoStructResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.3 echoStructArray rpc operation -->\r
+               <operation name="echoStructArray" parameterOrder="inputStructArray">\r
+                       <input message="tns:echoStructArrayRequest"/>\r
+                       <output message="tns:echoStructArrayResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->\r
+               <operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">\r
+                       <input message="tns:echoStructAsSimpleTypesRequest"/>\r
+                       <output message="tns:echoStructAsSimpleTypesResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->\r
+               <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">\r
+                       <input message="tns:echoSimpleTypesAsStructRequest"/>\r
+                       <output message="tns:echoSimpleTypesAsStructResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.6 echoNestedStruct rpc operation -->\r
+               <operation name="echoNestedStruct" parameterOrder="inputStruct">\r
+                       <input message="tns:echoNestedStructRequest"/>\r
+                       <output message="tns:echoNestedStructResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.7 echoNestedArray rpc operation -->\r
+               <operation name="echoNestedArray" parameterOrder="inputStruct">\r
+                       <input message="tns:echoNestedArrayRequest"/>\r
+                       <output message="tns:echoNestedArrayResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.8 echoFloatArray rpc operation -->\r
+               <operation name="echoFloatArray" parameterOrder="inputFloatArray">\r
+                       <input message="tns:echoFloatArrayRequest"/>\r
+                       <output message="tns:echoFloatArrayResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.9 echoStringArray rpc operation -->\r
+               <operation name="echoStringArray" parameterOrder="inputStringArray">\r
+                       <input message="tns:echoStringArrayRequest"/>\r
+                       <output message="tns:echoStringArrayResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.10 echoIntegerArray rpc operation -->\r
+               <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">\r
+                       <input message="tns:echoIntegerArrayRequest"/>\r
+                       <output message="tns:echoIntegerArrayResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.11 echoBase64 rpc operation -->\r
+               <operation name="echoBase64" parameterOrder="inputBase64">\r
+                       <input message="tns:echoBase64Request"/>\r
+                       <output message="tns:echoBase64Response"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.12 echoBoolean rpc operation -->\r
+               <operation name="echoBoolean" parameterOrder="inputBoolean">\r
+                       <input message="tns:echoBooleanRequest"/>\r
+                       <output message="tns:echoBooleanResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.13 echoDate rpc operation -->\r
+               <operation name="echoDate" parameterOrder="inputDate">\r
+                       <input message="tns:echoDateRequest"/>\r
+                       <output message="tns:echoDateResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.14 echoDecimal rpc operation -->\r
+               <operation name="echoDecimal" parameterOrder="inputDecimal">\r
+                       <input message="tns:echoDecimalRequest"/>\r
+                       <output message="tns:echoDecimalResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.15 echoFloat rpc operation -->\r
+               <operation name="echoFloat" parameterOrder="inputFloat">\r
+                       <input message="tns:echoFloatRequest"/>\r
+                       <output message="tns:echoFloatResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.16 echoString rpc operation -->\r
+               <operation name="echoString" parameterOrder="inputString">\r
+                       <input message="tns:echoStringRequest"/>\r
+                       <output message="tns:echoStringResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.17 countItems rpc operation -->\r
+               <operation name="countItems" parameterOrder="inputStringArray">\r
+                       <input message="tns:countItemsRequest"/>\r
+                       <output message="tns:countItemsResponse"/>\r
+               </operation>\r
+\r
+               <!-- 3.4.18 isNil rpc operation -->\r
+               <operation name="isNil" parameterOrder="inputString">\r
+                       <input message="tns:isNilRequest"/>\r
+                       <output message="tns:isNilResponse"/>\r
+               </operation>\r
+\r
+       </portType>\r
+\r
+       <binding name="Soap12TestDocBinding" type="tns:Soap12TestPortTypeDoc">\r
+               <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />\r
+               <operation name="emptyBody">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="literal" />\r
+                               <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />\r
+                               <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />\r
+\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="literal" />\r
+                               <soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />\r
+\r
+                       </output>\r
+               </operation>\r
+               <operation name="echoOk">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="literal" />\r
+                               <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />\r
+                               <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="literal" />\r
+                               <soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />\r
+                       </output>\r
+               </operation>\r
+       </binding>\r
+\r
+       <binding name="Soap12TestRpcBinding" type="tns:Soap12TestPortTypeRpc">\r
+               <soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>\r
+\r
+               <!-- 3.4.1 returnVoid rpc operation -->\r
+               <operation name="returnVoid">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.2 echoStruct rpc operation -->\r
+               <operation name="echoStruct">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.3 echoStructArray rpc operation -->\r
+               <operation name="echoStructArray">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->\r
+               <operation name="echoStructAsSimpleTypes">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->\r
+               <operation name="echoSimpleTypesAsStruct">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.6 echoNestedStruct rpc operation -->\r
+               <operation name="echoNestedStruct">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.7 echoNestedArray rpc operation -->\r
+               <operation name="echoNestedArray">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.8 echoFloatArray rpc operation -->\r
+               <operation name="echoFloatArray">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.9 echoStringArray rpc operation -->\r
+               <operation name="echoStringArray">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.10 echoIntegerArray rpc operation -->\r
+               <operation name="echoIntegerArray">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.11 echoBase64 rpc operation -->\r
+               <operation name="echoBase64">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.12 echoBoolean rpc operation -->\r
+               <operation name="echoBoolean">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.13 echoDate rpc operation -->\r
+               <operation name="echoDate">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.14 echoDecimal rpc operation -->\r
+               <operation name="echoDecimal">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.15 echoFloat rpc operation -->\r
+               <operation name="echoFloat">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.16 echoString rpc operation -->\r
+               <operation name="echoString">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                               <soap12:header use="encoded" message="tns:DataHolderRequest" part="DataHolder" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                               <soap12:header use="encoded" message="tns:DataHolderResponse" part="DataHolder" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.17 countItems rpc operation -->\r
+               <operation name="countItems">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+               <!-- 3.4.18 isNil rpc operation -->\r
+               <operation name="isNil">\r
+                       <soap12:operation/>\r
+                       <input>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </input>\r
+                       <output>\r
+                               <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>\r
+                       </output>\r
+               </operation>\r
+\r
+       </binding>\r
+\r
+\r
+       <service name="WhiteMesaSoap12TestSvc">\r
+\r
+               <port name="Soap12TestDocPort" binding="tns:Soap12TestDocBinding">\r
+                       <soap12:address location="http://localhost/soap12/test-doc"/>\r
+               </port>\r
+               <port name="Soap12TestRpcPort" binding="tns:Soap12TestRpcBinding">\r
+                       <soap12:address location="http://localhost/soap12/test-rpc"/>\r
+               </port>\r
+\r
+       </service>\r
+\r
+</definitions>\r