xref: /PHP-8.0/ext/json/tests/bug64874_part1.phpt (revision 7aacc705)
1--TEST--
2Whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
3--FILE--
4<?php
5function decode($json) {
6    var_dump(json_decode($json));
7    var_dump(json_last_error() !== 0);
8    echo "\n";
9}
10
11// Leading whitespace should be ignored
12decode(" true");
13decode("\ttrue");
14decode("\ntrue");
15decode("\rtrue");
16
17// So should trailing whitespace
18decode("true ");
19decode("true\t");
20decode("true\n");
21decode("true\r");
22
23// And so should the combination of both
24decode(" true ");
25decode(" true\t");
26decode(" true\n");
27decode(" true\r");
28decode("\ttrue ");
29decode("\ttrue\t");
30decode("\ttrue\n");
31decode("\ttrue\r");
32decode("\ntrue ");
33decode("\ntrue\t");
34decode("\ntrue\n");
35decode("\ntrue\r");
36decode("\rtrue ");
37decode("\rtrue\t");
38decode("\rtrue\n");
39decode("\rtrue\r");
40
41echo "Done\n";
42?>
43--EXPECT--
44bool(true)
45bool(false)
46
47bool(true)
48bool(false)
49
50bool(true)
51bool(false)
52
53bool(true)
54bool(false)
55
56bool(true)
57bool(false)
58
59bool(true)
60bool(false)
61
62bool(true)
63bool(false)
64
65bool(true)
66bool(false)
67
68bool(true)
69bool(false)
70
71bool(true)
72bool(false)
73
74bool(true)
75bool(false)
76
77bool(true)
78bool(false)
79
80bool(true)
81bool(false)
82
83bool(true)
84bool(false)
85
86bool(true)
87bool(false)
88
89bool(true)
90bool(false)
91
92bool(true)
93bool(false)
94
95bool(true)
96bool(false)
97
98bool(true)
99bool(false)
100
101bool(true)
102bool(false)
103
104bool(true)
105bool(false)
106
107bool(true)
108bool(false)
109
110bool(true)
111bool(false)
112
113bool(true)
114bool(false)
115
116Done
117