summaryrefslogtreecommitdiff
path: root/ext/soap/tests/soap12
diff options
context:
space:
mode:
Diffstat (limited to 'ext/soap/tests/soap12')
-rw-r--r--ext/soap/tests/soap12/T01.phpt23
-rw-r--r--ext/soap/tests/soap12/T02.phpt23
-rw-r--r--ext/soap/tests/soap12/T03.phpt22
-rw-r--r--ext/soap/tests/soap12/T04.phpt23
-rw-r--r--ext/soap/tests/soap12/T05.phpt23
-rw-r--r--ext/soap/tests/soap12/T10.phpt23
-rw-r--r--ext/soap/tests/soap12/T11.phpt24
-rw-r--r--ext/soap/tests/soap12/T12.phpt23
-rw-r--r--ext/soap/tests/soap12/T13.phpt23
-rw-r--r--ext/soap/tests/soap12/T14.phpt23
-rw-r--r--ext/soap/tests/soap12/T15.phpt24
-rw-r--r--ext/soap/tests/soap12/T19.phpt24
-rw-r--r--ext/soap/tests/soap12/T22.phpt24
-rw-r--r--ext/soap/tests/soap12/T23.phpt24
-rw-r--r--ext/soap/tests/soap12/T26.phpt21
-rw-r--r--ext/soap/tests/soap12/T29.phpt23
-rw-r--r--ext/soap/tests/soap12/T30.phpt20
-rw-r--r--ext/soap/tests/soap12/T32.phpt25
-rw-r--r--ext/soap/tests/soap12/T33.phpt2
-rw-r--r--ext/soap/tests/soap12/T34.phpt24
-rw-r--r--ext/soap/tests/soap12/T35.phpt24
-rw-r--r--ext/soap/tests/soap12/T36.phpt23
-rw-r--r--ext/soap/tests/soap12/T37.phpt23
-rw-r--r--ext/soap/tests/soap12/T38_1.phpt27
-rw-r--r--ext/soap/tests/soap12/T38_2.phpt27
-rw-r--r--ext/soap/tests/soap12/T39.phpt22
-rw-r--r--ext/soap/tests/soap12/T40.phpt26
-rw-r--r--ext/soap/tests/soap12/T66.phpt23
-rw-r--r--ext/soap/tests/soap12/T67.phpt23
-rw-r--r--ext/soap/tests/soap12/T68.phpt32
-rw-r--r--ext/soap/tests/soap12/T73.phpt2
-rw-r--r--ext/soap/tests/soap12/T74.phpt28
-rw-r--r--ext/soap/tests/soap12/T78.phpt23
-rw-r--r--ext/soap/tests/soap12/T80.phpt19
-rw-r--r--ext/soap/tests/soap12/soap12-test.inc14
-rw-r--r--ext/soap/tests/soap12/soap12-test.wsdl41
36 files changed, 814 insertions, 4 deletions
diff --git a/ext/soap/tests/soap12/T01.phpt b/ext/soap/tests/soap12/T01.phpt
new file mode 100644
index 0000000000..d584812d09
--- /dev/null
+++ b/ext/soap/tests/soap12/T01.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T01 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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T02.phpt b/ext/soap/tests/soap12/T02.phpt
new file mode 100644
index 0000000000..db2c260684
--- /dev/null
+++ b/ext/soap/tests/soap12/T02.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T02 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"
+ env:role="http://example.org/ts-tests/C">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T03.phpt b/ext/soap/tests/soap12/T03.phpt
new file mode 100644
index 0000000000..19c29dd3dd
--- /dev/null
+++ b/ext/soap/tests/soap12/T03.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T03 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>
+</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"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T04.phpt b/ext/soap/tests/soap12/T04.phpt
new file mode 100644
index 0000000000..7445caedee
--- /dev/null
+++ b/ext/soap/tests/soap12/T04.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T04 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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T05.phpt b/ext/soap/tests/soap12/T05.phpt
new file mode 100644
index 0000000000..187eb2ee83
--- /dev/null
+++ b/ext/soap/tests/soap12/T05.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T05 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"
+ env:role="http://example.org/ts-tests/B">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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T10.phpt b/ext/soap/tests/soap12/T10.phpt
new file mode 100644
index 0000000000..54186f6a0d
--- /dev/null
+++ b/ext/soap/tests/soap12/T10.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T10 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver">foo</test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T11.phpt b/ext/soap/tests/soap12/T11.phpt
new file mode 100644
index 0000000000..3423d54329
--- /dev/null
+++ b/ext/soap/tests/soap12/T11.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T11 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="false">foo</test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T12.phpt b/ext/soap/tests/soap12/T12.phpt
new file mode 100644
index 0000000000..69020843ec
--- /dev/null
+++ b/ext/soap/tests/soap12/T12.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T12 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="1">foo</test:Unknown>
+ </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:MustUnderstand</env:Value></env:Code><env:Reason><env:Text>Header not understood</env:Text></env:Reason></env:Fault></env:Body></env:Envelope> \ No newline at end of file
diff --git a/ext/soap/tests/soap12/T13.phpt b/ext/soap/tests/soap12/T13.phpt
new file mode 100644
index 0000000000..5b8b799cab
--- /dev/null
+++ b/ext/soap/tests/soap12/T13.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T13 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="true">foo</test:Unknown>
+ </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:MustUnderstand</env:Value></env:Code><env:Reason><env:Text>Header not understood</env:Text></env:Reason></env:Fault></env:Body></env:Envelope> \ No newline at end of file
diff --git a/ext/soap/tests/soap12/T14.phpt b/ext/soap/tests/soap12/T14.phpt
new file mode 100644
index 0000000000..d7f5b2432d
--- /dev/null
+++ b/ext/soap/tests/soap12/T14.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T14 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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="wrong">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:Sender</env:Value></env:Code><env:Reason><env:Text>mustUnderstand value is not boolean</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T15.phpt b/ext/soap/tests/soap12/T15.phpt
new file mode 100644
index 0000000000..546f94237f
--- /dev/null
+++ b/ext/soap/tests/soap12/T15.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T15 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://example.org/ts-tests/B"
+ env:mustUnderstand="1">foo</test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T19.phpt b/ext/soap/tests/soap12/T19.phpt
new file mode 100644
index 0000000000..8ddb5b4f8b
--- /dev/null
+++ b/ext/soap/tests/soap12/T19.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T19 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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/none"
+ env:mustUnderstand="true">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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T22.phpt b/ext/soap/tests/soap12/T22.phpt
new file mode 100644
index 0000000000..5844550ced
--- /dev/null
+++ b/ext/soap/tests/soap12/T22.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T22 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"
+ env:mustUnderstand = "1">foo</test:echoOk>
+ </env:Header>
+ <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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body><ns1:responseOk>foo</ns1:responseOk></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T23.phpt b/ext/soap/tests/soap12/T23.phpt
new file mode 100644
index 0000000000..387a77a1ca
--- /dev/null
+++ b/ext/soap/tests/soap12/T23.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T23 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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="1">foo</test:Unknown>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="wrong">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:Sender</env:Value></env:Code><env:Reason><env:Text>mustUnderstand value is not boolean</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T26.phpt b/ext/soap/tests/soap12/T26.phpt
new file mode 100644
index 0000000000..53c8cec495
--- /dev/null
+++ b/ext/soap/tests/soap12/T26.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP 1.2: T26 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">
+<?xml-stylesheet href="http://example.org/ts-tests/sub.xsl" type = "text/xsl"?>
+ <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:ns1="http://example.org/ts-tests"><env:Body><ns1:responseOk>foo</ns1:responseOk></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T29.phpt b/ext/soap/tests/soap12/T29.phpt
new file mode 100644
index 0000000000..3784da4030
--- /dev/null
+++ b/ext/soap/tests/soap12/T29.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T29 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"
+ env:role="http://example.org/ts-tests/Czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz">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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T30.phpt b/ext/soap/tests/soap12/T30.phpt
new file mode 100644
index 0000000000..c2e008ed4a
--- /dev/null
+++ b/ext/soap/tests/soap12/T30.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP 1.2: T30 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/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:ns1="http://example.org/ts-tests"><SOAP-ENV:Body><ns1:responseOk>foo</ns1:responseOk></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T32.phpt b/ext/soap/tests/soap12/T32.phpt
new file mode 100644
index 0000000000..8f77873f4c
--- /dev/null
+++ b/ext/soap/tests/soap12/T32.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T32 echoHeader
+--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:requiredHeader xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="true">foo</test:requiredHeader>
+ </env:Header>
+ <env:Body>
+ <test:echoHeader xmlns:test="http://example.org/ts-tests">
+ </test:echoHeader>
+ </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"><env:Body><ns1:echoHeaderResponse>foo</ns1:echoHeaderResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T33.phpt b/ext/soap/tests/soap12/T33.phpt
index c39f9e1ace..346b847d23 100644
--- a/ext/soap/tests/soap12/T33.phpt
+++ b/ext/soap/tests/soap12/T33.phpt
@@ -1,5 +1,5 @@
--TEST--
-SOAP 1.2: T33
+SOAP 1.2: T33 nonexistentMethod
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
diff --git a/ext/soap/tests/soap12/T34.phpt b/ext/soap/tests/soap12/T34.phpt
new file mode 100644
index 0000000000..39e0095d43
--- /dev/null
+++ b/ext/soap/tests/soap12/T34.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T34 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ xmlns:env1="http://schemas.xmlsoap.org/soap/envelope/"
+ env1:mustUnderstand="true">foo</test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T35.phpt b/ext/soap/tests/soap12/T35.phpt
new file mode 100644
index 0000000000..d79e12ff8e
--- /dev/null
+++ b/ext/soap/tests/soap12/T35.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T35 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="1">
+ foo
+ </test:Unknown>
+ </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:MustUnderstand</env:Value></env:Code><env:Reason><env:Text>Header not understood</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T36.phpt b/ext/soap/tests/soap12/T36.phpt
new file mode 100644
index 0000000000..dc640a3135
--- /dev/null
+++ b/ext/soap/tests/soap12/T36.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T36 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="1"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver">foo</test:Unknown>
+ </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:MustUnderstand</env:Value></env:Code><env:Reason><env:Text>Header not understood</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T37.phpt b/ext/soap/tests/soap12/T37.phpt
new file mode 100644
index 0000000000..cdce8a4429
--- /dev/null
+++ b/ext/soap/tests/soap12/T37.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T37 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver">foo</test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T38_1.phpt b/ext/soap/tests/soap12/T38_1.phpt
new file mode 100644
index 0000000000..30007e55ef
--- /dev/null
+++ b/ext/soap/tests/soap12/T38_1.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T38.1 doubleHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="false"
+ env:role="http://example.org/ts-tests/C">foo</test:Unknown>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="0"
+ env:role="http://example.org/ts-tests/C">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T38_2.phpt b/ext/soap/tests/soap12/T38_2.phpt
new file mode 100644
index 0000000000..efff2f4db3
--- /dev/null
+++ b/ext/soap/tests/soap12/T38_2.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T38.2 doubleHdr
+--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"
+ env:mustUnderstand="true"
+ env:role="http://example.org/ts-tests/C">foo</test:echoOk>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="1"
+ env:role="http://example.org/ts-tests/C">bar</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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk><ns1:responseOk>bar</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T39.phpt b/ext/soap/tests/soap12/T39.phpt
new file mode 100644
index 0000000000..7e62d32f2d
--- /dev/null
+++ b/ext/soap/tests/soap12/T39.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T39 unknownHdr
+--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:Unknown xmlns:test="http://example.org/ts-tests"
+ env:mustUnderstand="9">foo</test:Unknown>
+ </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:Sender</env:Value></env:Code><env:Reason><env:Text>mustUnderstand value is not boolean</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T40.phpt b/ext/soap/tests/soap12/T40.phpt
new file mode 100644
index 0000000000..27b4a21c47
--- /dev/null
+++ b/ext/soap/tests/soap12/T40.phpt
@@ -0,0 +1,26 @@
+--TEST--
+SOAP 1.2: T40 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:Unknown xmlns:test="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="false">
+ foo
+ </test:Unknown>
+ </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"><env:Body/></env:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/soap12/T66.phpt b/ext/soap/tests/soap12/T66.phpt
new file mode 100644
index 0000000000..cc7cc2e3e3
--- /dev/null
+++ b/ext/soap/tests/soap12/T66.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T66 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' encoding='UTF8'?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T67.phpt b/ext/soap/tests/soap12/T67.phpt
new file mode 100644
index 0000000000..ddc527a6ec
--- /dev/null
+++ b/ext/soap/tests/soap12/T67.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T67 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' standalone='yes'?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T68.phpt b/ext/soap/tests/soap12/T68.phpt
new file mode 100644
index 0000000000..a7915196cb
--- /dev/null
+++ b/ext/soap/tests/soap12/T68.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SOAP 1.2: T68 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+
+
+ <env:Header >
+
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next" >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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T73.phpt b/ext/soap/tests/soap12/T73.phpt
index 5ac1be020b..9143e58179 100644
--- a/ext/soap/tests/soap12/T73.phpt
+++ b/ext/soap/tests/soap12/T73.phpt
@@ -11,7 +11,7 @@ $HTTP_RAW_POST_DATA = <<<EOF
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">
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<test:inputString xsi:type="xsd:string"
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">hello world</test:inputString>
</test:echoString>
diff --git a/ext/soap/tests/soap12/T74.phpt b/ext/soap/tests/soap12/T74.phpt
new file mode 100644
index 0000000000..703e1870a6
--- /dev/null
+++ b/ext/soap/tests/soap12/T74.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T74 doubleHdr
+--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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next">foo</test:echoOk>
+ <test:Unknown xmlns:test="http://example.org/ts-tests">
+ <test:raiseFault env:mustUnderstand="1"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
+ </test:raiseFault>
+ </test:Unknown>
+ </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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T78.phpt b/ext/soap/tests/soap12/T78.phpt
new file mode 100644
index 0000000000..63d13c7cae
--- /dev/null
+++ b/ext/soap/tests/soap12/T78.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T78 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"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver">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:ns1="http://example.org/ts-tests"><env:Header><ns1:responseOk>foo</ns1:responseOk></env:Header><env:Body/></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T80.phpt b/ext/soap/tests/soap12/T80.phpt
new file mode 100644
index 0000000000..e7598e5a81
--- /dev/null
+++ b/ext/soap/tests/soap12/T80.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP 1.2: T80 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>
+ <test:echoOk xmlns:test="http://example.org/ts-tests" env:encodingStyle="http://example.org/PoisonEncoding">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:DataEncodingUnknown</env:Value></env:Code><env:Reason><env:Text>Unknown Data Encoding Style</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/soap12-test.inc b/ext/soap/tests/soap12/soap12-test.inc
index 44733d2ffd..47f39e2b41 100644
--- a/ext/soap/tests/soap12/soap12-test.inc
+++ b/ext/soap/tests/soap12/soap12-test.inc
@@ -1,5 +1,6 @@
<?php
class Soap12test {
+ var $header;
function echoOk($x) {
return $x;
@@ -95,9 +96,20 @@ class Soap12test {
function returnVoid() {
}
+
+ function emptyBody() {
+ }
+
+ function requiredHeader($x) {
+ $this->header = $x;
+ }
+
+ function echoHeader() {
+ return $this->header;
+ }
}
-$server = new soapserver("http://http://example.org/ts-tests");
+$server = new soapserver("http://http://example.org/ts-tests","http://example.org/ts-tests/C");
$server->bind(dirname(__FILE__)."/soap12-test.wsdl");
$server->setClass("Soap12test");
diff --git a/ext/soap/tests/soap12/soap12-test.wsdl b/ext/soap/tests/soap12/soap12-test.wsdl
index e1feccfca8..83a6423176 100644
--- a/ext/soap/tests/soap12/soap12-test.wsdl
+++ b/ext/soap/tests/soap12/soap12-test.wsdl
@@ -102,6 +102,9 @@
<!-- 3.2.4 requiredHeader -->
<element name="requiredHeader" type="xsd:string"/>
+ <element name="echoHeader" type="xsd:string"/>
+ <element name="echoHeaderResponse" type="xsd:string"/>
+
<!-- 3.2.5 DataHolder -->
<element name="DataHolder" type="test:DataHolder_t"/>
<complexType name="DataHolder_t">
@@ -318,6 +321,16 @@
<part name="responseOk" element="test:responseOk"/>
</message>
+ <message name="requiredHeaderRequest">
+ <part name="requiredHeader" element="test:requiredHeader"/>
+ </message>
+ <message name="echoHeaderRequest">
+ <part name="responseHeader" element="test:echoHeader"/>
+ </message>
+ <message name="echoHeaderResponse">
+ <part name="responseHeader" element="test:echoHeaderResponse"/>
+ </message>
+
<!-- "unknown" header block -->
<message name="UnknownHdrBlockLit">
<part name="Unknown" element="test:Unknown" />
@@ -335,6 +348,13 @@
<input message="tns:echoOkRequest" />
<output message="tns:echoOkResponse" />
</operation>
+ <operation name="requiredHeader">
+ <input message="tns:requiredHeaderRequest" />
+ </operation>
+ <operation name="echoHeader">
+ <input message="tns:echoHeaderRequest" />
+ <output message="tns:echoHeaderResponse" />
+ </operation>
</portType>
<portType name="Soap12TestPortTypeRpc">
@@ -477,6 +497,26 @@
<soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />
</output>
</operation>
+ <operation name="requiredHeader">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />
+ <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />
+ </input>
+ </operation>
+ <operation name="echoHeader">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />
+ <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />
+ </output>
+ </operation>
</binding>
<binding name="Soap12TestRpcBinding" type="tns:Soap12TestPortTypeRpc">
@@ -686,7 +726,6 @@
<service name="WhiteMesaSoap12TestSvc">
-
<port name="Soap12TestDocPort" binding="tns:Soap12TestDocBinding">
<soap12:address location="http://localhost/soap12/test-doc"/>
</port>