Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New json extension tests. Tested on Windows, Linux and Linux 64 bit.
- Loading branch information
andy wharmby
committed
Jun 14, 2009
1 parent
8fc5746
commit a6735b8
Showing
5 changed files
with
450 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
--TEST-- | ||
Test json_decode() function : basic functionality | ||
--SKIPIF-- | ||
<?php | ||
if (!extension_loaded("json")) { | ||
die('skip JSON extension not available in this build'); | ||
} | ||
?> | ||
--FILE-- | ||
<?php | ||
/* Prototype : mixed json_decode ( string $json [, bool $assoc ] ) | ||
* Description: Decodes a JSON string | ||
* Source code: ext/json/php_json.c | ||
* Alias to functions: | ||
*/ | ||
echo "*** Testing json_decode() : basic functionality ***\n"; | ||
|
||
// array with different values for $string | ||
$inputs = array ( | ||
'0', | ||
'123', | ||
'-123', | ||
'2147483647', | ||
'-2147483648', | ||
'123.456', | ||
'1230', | ||
'-1230', | ||
'true', | ||
'false', | ||
'null', | ||
'"abc"', | ||
'"Hello World\r\n"', | ||
'[]', | ||
'[1,2,3,4,5]', | ||
'{"myInt":99,"myFloat":123.45,"myNull":null,"myBool":true,"myString":"Hello World"}', | ||
'{"Jan":31,"Feb":29,"Mar":31,"April":30,"May":31,"June":30}', | ||
'""', | ||
'{}' | ||
); | ||
|
||
// loop through with each element of the $inputs array to test json_decode() function | ||
$count = 1; | ||
foreach($inputs as $input) { | ||
echo "-- Iteration $count --\n"; | ||
var_dump(json_decode($input)); | ||
var_dump(json_decode($input, TRUE)); | ||
$count ++; | ||
} | ||
|
||
?> | ||
===Done=== | ||
--EXPECTF-- | ||
*** Testing json_decode() : basic functionality *** | ||
-- Iteration 1 -- | ||
int(0) | ||
int(0) | ||
-- Iteration 2 -- | ||
int(123) | ||
int(123) | ||
-- Iteration 3 -- | ||
int(-123) | ||
int(-123) | ||
-- Iteration 4 -- | ||
int(2147483647) | ||
int(2147483647) | ||
-- Iteration 5 -- | ||
int(-2147483648) | ||
int(-2147483648) | ||
-- Iteration 6 -- | ||
float(123.456) | ||
float(123.456) | ||
-- Iteration 7 -- | ||
int(1230) | ||
int(1230) | ||
-- Iteration 8 -- | ||
int(-1230) | ||
int(-1230) | ||
-- Iteration 9 -- | ||
bool(true) | ||
bool(true) | ||
-- Iteration 10 -- | ||
bool(false) | ||
bool(false) | ||
-- Iteration 11 -- | ||
NULL | ||
NULL | ||
-- Iteration 12 -- | ||
string(3) "abc" | ||
string(3) "abc" | ||
-- Iteration 13 -- | ||
string(13) "Hello World | ||
" | ||
string(13) "Hello World | ||
" | ||
-- Iteration 14 -- | ||
array(0) { | ||
} | ||
array(0) { | ||
} | ||
-- Iteration 15 -- | ||
array(5) { | ||
[0]=> | ||
int(1) | ||
[1]=> | ||
int(2) | ||
[2]=> | ||
int(3) | ||
[3]=> | ||
int(4) | ||
[4]=> | ||
int(5) | ||
} | ||
array(5) { | ||
[0]=> | ||
int(1) | ||
[1]=> | ||
int(2) | ||
[2]=> | ||
int(3) | ||
[3]=> | ||
int(4) | ||
[4]=> | ||
int(5) | ||
} | ||
-- Iteration 16 -- | ||
object(stdClass)#%d (5) { | ||
["myInt"]=> | ||
int(99) | ||
["myFloat"]=> | ||
float(123.45) | ||
["myNull"]=> | ||
NULL | ||
["myBool"]=> | ||
bool(true) | ||
["myString"]=> | ||
string(11) "Hello World" | ||
} | ||
array(5) { | ||
["myInt"]=> | ||
int(99) | ||
["myFloat"]=> | ||
float(123.45) | ||
["myNull"]=> | ||
NULL | ||
["myBool"]=> | ||
bool(true) | ||
["myString"]=> | ||
string(11) "Hello World" | ||
} | ||
-- Iteration 17 -- | ||
object(stdClass)#%d (6) { | ||
["Jan"]=> | ||
int(31) | ||
["Feb"]=> | ||
int(29) | ||
["Mar"]=> | ||
int(31) | ||
["April"]=> | ||
int(30) | ||
["May"]=> | ||
int(31) | ||
["June"]=> | ||
int(30) | ||
} | ||
array(6) { | ||
["Jan"]=> | ||
int(31) | ||
["Feb"]=> | ||
int(29) | ||
["Mar"]=> | ||
int(31) | ||
["April"]=> | ||
int(30) | ||
["May"]=> | ||
int(31) | ||
["June"]=> | ||
int(30) | ||
} | ||
-- Iteration 18 -- | ||
string(0) "" | ||
string(0) "" | ||
-- Iteration 19 -- | ||
object(stdClass)#%d (0) { | ||
} | ||
array(0) { | ||
} | ||
===Done=== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
--TEST-- | ||
Test json_decode() function : error conditions | ||
--SKIPIF-- | ||
<?php | ||
if (!extension_loaded("json")) { | ||
die('skip JSON extension not available in this build'); | ||
} | ||
?> | ||
--FILE-- | ||
<?php | ||
/* Prototype : mixed json_decode ( string $json [, bool $assoc=false [, int $depth=512 ]] ) | ||
* Description: Decodes a JSON string | ||
* Source code: ext/json/php_json.c | ||
* Alias to functions: | ||
*/ | ||
echo "*** Testing json_decode() : error conditions ***\n"; | ||
|
||
echo "\n-- Testing json_decode() function with no arguments --\n"; | ||
var_dump( json_decode() ); | ||
|
||
echo "\n-- Testing json_decode() function with more than expected no. of arguments --\n"; | ||
$extra_arg = 10; | ||
var_dump( json_decode('"abc"', TRUE, 512, $extra_arg) ); | ||
|
||
?> | ||
===Done=== | ||
--EXPECTF-- | ||
*** Testing json_decode() : error conditions *** | ||
|
||
-- Testing json_decode() function with no arguments -- | ||
|
||
Warning: json_decode() expects at least 1 parameter, 0 given in %s on line %d | ||
NULL | ||
|
||
-- Testing json_decode() function with more than expected no. of arguments -- | ||
|
||
Warning: json_decode() expects at most 3 parameters, 4 given in %s on line %d | ||
NULL | ||
===Done=== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
--TEST-- | ||
Test json_encode() function : basic functionality | ||
--SKIPIF-- | ||
<?php | ||
if (!extension_loaded("json")) { | ||
die('skip JSON extension not available in this build'); | ||
} | ||
?> | ||
--FILE-- | ||
<?php | ||
/* Prototype : string json_encode ( mixed $value ) | ||
* Description: Returns the JSON representation of a value | ||
* Source code: ext/json/php_json.c | ||
* Alias to functions: | ||
*/ | ||
echo "*** Testing json_encode() : basic functionality ***\n"; | ||
|
||
//get an unset variable | ||
$unset_var = 10; | ||
unset ($unset_var); | ||
|
||
// get a resource variable | ||
$fp = fopen(__FILE__, "r"); | ||
|
||
// get an object | ||
class sample { | ||
} | ||
|
||
$obj = new sample(); | ||
$obj->MyInt = 99; | ||
$obj->MyFloat = 123.45; | ||
$obj->MyBool = true; | ||
$obj->MyNull = null; | ||
$obj->MyString = "Hello World"; | ||
|
||
// array with different values for $string | ||
$inputs = array ( | ||
|
||
// integers | ||
/*1*/ 0, | ||
123, | ||
-123, | ||
2147483647, | ||
-2147483648, | ||
|
||
// floats | ||
/*6*/ 123.456, | ||
1.23E3, | ||
-1.23E3, | ||
|
||
// boolean | ||
/*9*/ TRUE, | ||
true, | ||
FALSE, | ||
false, | ||
|
||
// NULL | ||
/*13*/ NULL, | ||
null, | ||
|
||
// strings | ||
/*15*/ "abc", | ||
'abc', | ||
"Hello\t\tWorld\n", | ||
|
||
// arrays | ||
/*18*/ array(), | ||
array(1,2,3,4,5), | ||
array(1 => "Sun", 2=>"Mon", 3 => "Tue", 4 => "Wed", 5 => "Thur", 6 => "Fri", 7 => "Sat"), | ||
array("Jan" => 31, "Feb" => 29, "Mar" => 31, "April" => 30, "May" => 31, "June" => 30), | ||
|
||
// empty data | ||
/*22*/ "", | ||
'', | ||
|
||
// undefined data | ||
/*24*/ @$undefined_var, | ||
|
||
// unset data | ||
/*25*/ @$unset_var, | ||
|
||
// resource variable | ||
/*26*/ $fp, | ||
|
||
// object variable | ||
/*27*/ $obj | ||
|
||
); | ||
|
||
// loop through with each element of the $inputs array to test json_encode() function | ||
$count = 1; | ||
foreach($inputs as $input) { | ||
echo "-- Iteration $count --\n"; | ||
var_dump(json_encode($input)); | ||
$count ++; | ||
} | ||
|
||
?> | ||
===Done=== | ||
--EXPECTF-- | ||
*** Testing json_encode() : basic functionality *** | ||
-- Iteration 1 -- | ||
string(1) "0" | ||
-- Iteration 2 -- | ||
string(3) "123" | ||
-- Iteration 3 -- | ||
string(4) "-123" | ||
-- Iteration 4 -- | ||
string(10) "2147483647" | ||
-- Iteration 5 -- | ||
string(11) "-2147483648" | ||
-- Iteration 6 -- | ||
string(7) "123.456" | ||
-- Iteration 7 -- | ||
string(4) "1230" | ||
-- Iteration 8 -- | ||
string(5) "-1230" | ||
-- Iteration 9 -- | ||
string(4) "true" | ||
-- Iteration 10 -- | ||
string(4) "true" | ||
-- Iteration 11 -- | ||
string(5) "false" | ||
-- Iteration 12 -- | ||
string(5) "false" | ||
-- Iteration 13 -- | ||
string(4) "null" | ||
-- Iteration 14 -- | ||
string(4) "null" | ||
-- Iteration 15 -- | ||
string(5) ""abc"" | ||
-- Iteration 16 -- | ||
string(5) ""abc"" | ||
-- Iteration 17 -- | ||
string(18) ""Hello\t\tWorld\n"" | ||
-- Iteration 18 -- | ||
string(2) "[]" | ||
-- Iteration 19 -- | ||
string(11) "[1,2,3,4,5]" | ||
-- Iteration 20 -- | ||
string(72) "{"1":"Sun","2":"Mon","3":"Tue","4":"Wed","5":"Thur","6":"Fri","7":"Sat"}" | ||
-- Iteration 21 -- | ||
string(58) "{"Jan":31,"Feb":29,"Mar":31,"April":30,"May":31,"June":30}" | ||
-- Iteration 22 -- | ||
string(2) """" | ||
-- Iteration 23 -- | ||
string(2) """" | ||
-- Iteration 24 -- | ||
string(4) "null" | ||
-- Iteration 25 -- | ||
string(4) "null" | ||
-- Iteration 26 -- | ||
|
||
Warning: [json] (php_json_encode) type is unsupported, encoded as null in %s on line %d | ||
string(4) "null" | ||
-- Iteration 27 -- | ||
string(82) "{"MyInt":99,"MyFloat":123.45,"MyBool":true,"MyNull":null,"MyString":"Hello World"}" | ||
===Done=== |
Oops, something went wrong.