wharmby         Sun Jun 14 12:08:30 2009 UTC

  Modified files:              
    /php-src/ext/json/tests     json_encode_basic_utf8.phpt 
                                json_decode_basic.phpt 
                                json_encode_basic.phpt 
                                json_encode_error.phpt 
                                json_decode_error.phpt 
  Log:
  New json extension tests. Tested on Windows, Linux and Linux 64 bit. 
  
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/json_encode_basic_utf8.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/json/tests/json_encode_basic_utf8.phpt
diff -u /dev/null php-src/ext/json/tests/json_encode_basic_utf8.phpt:1.2
--- /dev/null   Sun Jun 14 12:08:30 2009
+++ php-src/ext/json/tests/json_encode_basic_utf8.phpt  Sun Jun 14 12:08:30 2009
@@ -0,0 +1,26 @@
+--TEST--
+Test json_encode() function : basic functionality with UTF8 string input
+--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 with UTF-8 input***\n";
+
+$utf8_string = 
base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=');
+var_dump(json_encode($utf8_string)); 
+
+?>
+===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===
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/json_decode_basic.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/json/tests/json_decode_basic.phpt
diff -u /dev/null php-src/ext/json/tests/json_decode_basic.phpt:1.2
--- /dev/null   Sun Jun 14 12:08:30 2009
+++ php-src/ext/json/tests/json_decode_basic.phpt       Sun Jun 14 12:08:30 2009
@@ -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 --
+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===
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/json_encode_basic.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/json/tests/json_encode_basic.phpt
diff -u /dev/null php-src/ext/json/tests/json_encode_basic.phpt:1.2
--- /dev/null   Sun Jun 14 12:08:30 2009
+++ php-src/ext/json/tests/json_encode_basic.phpt       Sun Jun 14 12:08:30 2009
@@ -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] (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
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/json_encode_error.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/json/tests/json_encode_error.phpt
diff -u /dev/null php-src/ext/json/tests/json_encode_error.phpt:1.2
--- /dev/null   Sun Jun 14 12:08:30 2009
+++ php-src/ext/json/tests/json_encode_error.phpt       Sun Jun 14 12:08:30 2009
@@ -0,0 +1,40 @@
+--TEST--
+Test json_encode() function : error conditions
+--SKIPIF--
+<?php
+if (!extension_loaded("json")) {
+       die('skip JSON extension not available in this build');
+}       
+?>
+--FILE--
+<?php
+/* Prototype  : string json_encode  ( mixed $value  [, int $options=0  ] )
+ * Description: Returns the JSON representation of a value
+ * Source code: ext/json/php_json.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing json_encode() : error conditions ***\n";
+
+echo "\n-- Testing json_encode() function with no arguments --\n";
+var_dump( json_encode() );
+
+echo "\n-- Testing json_encode() function with more than expected no. of 
arguments --\n";
+$extra_arg = 10;
+var_dump( json_encode("abc", 0, $extra_arg) );
+
+?>
+===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===
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/json_decode_error.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/json/tests/json_decode_error.phpt
diff -u /dev/null php-src/ext/json/tests/json_decode_error.phpt:1.2
--- /dev/null   Sun Jun 14 12:08:30 2009
+++ php-src/ext/json/tests/json_decode_error.phpt       Sun Jun 14 12:08:30 2009
@@ -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===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to