mirror of
https://github.com/php/pecl-http-json_post.git
synced 2026-03-23 23:22:11 +01:00
Split tests.
001: most types, return as array 002: bigint return as float member of an objet (32 bits only) 003: bigint return as string member of an objet (32 bits only) 004: bigint return as integer member of an objet (64 bits only) The bigint value used is >32bits but <64bits which doesn't exists in real world (to avoid issue with jsonc used in free distro)
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -34,3 +34,5 @@ tests/*/*.exp
|
||||
tests/*/*.log
|
||||
tests/*/*.sh
|
||||
php_json_post.o
|
||||
json_post-*.tgz
|
||||
tmp-php.ini
|
||||
|
||||
@@ -49,6 +49,8 @@ This extension does not provide any constants, functions or classes.
|
||||
<dir name="tests">
|
||||
<file role="test" name="001.phpt"/>
|
||||
<file role="test" name="002.phpt"/>
|
||||
<file role="test" name="003.phpt"/>
|
||||
<file role="test" name="004.phpt"/>
|
||||
</dir>
|
||||
</dir>
|
||||
</contents>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
--TEST--
|
||||
json_post
|
||||
json_post with most common types, as array
|
||||
--SKIPIF--
|
||||
<?php
|
||||
extension_loaded("json_post")) or die("skip need json_post support\n");
|
||||
extension_loaded("json_post") or die("skip need json_post support\n");
|
||||
?>
|
||||
--POST_RAW--
|
||||
Content-type: text/json
|
||||
@@ -11,7 +11,6 @@ Content-type: text/json
|
||||
"null": null,
|
||||
"bool": true,
|
||||
"int": 123,
|
||||
"bigint": 36893488147419103232,
|
||||
"float": 123.123,
|
||||
"string": "Hello World",
|
||||
"array": [1,2,3],
|
||||
@@ -22,18 +21,17 @@ Content-type: text/json
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump($_POST, json_last_error_msg());
|
||||
var_dump($_POST, json_last_error());
|
||||
?>
|
||||
Done
|
||||
--EXPECTF--
|
||||
array(8) {
|
||||
array(7) {
|
||||
["null"]=>
|
||||
NULL
|
||||
["bool"]=>
|
||||
bool(true)
|
||||
["int"]=>
|
||||
int(123)
|
||||
["bigint"]=>
|
||||
float(3.689%dE+19)
|
||||
["float"]=>
|
||||
float(123.123)
|
||||
["string"]=>
|
||||
@@ -62,4 +60,5 @@ array(8) {
|
||||
string(11) "Österreich"
|
||||
}
|
||||
}
|
||||
string(8) "No error"
|
||||
int(0)
|
||||
Done
|
||||
@@ -1,67 +1,27 @@
|
||||
--TEST--
|
||||
json_post
|
||||
json_post with > 32bits integer as float on 32bits
|
||||
--SKIPIF--
|
||||
<?php
|
||||
extension_loaded("json_post")) or die("skip need json_post support\n");
|
||||
extension_loaded("json_post") or die("skip need json_post support\n");
|
||||
if (PHP_INT_SIZE != 4) die("skip this test is for 32bits platform only");
|
||||
?>
|
||||
--INI--
|
||||
json_post.flags=2;JSON_BIGINT_AS_STRING
|
||||
json_post.flags=0
|
||||
--POST_RAW--
|
||||
Content-type: text/json
|
||||
|
||||
{
|
||||
"null": null,
|
||||
"bool": true,
|
||||
"int": 123,
|
||||
"bigint": 36893488147419103232,
|
||||
"float": 123.123,
|
||||
"string": "Hello World",
|
||||
"array": [1,2,3],
|
||||
"object": {
|
||||
"array": [1,2,3],
|
||||
"unicode": "\u00D6sterreich"
|
||||
}
|
||||
"bigint": 12345678901234
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump($_POST, json_last_error_msg());
|
||||
var_dump($_POST, json_last_error());
|
||||
?>
|
||||
Done
|
||||
--EXPECTF--
|
||||
object(stdClass)#%d (8) {
|
||||
["null"]=>
|
||||
NULL
|
||||
["bool"]=>
|
||||
bool(true)
|
||||
["int"]=>
|
||||
int(123)
|
||||
object(stdClass)#%d (1) {
|
||||
["bigint"]=>
|
||||
string(20) "36893488147419103232"
|
||||
["float"]=>
|
||||
float(123.123)
|
||||
["string"]=>
|
||||
string(11) "Hello World"
|
||||
["array"]=>
|
||||
array(3) {
|
||||
[0]=>
|
||||
int(1)
|
||||
[1]=>
|
||||
int(2)
|
||||
[2]=>
|
||||
int(3)
|
||||
}
|
||||
["object"]=>
|
||||
object(stdClass)#%d (2) {
|
||||
["array"]=>
|
||||
array(3) {
|
||||
[0]=>
|
||||
int(1)
|
||||
[1]=>
|
||||
int(2)
|
||||
[2]=>
|
||||
int(3)
|
||||
}
|
||||
["unicode"]=>
|
||||
string(11) "Österreich"
|
||||
}
|
||||
float(12345678901234)
|
||||
}
|
||||
string(8) "No error"
|
||||
int(0)
|
||||
Done
|
||||
27
tests/003.phpt
Normal file
27
tests/003.phpt
Normal file
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
json_post with > 32bits integer as float on 32bits
|
||||
--SKIPIF--
|
||||
<?php
|
||||
extension_loaded("json_post") or die("skip need json_post support\n");
|
||||
if (PHP_INT_SIZE != 4) die("skip this test is for 32bits platform only");
|
||||
?>
|
||||
--INI--
|
||||
json_post.flags=2;JSON_BIGINT_AS_STRING
|
||||
--POST_RAW--
|
||||
Content-type: text/json
|
||||
|
||||
{
|
||||
"bigint": 12345678901234
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump($_POST, json_last_error());
|
||||
?>
|
||||
Done
|
||||
--EXPECTF--
|
||||
object(stdClass)#%d (1) {
|
||||
["bigint"]=>
|
||||
string(14) "12345678901234"
|
||||
}
|
||||
int(0)
|
||||
Done
|
||||
27
tests/004.phpt
Normal file
27
tests/004.phpt
Normal file
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
json_post with > 32bits integer as float on 64bits
|
||||
--SKIPIF--
|
||||
<?php
|
||||
extension_loaded("json_post") or die("skip need json_post support\n");
|
||||
if (PHP_INT_SIZE != 8) die("skip this test is for 64bits platform only");
|
||||
?>
|
||||
--INI--
|
||||
json_post.flags=0
|
||||
--POST_RAW--
|
||||
Content-type: text/json
|
||||
|
||||
{
|
||||
"bigint": 12345678901234
|
||||
}
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump($_POST, json_last_error());
|
||||
?>
|
||||
Done
|
||||
--EXPECTF--
|
||||
object(stdClass)#%d (1) {
|
||||
["bigint"]=>
|
||||
int(12345678901234)
|
||||
}
|
||||
int(0)
|
||||
Done
|
||||
Reference in New Issue
Block a user