diff options
| author | Sean Finney <seanius@debian.org> | 2009-04-10 14:09:48 +0200 |
|---|---|---|
| committer | Sean Finney <seanius@debian.org> | 2009-04-10 14:09:48 +0200 |
| commit | cd0b49c72aee33b3e44a9c589fcd93b9e1c7a64f (patch) | |
| tree | 1315c623bb7d9dfa8d366fa9cd2c6834ceeb5da5 /ext/xmlrpc/tests | |
| parent | 9ea47aab740772adf0c69d8c94b208a464e599ea (diff) | |
| download | php-cd0b49c72aee33b3e44a9c589fcd93b9e1c7a64f.tar.gz | |
Imported Upstream version 5.2.9.dfsg.1upstream/5.2.9.dfsg.1
Diffstat (limited to 'ext/xmlrpc/tests')
| -rw-r--r-- | ext/xmlrpc/tests/bug18916.phpt | 21 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/bug40576.phpt | 4 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/bug45226.phpt | 53 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/bug45555.phpt | 20 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/bug45556.phpt | 32 |
5 files changed, 128 insertions, 2 deletions
diff --git a/ext/xmlrpc/tests/bug18916.phpt b/ext/xmlrpc/tests/bug18916.phpt new file mode 100644 index 000000000..b2eb525d8 --- /dev/null +++ b/ext/xmlrpc/tests/bug18916.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #18916 (xmlrpc_set_type() not working) +--INI-- +date.timezone="America/Sao_Paulo" +--FILE-- +<?php + +$params = date("Ymd\TH:i:s", time()); +xmlrpc_set_type($params, 'datetime'); +echo xmlrpc_encode($params); + +?> +--EXPECTF-- +<?xml version="1.0" encoding="utf-8"?> +<params> +<param> + <value> + <dateTime.iso8601>%dT%d:%d:%d</dateTime.iso8601> + </value> +</param> +</params> diff --git a/ext/xmlrpc/tests/bug40576.phpt b/ext/xmlrpc/tests/bug40576.phpt index 6b73f4d2c..404aba32b 100644 --- a/ext/xmlrpc/tests/bug40576.phpt +++ b/ext/xmlrpc/tests/bug40576.phpt @@ -29,11 +29,11 @@ string(125) "<?xml version="1.0" encoding="utf-8"?> </param> </params> " -string(128) "<?xml version="1.0" encoding="utf-8"?> +string(130) "<?xml version="1.0" encoding="utf-8"?> <params> <param> <value> - <double>11234567891000</double> + <double>1.1234567891E+13</double> </value> </param> </params> diff --git a/ext/xmlrpc/tests/bug45226.phpt b/ext/xmlrpc/tests/bug45226.phpt new file mode 100644 index 000000000..af9b6c472 --- /dev/null +++ b/ext/xmlrpc/tests/bug45226.phpt @@ -0,0 +1,53 @@ +--TEST-- +Bug #45226 (xmlrpc_set_type() segfaults with valid ISO8601 date string) +--INI-- +date.timezone="America/Sao_Paulo" +--FILE-- +<?php + +$d = date(DATE_ISO8601); +xmlrpc_set_type($d, 'datetime'); +echo xmlrpc_encode_request('method.call', array('date' => $d)); + +$d = '2008-01-01 20:00:00'; +xmlrpc_set_type($d, 'datetime'); +echo xmlrpc_encode_request('method.call', array('date' => $d)); + +?> +--EXPECTF-- +<?xml version="1.0" encoding="iso-8859-1"?> +<methodCall> +<methodName>method.call</methodName> +<params> + <param> + <value> + <struct> + <member> + <name>date</name> + <value> + <dateTime.iso8601>%d-%d-%dT%d:%d:%d%s%d</dateTime.iso8601> + </value> + </member> + </struct> + </value> + </param> +</params> +</methodCall> +<?xml version="1.0" encoding="iso-8859-1"?> +<methodCall> +<methodName>method.call</methodName> +<params> + <param> + <value> + <struct> + <member> + <name>date</name> + <value> + <dateTime.iso8601>%d-%d-%d %d:%d:%d</dateTime.iso8601> + </value> + </member> + </struct> + </value> + </param> +</params> +</methodCall> diff --git a/ext/xmlrpc/tests/bug45555.phpt b/ext/xmlrpc/tests/bug45555.phpt new file mode 100644 index 000000000..376b14fec --- /dev/null +++ b/ext/xmlrpc/tests/bug45555.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #45555 (Segfault with invalid non-string as register_introspection_callback) +--FILE-- +<?php + +$options = array (); +$request = xmlrpc_encode_request ("system.describeMethods", $options); +$server = xmlrpc_server_create (); + +xmlrpc_server_register_introspection_callback($server, 1); +xmlrpc_server_register_introspection_callback($server, array('foo', 'bar')); + +$options = array ('output_type' => 'xml', 'version' => 'xmlrpc'); +xmlrpc_server_call_method ($server, $request, NULL, $options); + +?> +--EXPECTF-- +Warning: xmlrpc_server_call_method(): Invalid callback '1' passed in %s on line %d + +Warning: xmlrpc_server_call_method(): Invalid callback 'foo::bar' passed in %s on line %d diff --git a/ext/xmlrpc/tests/bug45556.phpt b/ext/xmlrpc/tests/bug45556.phpt new file mode 100644 index 000000000..0e463e669 --- /dev/null +++ b/ext/xmlrpc/tests/bug45556.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #45556 (Return value from callback isn't freed) +--FILE-- +<?php + +$options = array (); +$request = xmlrpc_encode_request ("system.describeMethods", $options); +$server = xmlrpc_server_create (); + + +function foo() { return 11111; } + +class bar { + static public function test() { + return 'foo'; + } +} + +xmlrpc_server_register_introspection_callback($server, 'foobar'); +xmlrpc_server_register_introspection_callback($server, array('bar', 'test')); +xmlrpc_server_register_introspection_callback($server, array('foo', 'bar')); + +$options = array ('output_type' => 'xml', 'version' => 'xmlrpc'); +xmlrpc_server_call_method ($server, $request, NULL, $options); + +?> +--EXPECTF-- +Warning: xmlrpc_server_call_method(): Invalid callback 'foobar' passed in %s on line %d + +Warning: xmlrpc_server_call_method(): xml parse error: [line 1, column 1, message: Invalid document end] Unable to add introspection data returned from bar::test() in %s on line %d + +Warning: xmlrpc_server_call_method(): Invalid callback 'foo::bar' passed in %s on line %d |
