xref: /PHP-7.1/ext/soap/tests/bug48557.phpt (revision 72d9e654)
1--TEST--
2Bug #48557 (Numeric string keys in Apache Hashmaps are not cast to integers)
3--SKIPIF--
4<?php require_once('skipif.inc'); ?>
5--FILE--
6<?php
7error_reporting(E_ALL);
8ini_set('display_errors', 1);
9ini_set("soap.wsdl_cache_enabled", 0);
10
11function test($map) {
12	var_dump($map, $map[1], $map[2]);die;
13}
14
15$y = new SoapServer(dirname(__FILE__) . '/bug48557.wsdl');
16$y->addfunction("test");
17$request = <<<XML
18<?xml version="1.0"?>
19<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
20	<SOAP-ENV:Body>
21		<ns1:test>
22			<testParam xsi:type="ns2:Map">
23				<item>
24					<key xsi:type="xsd:int">1</key>
25					<value xsi:type="xsd:int">123</value>
26				</item>
27				<item>
28					<key xsi:type="xsd:int">-1000</key>
29					<value xsi:type="xsd:string">123</value>
30				</item>
31				<item>
32					<key xsi:type="xsd:string">2</key>
33					<value xsi:type="xsd:float">123.5</value>
34				</item>
35				<item>
36					<key xsi:type="xsd:string">-2000</key>
37					<value xsi:type="xsd:float">123.5</value>
38				</item>
39				<item>
40					<key xsi:type="xsd:string">011</key>
41					<value xsi:type="xsd:float">123.5</value>
42				</item>
43				<item>
44					<key xsi:type="xsd:int">012</key>
45					<value xsi:type="xsd:float">123.5</value>
46				</item>
47			</testParam>
48		</ns1:test>
49	</SOAP-ENV:Body>
50</SOAP-ENV:Envelope>
51XML;
52
53$y->handle($request);
54
55?>
56===DONE===
57--EXPECTF--
58array(6) {
59  [1]=>
60  int(123)
61  [-1000]=>
62  %string|unicode%(3) "123"
63  [2]=>
64  float(123.5)
65  [-2000]=>
66  float(123.5)
67  [%u|b%"011"]=>
68  float(123.5)
69  [12]=>
70  float(123.5)
71}
72int(123)
73float(123.5)
74