From 845595eb7c4e9d7e42e27dbf6ac775049427b492 Mon Sep 17 00:00:00 2001 From: andy wharmby Date: Sun, 14 Jun 2009 12:08:33 +0000 Subject: [PATCH] New json extension tests. Tested on Windows, Linux and Linux 64 bit. --- ext/json/tests/json_decode_basic.phpt | 187 +++++++++++++++++++++ ext/json/tests/json_decode_error.phpt | 39 +++++ ext/json/tests/json_encode_basic.phpt | 158 +++++++++++++++++ ext/json/tests/json_encode_basic_utf8.phpt | 26 +++ ext/json/tests/json_encode_error.phpt | 40 +++++ 5 files changed, 450 insertions(+) create mode 100644 ext/json/tests/json_decode_basic.phpt create mode 100644 ext/json/tests/json_decode_error.phpt create mode 100644 ext/json/tests/json_encode_basic.phpt create mode 100644 ext/json/tests/json_encode_basic_utf8.phpt create mode 100644 ext/json/tests/json_encode_error.phpt diff --git a/ext/json/tests/json_decode_basic.phpt b/ext/json/tests/json_decode_basic.phpt new file mode 100644 index 00000000000..7b76ea3be5a --- /dev/null +++ b/ext/json/tests/json_decode_basic.phpt @@ -0,0 +1,187 @@ +--TEST-- +Test json_decode() function : basic functionality +--SKIPIF-- + +--FILE-- + +===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 -- +unicode(3) "abc" +unicode(3) "abc" +-- Iteration 13 -- +unicode(13) "Hello World +" +unicode(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) { + [u"myInt"]=> + int(99) + [u"myFloat"]=> + float(123.45) + [u"myNull"]=> + NULL + [u"myBool"]=> + bool(true) + [u"myString"]=> + unicode(11) "Hello World" +} +array(5) { + [u"myInt"]=> + int(99) + [u"myFloat"]=> + float(123.45) + [u"myNull"]=> + NULL + [u"myBool"]=> + bool(true) + [u"myString"]=> + unicode(11) "Hello World" +} +-- Iteration 17 -- +object(stdClass)#%d (6) { + [u"Jan"]=> + int(31) + [u"Feb"]=> + int(29) + [u"Mar"]=> + int(31) + [u"April"]=> + int(30) + [u"May"]=> + int(31) + [u"June"]=> + int(30) +} +array(6) { + [u"Jan"]=> + int(31) + [u"Feb"]=> + int(29) + [u"Mar"]=> + int(31) + [u"April"]=> + int(30) + [u"May"]=> + int(31) + [u"June"]=> + int(30) +} +-- Iteration 18 -- +unicode(0) "" +unicode(0) "" +-- Iteration 19 -- +object(stdClass)#%d (0) { +} +array(0) { +} +===DONE=== diff --git a/ext/json/tests/json_decode_error.phpt b/ext/json/tests/json_decode_error.phpt new file mode 100644 index 00000000000..f3387c21bea --- /dev/null +++ b/ext/json/tests/json_decode_error.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test json_decode() function : error conditions +--SKIPIF-- + +--FILE-- + +===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=== diff --git a/ext/json/tests/json_encode_basic.phpt b/ext/json/tests/json_encode_basic.phpt new file mode 100644 index 00000000000..c3a2e26acb2 --- /dev/null +++ b/ext/json/tests/json_encode_basic.phpt @@ -0,0 +1,158 @@ +--TEST-- +Test json_encode() function : basic functionality +--SKIPIF-- + +--FILE-- +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] (json_encode_r) 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=== \ No newline at end of file diff --git a/ext/json/tests/json_encode_basic_utf8.phpt b/ext/json/tests/json_encode_basic_utf8.phpt new file mode 100644 index 00000000000..a8e8b425efb --- /dev/null +++ b/ext/json/tests/json_encode_basic_utf8.phpt @@ -0,0 +1,26 @@ +--TEST-- +Test json_encode() function : basic functionality with UTF8 string input +--SKIPIF-- + +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing json_encode() : basic functionality with UTF-8 input*** +string(103) ""\u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u3067\u3059\u300201234\uff15\uff16\uff17\uff18\uff19\u3002"" +===Done=== diff --git a/ext/json/tests/json_encode_error.phpt b/ext/json/tests/json_encode_error.phpt new file mode 100644 index 00000000000..d130dd960c5 --- /dev/null +++ b/ext/json/tests/json_encode_error.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test json_encode() function : error conditions +--SKIPIF-- + +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing json_encode() : error conditions *** + +-- Testing json_encode() function with no arguments -- + +Warning: json_encode() expects at least 1 parameter, 0 given in %s on line %d +NULL + +-- Testing json_encode() function with more than expected no. of arguments -- + +Warning: json_encode() expects at most 2 parameters, 3 given in %s on line %d +NULL +===Done===