Annotation of embedaddon/php/ext/xmlrpc/tests/bug50285.phpt, revision 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>