Annotation of embedaddon/php/ext/xmlrpc/tests/bug50285.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #50285 (xmlrpc does not preserve keys in encoded indexed arrays)
3: --SKIPIF--
4: <?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
5: --FILE--
6: <?php
7:
8: function test1($func, $params) {
9: return array(1=>'One', 3=>'Three', 5=>'Five');
10: }
11:
12: function test2($func, $params) {
13: return array('One', 'Three', 'Five', 5);
14: }
15:
16: function test3($func, $params) {
17: return array('One', 3 => 'Three', b'Five' => 5, 'Six');
18: }
19:
20: function test4($func, $params) {
21: return array('One', 'Three', 'Five', b'Six' => 6);
22: }
23:
24: $server = xmlrpc_server_create();
25: $result = xmlrpc_server_register_method($server, 'test1', 'test1');
26: $HTTP_RAW_POST_DATA = <<<EOD
27: <?xml version="1.0" encoding="UTF-8"?>
28: <methodCall>
29: <methodName>test1</methodName>
30: <params />
31: </methodCall>
32: EOD;
33: $response = xmlrpc_server_call_method($server, $HTTP_RAW_POST_DATA, null);
34: var_dump(xmlrpc_decode($response));
35:
36: // ------------
37:
38: $server = xmlrpc_server_create();
39: $result = xmlrpc_server_register_method($server, 'test2', 'test2');
40: $HTTP_RAW_POST_DATA = <<<EOD
41: <?xml version="1.0" encoding="UTF-8"?>
42: <methodCall>
43: <methodName>test2</methodName>
44: <params />
45: </methodCall>
46: EOD;
47: $response = xmlrpc_server_call_method($server, $HTTP_RAW_POST_DATA, null);
48: var_dump(xmlrpc_decode($response));
49:
50: // ------------
51:
52: $server = xmlrpc_server_create();
53: $result = xmlrpc_server_register_method($server, 'test3', 'test3');
54: $HTTP_RAW_POST_DATA = <<<EOD
55: <?xml version="1.0" encoding="UTF-8"?>
56: <methodCall>
57: <methodName>test3</methodName>
58: <params />
59: </methodCall>
60: EOD;
61: $response = xmlrpc_server_call_method($server, $HTTP_RAW_POST_DATA, null);
62: var_dump(xmlrpc_decode($response));
63:
64: // ------------
65:
66: $server = xmlrpc_server_create();
67: $result = xmlrpc_server_register_method($server, 'test4', 'test4');
68: $HTTP_RAW_POST_DATA = <<<EOD
69: <?xml version="1.0" encoding="UTF-8"?>
70: <methodCall>
71: <methodName>test4</methodName>
72: <params />
73: </methodCall>
74: EOD;
75: $response = xmlrpc_server_call_method($server, $HTTP_RAW_POST_DATA, null);
76: var_dump(xmlrpc_decode($response));
77:
78: ?>
79: --EXPECT--
80: array(3) {
81: [1]=>
82: string(3) "One"
83: [3]=>
84: string(5) "Three"
85: [5]=>
86: string(4) "Five"
87: }
88: array(4) {
89: [0]=>
90: string(3) "One"
91: [1]=>
92: string(5) "Three"
93: [2]=>
94: string(4) "Five"
95: [3]=>
96: int(5)
97: }
98: array(4) {
99: [0]=>
100: string(3) "One"
101: [3]=>
102: string(5) "Three"
103: ["Five"]=>
104: int(5)
105: [4]=>
106: string(3) "Six"
107: }
108: array(4) {
109: [0]=>
110: string(3) "One"
111: [1]=>
112: string(5) "Three"
113: [2]=>
114: string(4) "Five"
115: ["Six"]=>
116: int(6)
117: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>