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>