diff options
Diffstat (limited to 'ext')
75 files changed, 2183 insertions, 0 deletions
diff --git a/ext/soap/tests/schema/schema001.phpt b/ext/soap/tests/schema/schema001.phpt new file mode 100644 index 0000000000..9f2b7e5235 --- /dev/null +++ b/ext/soap/tests/schema/schema001.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 1: simpleType/restriction +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <restriction base="xsd:int"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema002.phpt b/ext/soap/tests/schema/schema002.phpt new file mode 100644 index 0000000000..41f3bbe3fa --- /dev/null +++ b/ext/soap/tests/schema/schema002.phpt @@ -0,0 +1,23 @@ +--TEST-- +SOAP XML Schema 2: simpleType/restriction (reference to type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> + <simpleType name="testType"> + <restriction base="tns:testType2"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema003.phpt b/ext/soap/tests/schema/schema003.phpt new file mode 100644 index 0000000000..75991001e0 --- /dev/null +++ b/ext/soap/tests/schema/schema003.phpt @@ -0,0 +1,23 @@ +--TEST-- +SOAP XML Schema 3: simpleType/restriction (reference to type, that is not defined yet) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <restriction base="tns:testType2"/> + </simpleType> + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema004.phpt b/ext/soap/tests/schema/schema004.phpt new file mode 100644 index 0000000000..b851f76050 --- /dev/null +++ b/ext/soap/tests/schema/schema004.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 4: simpleType/restriction (reference to undefined type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <restriction base="tns:testType2"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(5) "123.5" +ok
\ No newline at end of file diff --git a/ext/soap/tests/schema/schema005.phpt b/ext/soap/tests/schema/schema005.phpt new file mode 100644 index 0000000000..1db0c62f99 --- /dev/null +++ b/ext/soap/tests/schema/schema005.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 5: simpleType/restriction (inline type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <restriction> + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> + </restriction> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema006.phpt b/ext/soap/tests/schema/schema006.phpt new file mode 100644 index 0000000000..e41f27545b --- /dev/null +++ b/ext/soap/tests/schema/schema006.phpt @@ -0,0 +1,25 @@ +--TEST-- +SOAP XML Schema 6: simpleType/restriction (referenced by ellement) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <restriction> + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> + </restriction> + </simpleType> + <element name="testElement" type="tns:testType"/> +EOF; +test_schema($schema,'element="tns:testElement"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema007.phpt b/ext/soap/tests/schema/schema007.phpt new file mode 100644 index 0000000000..fd93c7aa8e --- /dev/null +++ b/ext/soap/tests/schema/schema007.phpt @@ -0,0 +1,25 @@ +--TEST-- +SOAP XML Schema 7: simpleType/restriction (referenced by ellement) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <element name="testElement" type="tns:testType"/> + <simpleType name="testType"> + <restriction> + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> + </restriction> + </simpleType> +EOF; +test_schema($schema,'element="tns:testElement"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok diff --git a/ext/soap/tests/schema/schema008.phpt b/ext/soap/tests/schema/schema008.phpt new file mode 100644 index 0000000000..1c4005f690 --- /dev/null +++ b/ext/soap/tests/schema/schema008.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 8: simpleType/restriction (anonymous, inside an ellement) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF +<element name="testElement"> + <simpleType> + <restriction> + <simpleType name="testType2"> + <restriction base="xsd:int"/> + </simpleType> + </restriction> + </simpleType> +</element> +EOF; +test_schema($schema,'element="tns:testElement"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testElement">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +int(123) +ok + diff --git a/ext/soap/tests/schema/schema009.phpt b/ext/soap/tests/schema/schema009.phpt new file mode 100644 index 0000000000..5198debd90 --- /dev/null +++ b/ext/soap/tests/schema/schema009.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 9: simpleType/list (as string) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list itemType="token"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"one two"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">one two</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(7) "one two" +ok diff --git a/ext/soap/tests/schema/schema010.phpt b/ext/soap/tests/schema/schema010.phpt new file mode 100644 index 0000000000..6cea56ee48 --- /dev/null +++ b/ext/soap/tests/schema/schema010.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 10: simpleType/list (as array) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list itemType="token"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',array("one","two")); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">one two</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(7) "one two" +ok diff --git a/ext/soap/tests/schema/schema011.phpt b/ext/soap/tests/schema/schema011.phpt new file mode 100644 index 0000000000..c66f0f7a10 --- /dev/null +++ b/ext/soap/tests/schema/schema011.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 11: simpleType/list (inline type) (as string) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list> + <simpleType> + <restriction base="int"/> + </simpleType> + </list> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"123 456.7"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123 456</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(7) "123 456" +ok diff --git a/ext/soap/tests/schema/schema012.phpt b/ext/soap/tests/schema/schema012.phpt new file mode 100644 index 0000000000..7ba25f9637 --- /dev/null +++ b/ext/soap/tests/schema/schema012.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 12: simpleType/list (inline type) (as array) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list> + <simpleType> + <restriction base="int"/> + </simpleType> + </list> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,456.7)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123 456</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(7) "123 456" +ok diff --git a/ext/soap/tests/schema/schema013.phpt b/ext/soap/tests/schema/schema013.phpt new file mode 100644 index 0000000000..ee2e114bd6 --- /dev/null +++ b/ext/soap/tests/schema/schema013.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 13: simpleType/union +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union memberTypes="string int float"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"str"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">str</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(3) "str" +ok diff --git a/ext/soap/tests/schema/schema014.phpt b/ext/soap/tests/schema/schema014.phpt new file mode 100644 index 0000000000..87edb3ad30 --- /dev/null +++ b/ext/soap/tests/schema/schema014.phpt @@ -0,0 +1,20 @@ +--TEST-- +SOAP XML Schema 14: simpleType/union +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union memberTypes="string int float"/> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(5) "123.5" +ok diff --git a/ext/soap/tests/schema/schema015.phpt b/ext/soap/tests/schema/schema015.phpt new file mode 100644 index 0000000000..dc9a02d586 --- /dev/null +++ b/ext/soap/tests/schema/schema015.phpt @@ -0,0 +1,30 @@ +--TEST-- +SOAP XML Schema 15: simpleType/union (inline type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="string"/> + </simpleType> + <simpleType> + <restriction base="int"/> + </simpleType> + <simpleType> + <restriction base="float"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"str"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">str</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(3) "str" +ok diff --git a/ext/soap/tests/schema/schema016.phpt b/ext/soap/tests/schema/schema016.phpt new file mode 100644 index 0000000000..714fb59743 --- /dev/null +++ b/ext/soap/tests/schema/schema016.phpt @@ -0,0 +1,30 @@ +--TEST-- +SOAP XML Schema 16: simpleType/union (inline type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="string"/> + </simpleType> + <simpleType> + <restriction base="int"/> + </simpleType> + <simpleType> + <restriction base="float"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(5) "123.5" +ok diff --git a/ext/soap/tests/schema/schema017.phpt b/ext/soap/tests/schema/schema017.phpt new file mode 100644 index 0000000000..8b20483783 --- /dev/null +++ b/ext/soap/tests/schema/schema017.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 17: union with list +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="float"/> + </simpleType> + <simpleType> + <list itemType="int"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',123.5); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(5) "123.5" +ok diff --git a/ext/soap/tests/schema/schema018.phpt b/ext/soap/tests/schema/schema018.phpt new file mode 100644 index 0000000000..f41e277aaa --- /dev/null +++ b/ext/soap/tests/schema/schema018.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 18: union with list +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="float"/> + </simpleType> + <simpleType> + <list itemType="int"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"123.5"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(5) "123.5" +ok diff --git a/ext/soap/tests/schema/schema019.phpt b/ext/soap/tests/schema/schema019.phpt new file mode 100644 index 0000000000..73938772bf --- /dev/null +++ b/ext/soap/tests/schema/schema019.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 19: union with list +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="float"/> + </simpleType> + <simpleType> + <list itemType="int"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"123.5 456.7"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5 456.7</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(11) "123.5 456.7" +ok diff --git a/ext/soap/tests/schema/schema020.phpt b/ext/soap/tests/schema/schema020.phpt new file mode 100644 index 0000000000..899b773756 --- /dev/null +++ b/ext/soap/tests/schema/schema020.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 20: union with list +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <union> + <simpleType> + <restriction base="float"/> + </simpleType> + <simpleType> + <list itemType="int"/> + </simpleType> + </union> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',array(123.5,456.7)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123.5 456.7</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(11) "123.5 456.7" +ok diff --git a/ext/soap/tests/schema/schema021.phpt b/ext/soap/tests/schema/schema021.phpt new file mode 100644 index 0000000000..1400107f81 --- /dev/null +++ b/ext/soap/tests/schema/schema021.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 21: list of unions +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list> + <simpleType> + <union memberTypes="int float str"/> + </simpleType> + </list> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',"123 123.5 456.7 str"); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123 123.5 456.7 str</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(19) "123 123.5 456.7 str" +ok diff --git a/ext/soap/tests/schema/schema022.phpt b/ext/soap/tests/schema/schema022.phpt new file mode 100644 index 0000000000..bfbb05c772 --- /dev/null +++ b/ext/soap/tests/schema/schema022.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 22: list of unions +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <simpleType name="testType"> + <list> + <simpleType> + <union memberTypes="int float str"/> + </simpleType> + </list> + </simpleType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5,'str')); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType">123 123.5 str</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +string(13) "123 123.5 str" +ok diff --git a/ext/soap/tests/schema/schema023.phpt b/ext/soap/tests/schema/schema023.phpt new file mode 100644 index 0000000000..162a46e7f5 --- /dev/null +++ b/ext/soap/tests/schema/schema023.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 23: SOAP 1.1 Array +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:testType"><item xsi:type="xsd:int">123</item><item xsi:type="xsd:int">123</item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema024.phpt b/ext/soap/tests/schema/schema024.phpt new file mode 100644 index 0000000000..628dfd73fd --- /dev/null +++ b/ext/soap/tests/schema/schema024.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 24: SOAP 1.1 Array (second way) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:testType"><x_item xsi:type="xsd:int">123</x_item><x_item xsi:type="xsd:int">123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema025.phpt b/ext/soap/tests/schema/schema025.phpt new file mode 100644 index 0000000000..f9c7af7586 --- /dev/null +++ b/ext/soap/tests/schema/schema025.phpt @@ -0,0 +1,30 @@ +--TEST-- +SOAP XML Schema 25: SOAP 1.2 Array +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <attribute ref="enc12:itemType" wsdl:itemType="int"/> + <attribute ref="enc12:arraySize" wsdl:arraySize="*"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:testType"><item xsi:type="xsd:int">123</item><item xsi:type="xsd:int">123</item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema026.phpt b/ext/soap/tests/schema/schema026.phpt new file mode 100644 index 0000000000..a80215ed4f --- /dev/null +++ b/ext/soap/tests/schema/schema026.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 26: SOAP 1.2 Array (second way) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:testType"><x_item xsi:type="xsd:int">123</x_item><x_item xsi:type="xsd:int">123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema027.phpt b/ext/soap/tests/schema/schema027.phpt new file mode 100644 index 0000000000..968b8562db --- /dev/null +++ b/ext/soap/tests/schema/schema027.phpt @@ -0,0 +1,35 @@ +--TEST-- +SOAP XML Schema 27: SOAP 1.1 Multidimensional array +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[,]"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(array(123),array(123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2,1]" xsi:type="ns1:testType"><item xsi:type="xsd:int">123</item><item xsi:type="xsd:int">123</item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + array(1) { + [0]=> + int(123) + } + [1]=> + array(1) { + [0]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema028.phpt b/ext/soap/tests/schema/schema028.phpt new file mode 100644 index 0000000000..f86a875848 --- /dev/null +++ b/ext/soap/tests/schema/schema028.phpt @@ -0,0 +1,36 @@ +--TEST-- +SOAP XML Schema 28: SOAP 1.2 Multidimensional array +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <attribute ref="enc12:itemType" wsdl:itemType="int"/> + <attribute ref="enc12:arraySize" wsdl:arraySize="* 1"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(array(123),array(123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2,1]" xsi:type="ns1:testType"><item xsi:type="xsd:int">123</item><item xsi:type="xsd:int">123</item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + array(1) { + [0]=> + int(123) + } + [1]=> + array(1) { + [0]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema029.phpt b/ext/soap/tests/schema/schema029.phpt new file mode 100644 index 0000000000..8ae0a3b12f --- /dev/null +++ b/ext/soap/tests/schema/schema029.phpt @@ -0,0 +1,38 @@ +--TEST-- +SOAP XML Schema 29: SOAP 1.2 Multidimensional array (second way) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + <attribute ref="enc12:arraySize" wsdl:arraySize="* 1"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(array(123),array(123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam SOAP-ENC:arrayType="xsd:int[2,1]" xsi:type="ns1:testType"><x_item xsi:type="xsd:int">123</x_item><x_item xsi:type="xsd:int">123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + array(1) { + [0]=> + int(123) + } + [1]=> + array(1) { + [0]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema030.phpt b/ext/soap/tests/schema/schema030.phpt new file mode 100644 index 0000000000..f6e62d4106 --- /dev/null +++ b/ext/soap/tests/schema/schema030.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 30: Structure (sequence) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="str" type="string"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["str"]=> + string(3) "str" +} +ok diff --git a/ext/soap/tests/schema/schema031.phpt b/ext/soap/tests/schema/schema031.phpt new file mode 100644 index 0000000000..f7d7712577 --- /dev/null +++ b/ext/soap/tests/schema/schema031.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 31: Structure (all) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <all> + <element name="int" type="int"/> + <element name="str" type="string"/> + </all> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["str"]=> + string(3) "str" +} +ok diff --git a/ext/soap/tests/schema/schema032.phpt b/ext/soap/tests/schema/schema032.phpt new file mode 100644 index 0000000000..bde19cee7e --- /dev/null +++ b/ext/soap/tests/schema/schema032.phpt @@ -0,0 +1,26 @@ +--TEST-- +SOAP XML Schema 32: Structure (choice) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <choice> + <element name="int" type="int"/> + <element name="str" type="string"/> + </choice> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (1) { + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema033.phpt b/ext/soap/tests/schema/schema033.phpt new file mode 100644 index 0000000000..1c8341b71d --- /dev/null +++ b/ext/soap/tests/schema/schema033.phpt @@ -0,0 +1,36 @@ +--TEST-- +SOAP XML Schema 33: Nested complex types +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="nest" type="tns:testType2"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"nest"=>array("int"=>123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><nest xsi:type="ns1:testType2"><int xsi:type="xsd:int">123</int></nest></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["nest"]=> + object(stdClass)#6 (1) { + ["int"]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema034.phpt b/ext/soap/tests/schema/schema034.phpt new file mode 100644 index 0000000000..995b0485e5 --- /dev/null +++ b/ext/soap/tests/schema/schema034.phpt @@ -0,0 +1,37 @@ +--TEST-- +SOAP XML Schema 34: Nested complex types (element ref) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <element name="testType2" type="tns:testType2"/> + <complexType name="testType2"> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element ref="tns:testType2"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"testType2"=>array("int"=>123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><testType2 xsi:type="ns1:testType2"><int xsi:type="xsd:int">123</int></testType2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["testType2"]=> + object(stdClass)#6 (1) { + ["int"]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema035.phpt b/ext/soap/tests/schema/schema035.phpt new file mode 100644 index 0000000000..da2c6410a6 --- /dev/null +++ b/ext/soap/tests/schema/schema035.phpt @@ -0,0 +1,38 @@ +--TEST-- +SOAP XML Schema 35: Nested complex types (element ref + anonymous type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <element name="testType2"> + <complexType> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + </element> + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element ref="tns:testType2"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"testType2"=>array("int"=>123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><testType2 xsi:type="ns1:testType2"><int xsi:type="xsd:int">123</int></testType2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["testType2"]=> + object(stdClass)#6 (1) { + ["int"]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema036.phpt b/ext/soap/tests/schema/schema036.phpt new file mode 100644 index 0000000000..bf25ec4b98 --- /dev/null +++ b/ext/soap/tests/schema/schema036.phpt @@ -0,0 +1,37 @@ +--TEST-- +SOAP XML Schema 36: Nested complex types (inline) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="testType2"> + <complexType> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + </element> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"testType2"=>array("int"=>123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><testType2 xsi:type="ns1:testType2"><int xsi:type="xsd:int">123</int></testType2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["testType2"]=> + object(stdClass)#6 (1) { + ["int"]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema037.phpt b/ext/soap/tests/schema/schema037.phpt new file mode 100644 index 0000000000..b1437a1f93 --- /dev/null +++ b/ext/soap/tests/schema/schema037.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 37: Structure with attributes +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="str" type="string"/> + </sequence> + <attribute name="int" type="int"/> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam int="123" xsi:type="ns1:testType"><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema038.phpt b/ext/soap/tests/schema/schema038.phpt new file mode 100644 index 0000000000..fec1332423 --- /dev/null +++ b/ext/soap/tests/schema/schema038.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 38: Structure with attributes (ref) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="str" type="string"/> + </sequence> + <attribute ref="tns:int"/> + </complexType> + <attribute name="int" type="int"/> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam int="123" xsi:type="ns1:testType"><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema039.phpt b/ext/soap/tests/schema/schema039.phpt new file mode 100644 index 0000000000..f392022809 --- /dev/null +++ b/ext/soap/tests/schema/schema039.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 39: Structure with attributes (attributeGroup) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="str" type="string"/> + </sequence> + <attributeGroup ref="tns:intGroup"/> + </complexType> + <attributeGroup name="intGroup"> + <attribute name="int" type="int"/> + </attributeGroup> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam int="123" xsi:type="ns1:testType"><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema040.phpt b/ext/soap/tests/schema/schema040.phpt new file mode 100644 index 0000000000..85a1d5c8b2 --- /dev/null +++ b/ext/soap/tests/schema/schema040.phpt @@ -0,0 +1,32 @@ +--TEST-- +SOAP XML Schema 40: Structure with attributes (inline types) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="str" type="string"/> + </sequence> + <attribute name="int"> + <simpleType> + <restriction base="int"/> + </simpleType> + </attribute> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam int="123" xsi:type="ns1:testType"><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema041.phpt b/ext/soap/tests/schema/schema041.phpt new file mode 100644 index 0000000000..13df8d7902 --- /dev/null +++ b/ext/soap/tests/schema/schema041.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 41: Structure (group) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <group ref="tns:testGroup"/> + </complexType> + <group name="testGroup"> + <sequence> + <element name="int" type="int"/> + <element name="str" type="string"/> + </sequence> + </group> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><str xsi:type="xsd:string">str</str></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["str"]=> + string(3) "str" +} +ok diff --git a/ext/soap/tests/schema/schema042.phpt b/ext/soap/tests/schema/schema042.phpt new file mode 100644 index 0000000000..eab3059205 --- /dev/null +++ b/ext/soap/tests/schema/schema042.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 42: Extension of simple type +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <simpleContent> + <extension base="int"> + <attribute name="int" type="int"/> + </extension> + </simpleContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["_"]=> + int(123) + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema043.phpt b/ext/soap/tests/schema/schema043.phpt new file mode 100644 index 0000000000..b1977b6cb6 --- /dev/null +++ b/ext/soap/tests/schema/schema043.phpt @@ -0,0 +1,38 @@ +--TEST-- +SOAP XML Schema 43: Extension of simple type (2) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <simpleContent> + <extension base="int"> + <attribute name="int" type="int"/> + </extension> + </simpleContent> + </complexType> + <complexType name="testType"> + <simpleContent> + <extension base="tns:testType2"> + <attribute name="int2" type="int"/> + </extension> + </simpleContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int="123" int2="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (3) { + ["_"]=> + int(123) + ["int"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema044.phpt b/ext/soap/tests/schema/schema044.phpt new file mode 100644 index 0000000000..b5dbbe1e66 --- /dev/null +++ b/ext/soap/tests/schema/schema044.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 44: Restriction of simple type +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <simpleContent> + <restriction base="int"> + <attribute name="int" type="int"/> + </restriction> + </simpleContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["_"]=> + int(123) + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema045.phpt b/ext/soap/tests/schema/schema045.phpt new file mode 100644 index 0000000000..6410e1e063 --- /dev/null +++ b/ext/soap/tests/schema/schema045.phpt @@ -0,0 +1,36 @@ +--TEST-- +SOAP XML Schema 45: Restriction of simple type (2) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <simpleContent> + <extension base="int"> + <attribute name="int" type="int"/> + </extension> + </simpleContent> + </complexType> + <complexType name="testType"> + <simpleContent> + <restriction base="tns:testType2"> + <attribute name="int2" type="int"/> + </restriction> + </simpleContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int2="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["_"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema046.phpt b/ext/soap/tests/schema/schema046.phpt new file mode 100644 index 0000000000..3d4695c494 --- /dev/null +++ b/ext/soap/tests/schema/schema046.phpt @@ -0,0 +1,38 @@ +--TEST-- +SOAP XML Schema 46: Extension of complex type +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <simpleContent> + <extension base="int"> + <attribute name="int" type="int"/> + </extension> + </simpleContent> + </complexType> + <complexType name="testType"> + <complexContent> + <extension base="tns:testType2"> + <attribute name="int2" type="int"/> + </extension> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int="123" int2="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (3) { + ["_"]=> + int(123) + ["int"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema047.phpt b/ext/soap/tests/schema/schema047.phpt new file mode 100644 index 0000000000..497f7ef5d0 --- /dev/null +++ b/ext/soap/tests/schema/schema047.phpt @@ -0,0 +1,34 @@ +--TEST-- +SOAP XML Schema 47: Extension of complex type (2) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + <complexType name="testType"> + <complexContent> + <extension base="tns:testType2"> + <attribute name="int2" type="int"/> + </extension> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int2="123"><int xsi:type="xsd:int">123</int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema048.phpt b/ext/soap/tests/schema/schema048.phpt new file mode 100644 index 0000000000..0fc02e2e66 --- /dev/null +++ b/ext/soap/tests/schema/schema048.phpt @@ -0,0 +1,36 @@ +--TEST-- +SOAP XML Schema 48: Restriction of complex type +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <simpleContent> + <extension base="int"> + <attribute name="int" type="int"/> + </extension> + </simpleContent> + </complexType> + <complexType name="testType"> + <complexContent> + <restriction base="tns:testType2"> + <attribute name="int2" type="int"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType" int2="123">123</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["_"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema049.phpt b/ext/soap/tests/schema/schema049.phpt new file mode 100644 index 0000000000..4213ba0c8f --- /dev/null +++ b/ext/soap/tests/schema/schema049.phpt @@ -0,0 +1,34 @@ +--TEST-- +SOAP XML Schema 49: Restriction of complex type (2) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType2"> + <sequence> + <element name="int" type="int"/> + </sequence> + </complexType> + <complexType name="testType"> + <complexContent> + <restriction base="tns:testType2"> + <sequence> + <element name="int2" type="int"/> + </sequence> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>123.5,"int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int2 xsi:type="xsd:int">123</int2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (1) { + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema050.phpt b/ext/soap/tests/schema/schema050.phpt new file mode 100644 index 0000000000..925edb133f --- /dev/null +++ b/ext/soap/tests/schema/schema050.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 50: Array in complex type (maxOccurs > 1, one value) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="int2" type="int" maxOccurs="unbounded"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"int2"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><int2 xsi:type="xsd:int">123</int2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema051.phpt b/ext/soap/tests/schema/schema051.phpt new file mode 100644 index 0000000000..582c78eaf4 --- /dev/null +++ b/ext/soap/tests/schema/schema051.phpt @@ -0,0 +1,33 @@ +--TEST-- +SOAP XML Schema 51: Array in complex type (maxOccurs > 1, array) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="int2" type="int" maxOccurs="unbounded"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"int2"=>array(123.5,456.7))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><int2 xsi:type="xsd:int">123</int2><int2 xsi:type="xsd:int">456</int2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["int2"]=> + array(2) { + [0]=> + int(123) + [1]=> + int(456) + } +} +ok diff --git a/ext/soap/tests/schema/schema052.phpt b/ext/soap/tests/schema/schema052.phpt new file mode 100644 index 0000000000..59f6ff811f --- /dev/null +++ b/ext/soap/tests/schema/schema052.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 52: Array in complex type (maxOccurs > 1, array with one value) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="int2" type="int" maxOccurs="unbounded"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"int2"=>array(123.5))); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int><int2 xsi:type="xsd:int">123</int2></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["int"]=> + int(123) + ["int2"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema053.phpt b/ext/soap/tests/schema/schema053.phpt new file mode 100644 index 0000000000..b88115ec29 --- /dev/null +++ b/ext/soap/tests/schema/schema053.phpt @@ -0,0 +1,26 @@ +--TEST-- +SOAP XML Schema 52: Array in complex type (maxOccurs > 1, empty array) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="int" type="int"/> + <element name="int2" type="int" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("int"=>123.5,"int2"=>array())); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><int xsi:type="xsd:int">123</int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (1) { + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema054.phpt b/ext/soap/tests/schema/schema054.phpt new file mode 100644 index 0000000000..0570da0bb2 --- /dev/null +++ b/ext/soap/tests/schema/schema054.phpt @@ -0,0 +1,21 @@ +--TEST-- +SOAP XML Schema 54: Apache Map +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = ''; +test_schema($schema,'type="apache:Map" xmlns:apache="http://xml.apache.org/xml-soap"',array('a'=>123,'b'=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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/" xmlns:ns2="http://xml.apache.org/xml-soap" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><testParam xsi:type="ns2:Map"><item><key xsi:type="xsd:string">a</key><value xsi:type="xsd:int">123</value></item><item><key xsi:type="xsd:string">b</key><value xsi:type="xsd:float">123.5</value></item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + ["a"]=> + int(123) + ["b"]=> + float(123.5) +} +ok diff --git a/ext/soap/tests/schema/schema055.phpt b/ext/soap/tests/schema/schema055.phpt new file mode 100644 index 0000000000..c4d9577425 --- /dev/null +++ b/ext/soap/tests/schema/schema055.phpt @@ -0,0 +1,28 @@ +--TEST-- +SOAP XML Schema 55: Apache Map (extension) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <extension base="apache:Map" xmlns:apache="http://xml.apache.org/xml-soap"> + </extension> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="testType"',array('a'=>123,'b'=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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/" xmlns:ns2="http://xml.apache.org/xml-soap" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><testParam xsi:type="ns2:Map"><item><key xsi:type="xsd:string">a</key><value xsi:type="xsd:int">123</value></item><item><key xsi:type="xsd:string">b</key><value xsi:type="xsd:float">123.5</value></item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + ["a"]=> + int(123) + ["b"]=> + float(123.5) +} +ok diff --git a/ext/soap/tests/schema/schema056.phpt b/ext/soap/tests/schema/schema056.phpt new file mode 100644 index 0000000000..1ada78ea2a --- /dev/null +++ b/ext/soap/tests/schema/schema056.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 56: SOAP 1.1 Array (literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><xsd:int>123</xsd:int><xsd:int>123</xsd:int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema057.phpt b/ext/soap/tests/schema/schema057.phpt new file mode 100644 index 0000000000..1848b9c24a --- /dev/null +++ b/ext/soap/tests/schema/schema057.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 57: SOAP 1.1 Array (second way, literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><x_item>123</x_item><x_item>123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema058.phpt b/ext/soap/tests/schema/schema058.phpt new file mode 100644 index 0000000000..b96fc9fcca --- /dev/null +++ b/ext/soap/tests/schema/schema058.phpt @@ -0,0 +1,30 @@ +--TEST-- +SOAP XML Schema 58: SOAP 1.2 Array (literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <attribute ref="enc12:itemType" wsdl:itemType="int"/> + <attribute ref="enc12:arraySize" wsdl:arraySize="*"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><xsd:int>123</xsd:int><xsd:int>123</xsd:int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema059.phpt b/ext/soap/tests/schema/schema059.phpt new file mode 100644 index 0000000000..875bae9868 --- /dev/null +++ b/ext/soap/tests/schema/schema059.phpt @@ -0,0 +1,31 @@ +--TEST-- +SOAP XML Schema 59: SOAP 1.2 Array (second way, literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><x_item>123</x_item><x_item>123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + int(123) + [1]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema060.phpt b/ext/soap/tests/schema/schema060.phpt new file mode 100644 index 0000000000..4daa83c191 --- /dev/null +++ b/ext/soap/tests/schema/schema060.phpt @@ -0,0 +1,36 @@ +--TEST-- +SOAP XML Schema 60: SOAP 1.2 Multidimensional array (literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <attribute ref="enc12:itemType" wsdl:itemType="int"/> + <attribute ref="enc12:arraySize" wsdl:arraySize="* 1"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(array(123),array(123.5)),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><xsd:int>123</xsd:int><xsd:int>123</xsd:int></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + array(1) { + [0]=> + int(123) + } + [1]=> + array(1) { + [0]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema061.phpt b/ext/soap/tests/schema/schema061.phpt new file mode 100644 index 0000000000..bbd2aa6579 --- /dev/null +++ b/ext/soap/tests/schema/schema061.phpt @@ -0,0 +1,38 @@ +--TEST-- +SOAP XML Schema 61: SOAP 1.2 Multidimensional array (second way, literal encoding) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="enc12:Array" xmlns:enc12="http://www.w3.org/2003/05/soap-encoding"> + <all> + <element name="x_item" type="int" maxOccurs="unbounded"/> + </all> + <attribute ref="enc12:arraySize" wsdl:arraySize="* 1"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(array(123),array(123.5)),'rpc','literal'); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:test><testParam><x_item>123</x_item><x_item>123</x_item></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +array(2) { + [0]=> + array(1) { + [0]=> + int(123) + } + [1]=> + array(1) { + [0]=> + int(123) + } +} +ok diff --git a/ext/soap/tests/schema/schema062.phpt b/ext/soap/tests/schema/schema062.phpt new file mode 100644 index 0000000000..e95c2959c8 --- /dev/null +++ b/ext/soap/tests/schema/schema062.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 62: NULL with attributes +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <simpleContent> + <restriction base="int"> + <attribute name="int" type="int"/> + </restriction> + </simpleContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("_"=>NULL,"int"=>123.5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:nil="1" int="123" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["_"]=> + NULL + ["int"]=> + int(123) +} +ok diff --git a/ext/soap/tests/schema/schema063.phpt b/ext/soap/tests/schema/schema063.phpt new file mode 100644 index 0000000000..4c88b5e036 --- /dev/null +++ b/ext/soap/tests/schema/schema063.phpt @@ -0,0 +1,16 @@ +--TEST-- +SOAP XML Schema 63: standard unsignedLong type +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = ''; +test_schema($schema,'type="xsd:unsignedLong"',0xffffffff); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="xsd:unsignedLong">4294967295</testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +float(4294967295) +ok diff --git a/ext/soap/tests/schema/schema064.phpt b/ext/soap/tests/schema/schema064.phpt new file mode 100644 index 0000000000..b2b5db7ee0 --- /dev/null +++ b/ext/soap/tests/schema/schema064.phpt @@ -0,0 +1,57 @@ +--TEST-- +SOAP XML Schema 64: standard date/time types +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <sequence> + <element name="dateTime" type="dateTime"/> + <element name="time" type="time"/> + <element name="date" type="date"/> + <element name="gYearMonth" type="gYearMonth"/> + <element name="gYear" type="gYear"/> + <element name="gMonthDay" type="gMonthDay"/> + <element name="gDay" type="gDay"/> + <element name="gMonth" type="gMonth"/> + </sequence> + </complexType> +EOF; +$date = gmmktime(1,2,3,4,5,1976); +putenv('TZ=GMT'); +test_schema($schema,'type="tns:testType"',array( + 'dateTime' => $date, + 'time' => $date, + 'date' => $date, + 'gYearMonth' => $date, + 'gYear' => $date, + 'gMonthDay' => $date, + 'gDay' => $date, + 'gMonth' => $date +)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam xsi:type="ns1:testType"><dateTime xsi:type="xsd:dateTime">1976-04-05T01:02:03Z</dateTime><time xsi:type="xsd:time">01:02:03Z</time><date xsi:type="xsd:date">1976-04-05Z</date><gYearMonth xsi:type="xsd:gYearMonth">1976-04Z</gYearMonth><gYear xsi:type="xsd:gYear">1976Z</gYear><gMonthDay xsi:type="xsd:gMonthDay">--04-05Z</gMonthDay><gDay xsi:type="xsd:gDay">---05Z</gDay><gMonth xsi:type="xsd:gMonth">--04--Z</gMonth></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#4 (8) { + ["dateTime"]=> + string(20) "1976-04-05T01:02:03Z" + ["time"]=> + string(9) "01:02:03Z" + ["date"]=> + string(11) "1976-04-05Z" + ["gYearMonth"]=> + string(8) "1976-04Z" + ["gYear"]=> + string(5) "1976Z" + ["gMonthDay"]=> + string(8) "--04-05Z" + ["gDay"]=> + string(6) "---05Z" + ["gMonth"]=> + string(7) "--04--Z" +} +ok diff --git a/ext/soap/tests/schema/schema065.phpt b/ext/soap/tests/schema/schema065.phpt new file mode 100644 index 0000000000..eb768ed851 --- /dev/null +++ b/ext/soap/tests/schema/schema065.phpt @@ -0,0 +1,26 @@ +--TEST-- +SOAP XML Schema 65: Attribute with default value +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attribute name="int" type="int" default="5"/> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str")); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam str="str" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(5) +} +ok diff --git a/ext/soap/tests/schema/schema066.phpt b/ext/soap/tests/schema/schema066.phpt new file mode 100644 index 0000000000..8093aacf3c --- /dev/null +++ b/ext/soap/tests/schema/schema066.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 66: Attribute with fixed value (1) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attribute name="int" type="int" fixed="5"/> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str")); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam str="str" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (1) { + ["str"]=> + string(3) "str" +} +ok diff --git a/ext/soap/tests/schema/schema067.phpt b/ext/soap/tests/schema/schema067.phpt new file mode 100644 index 0000000000..8aa08d2d2b --- /dev/null +++ b/ext/soap/tests/schema/schema067.phpt @@ -0,0 +1,26 @@ +--TEST-- +SOAP XML Schema 67: Attribute with fixed value (2) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attribute name="int" type="int" fixed="5"/> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>5)); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam str="str" int="5" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(5) +} +ok diff --git a/ext/soap/tests/schema/schema068.phpt b/ext/soap/tests/schema/schema068.phpt new file mode 100644 index 0000000000..d8d18c305c --- /dev/null +++ b/ext/soap/tests/schema/schema068.phpt @@ -0,0 +1,18 @@ +--TEST-- +SOAP XML Schema 68: Attribute with fixed value (3) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attribute name="int" type="int" fixed="5"/> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str","int"=>4)); +echo "ok"; +?> +--EXPECTF-- +Fatal error: Attribute 'int' has fixed value '5' (value '4' is not allowed) in %stest_schema.inc on line %d diff --git a/ext/soap/tests/schema/schema069.phpt b/ext/soap/tests/schema/schema069.phpt new file mode 100644 index 0000000000..67df500906 --- /dev/null +++ b/ext/soap/tests/schema/schema069.phpt @@ -0,0 +1,27 @@ +--TEST-- +SOAP XML Schema 69: Attribute with default value (reference) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attribute ref="tns:int"/> + </complexType> + <attribute name="int" type="int" default="5"/> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str")); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam str="str" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(5) +} +ok diff --git a/ext/soap/tests/schema/schema070.phpt b/ext/soap/tests/schema/schema070.phpt new file mode 100644 index 0000000000..f9171923c0 --- /dev/null +++ b/ext/soap/tests/schema/schema070.phpt @@ -0,0 +1,29 @@ +--TEST-- +SOAP XML Schema 70: Attribute with default value (attributeGroup) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <attribute name="str" type="string"/> + <attributeGroup ref="tns:int_group"/> + </complexType> + <attributeGroup name="int_group"> + <attribute name="int" type="int" default="5"/> + </attributeGroup> +EOF; +test_schema($schema,'type="tns:testType"',(object)array("str"=>"str")); +echo "ok"; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" 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><ns1:test><testParam str="str" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope> +object(stdClass)#5 (2) { + ["str"]=> + string(3) "str" + ["int"]=> + int(5) +} +ok diff --git a/ext/soap/tests/schema/schema071.phpt b/ext/soap/tests/schema/schema071.phpt new file mode 100644 index 0000000000..1991f7ad8e --- /dev/null +++ b/ext/soap/tests/schema/schema071.phpt @@ -0,0 +1,23 @@ +--TEST-- +SOAP XML Schema 71: SOAP 1.1 Array (document style) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'type="tns:testType"',array(123,123.5),'document','literal'); +echo "ok"; +?> +--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"><SOAP-ENV:Body><testParam><xsd:int>123</xsd:int><xsd:int>123</xsd:int></testParam></SOAP-ENV:Body></SOAP-ENV:Envelope> +ok diff --git a/ext/soap/tests/schema/schema072.phpt b/ext/soap/tests/schema/schema072.phpt new file mode 100644 index 0000000000..89a0ed3597 --- /dev/null +++ b/ext/soap/tests/schema/schema072.phpt @@ -0,0 +1,25 @@ +--TEST-- +SOAP XML Schema 72: SOAP 1.1 Array (document style, element with inline type) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <element name="testElement"> + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/> + </restriction> + </complexContent> + </complexType> + </element> +EOF; +test_schema($schema,'element="tns:testElement"',array(123,123.5),'document','literal'); +echo "ok"; +?> +--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:ns1="http://test-uri/"><SOAP-ENV:Body><ns1:testElement><xsd:int>123</xsd:int><xsd:int>123</xsd:int></ns1:testElement></SOAP-ENV:Body></SOAP-ENV:Envelope> +ok diff --git a/ext/soap/tests/schema/schema073.phpt b/ext/soap/tests/schema/schema073.phpt new file mode 100644 index 0000000000..22dd9e2604 --- /dev/null +++ b/ext/soap/tests/schema/schema073.phpt @@ -0,0 +1,24 @@ +--TEST-- +SOAP XML Schema 73: SOAP 1.1 Array (document style, element with type ref) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +include "test_schema.inc"; +$schema = <<<EOF + <element name="testElement" type="tns:testType"/> + <complexType name="testType"> + <complexContent> + <restriction base="SOAP-ENC:Array"> + <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/> + </restriction> + </complexContent> + </complexType> +EOF; +test_schema($schema,'element="tns:testElement"',array(123,123.5),'document','literal'); +echo "ok"; +?> +--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:ns1="http://test-uri/"><SOAP-ENV:Body><ns1:testElement><xsd:int>123</xsd:int><xsd:int>123</xsd:int></ns1:testElement></SOAP-ENV:Body></SOAP-ENV:Envelope> +ok diff --git a/ext/soap/tests/schema/skipif.inc b/ext/soap/tests/schema/skipif.inc new file mode 100644 index 0000000000..fa8574e6a2 --- /dev/null +++ b/ext/soap/tests/schema/skipif.inc @@ -0,0 +1,3 @@ +<?php + if (!extension_loaded('soap')) die('skip soap extension not available'); +?> diff --git a/ext/soap/tests/schema/test_schema.inc b/ext/soap/tests/schema/test_schema.inc new file mode 100644 index 0000000000..186eda33a6 --- /dev/null +++ b/ext/soap/tests/schema/test_schema.inc @@ -0,0 +1,81 @@ +<?php +$val = null; + +function test($input) { + global $val; + $val = $input; +} + +function test_schema($schema,$type,$param,$style="rpc",$use="encoded") { + global $HTTP_RAW_POST_DATA, $val; +$wsdl = <<<EOF +<definitions name="InteropTest" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" + xmlns:tns="http://test-uri/" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns="http://schemas.xmlsoap.org/wsdl/" + targetNamespace="http://test-uri/"> + <types> + <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://test-uri/"> + <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> + <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" /> + $schema + </schema> + </types> + <message name="testMessage"> + <part name="testParam" $type/> + </message> + <portType name="testPortType"> + <operation name="test"> + <input message="testMessage"/> + </operation> + </portType> + <binding name="testBinding" type="testPortType"> + <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> + <operation name="test"> + <soap:operation soapAction="#test" style="$style"/> + <input> + <soap:body parts="body" use="$use" namespace="http://test-uri/"/> + </input> + </operation> + </binding> + <service name="testService"> + <port name="testPort" binding="tns:testBinding"> + <soap:address location="test://" /> + </port> + </service> +</definitions> +EOF; + + $fname = tempnam ("./", "wsdl"); + $f = fopen($fname,"w"); + fwrite($f,$wsdl); + fclose($f); + $x = new SoapObject($fname); + $y = new SoapServer("http://test-uri/"); + $y->bind($fname); + $y->addfunction("test"); + unlink($fname); + + $x->__trace(1); + $x->test($param); + $xml = xml_parser_create(); + $req = $x->__getlastrequest(); + echo $req; + if ($style == "rpc") { + $HTTP_RAW_POST_DATA = $req; + ob_start(); + $y->handle(); + ob_end_clean(); + var_dump($val); + } + +/* + xml_parse_into_struct($xml,$x->__getlastrequest(),&$x,&$y); + var_dump($x); + var_dump($y); +*/ +} +?>
\ No newline at end of file |
