wharmby Fri Jun 12 18:57:11 2009 UTC Modified files: /php-src/ext/iconv/tests iconv_strlen_error1.phpt iconv_strpos_error2.phpt iconv_strlen_basic.phpt iconv_strlen_variation2.phpt iconv_strlen_error2.phpt iconv_strlen_variation1.phpt Log: New iconv extension tests. Tested on Windows, Linux and Linux 64 bit.
http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strlen_error1.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strlen_error1.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strlen_error1.phpt:1.2 --- /dev/null Fri Jun 12 18:57:10 2009 +++ php-src/ext/iconv/tests/iconv_strlen_error1.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,45 @@ +--TEST-- +Test iconv_strlen() function : error conditions - pass incorrect number of args +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build"); +?> +--FILE-- +<?php +/* Prototype : int iconv_strlen(string str [, string charset]) + * Description: Get character numbers of a string + * Source code: ext/iconv/iconv.c + */ + +/* + * Pass iconv_strlen an incorrect number of arguments to test behaviour + */ + +echo "*** Testing iconv_strlen() : error conditions ***\n"; + +// Zero arguments +echo "\n-- Testing iconv_strlen() function with Zero arguments --\n"; +var_dump( iconv_strlen() ); + +//Test iconv_strlen with one more than the expected number of arguments +echo "\n-- Testing iconv_strlen() function with more than expected no. of arguments --\n"; +$str = 'string_val'; +$encoding = 'string_val'; +$extra_arg = 10; +var_dump( iconv_strlen($str, $encoding, $extra_arg) ); +?> +===DONE=== +--EXPECTF-- +*** Testing iconv_strlen() : error conditions *** + +-- Testing iconv_strlen() function with Zero arguments -- + +Warning: iconv_strlen() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing iconv_strlen() function with more than expected no. of arguments -- + +Warning: iconv_strlen() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strpos_error2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strpos_error2.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strpos_error2.phpt:1.2 --- /dev/null Fri Jun 12 18:57:10 2009 +++ php-src/ext/iconv/tests/iconv_strpos_error2.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,36 @@ +--TEST-- +Test iconv_strpos() function : error conditions - Pass unknown encoding +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strpos') or die("skip iconv_strpos() is not available in this build"); +?> +--XFAIL-- +Will fail until bug #48538 fixed +--FILE-- +<?php +/* Prototype : int iconv_strpos(string haystack, string needle [, int offset [, string charset]]) + * Description: Find position of first occurrence of a string within another + * Source code: ext/iconv/iconv.c + */ + +/* + * Pass an unknown encoding to iconv_strpos() to test behaviour + */ + +echo "*** Testing iconv_strpos() : error conditions ***\n"; +$haystack = 'Hello, world'; +$needle = 'world'; +$offset = 2; +$encoding = 'unknown-encoding'; + +var_dump( iconv_strpos($haystack, $needle, $offset, $encoding) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing iconv_strpos() : error conditions *** + +Notice: iconv_strpos(): Wrong charset, conversion from `unknown-encoding' to `UCS-4LE' is not allowed in %s on line %d +bool(false) +Done http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strlen_basic.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strlen_basic.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strlen_basic.phpt:1.2 --- /dev/null Fri Jun 12 18:57:10 2009 +++ php-src/ext/iconv/tests/iconv_strlen_basic.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,40 @@ +--TEST-- +Test iconv_strlen() function : basic functionality +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build"); +?> +--FILE-- +<?php +/* Prototype : int iconv_strlen(string str [, string charset]) + * Description: Get character numbers of a string + * Source code: ext/iconv/iconv.c + */ + +/* + * Test basic functionality of iconv_strlen() + */ + +echo "*** Testing iconv_strlen() : basic functionality***\n"; + +$string_ascii = b'abc def'; +//Japanese string in UTF-8 +$string_mb = base64_decode(b'5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII='); + +echo "\n-- ASCII String --\n"; +var_dump(iconv_strlen($string_ascii)); + +echo "\n-- Multibyte String --\n"; +var_dump(iconv_strlen($string_mb, 'UTF-8')); +?> +===DONE=== +--EXPECTF-- +*** Testing iconv_strlen() : basic functionality*** + +-- ASCII String -- +int(7) + +-- Multibyte String -- +int(21) +===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strlen_variation2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strlen_variation2.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strlen_variation2.phpt:1.2 --- /dev/null Fri Jun 12 18:57:10 2009 +++ php-src/ext/iconv/tests/iconv_strlen_variation2.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,206 @@ +--TEST-- +Test iconv_strlen() function : usage variations - Pass different data types as $encoding arg +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build"); +?> +--XFAIL-- +Will fail until bug #48538 fixed +--FILE-- +<?php +/* Prototype : int iconv_strlen(string str [, string charset]) + * Description: Get character numbers of a string + * Source code: ext/iconv/iconv.c + */ + +/* + * Test iconv_strlen() by passing different data types as $encoding argument. + * Where possible 'UTF-8' has been entered as a string value + */ + +echo "*** Testing iconv_strlen() : usage variations ***\n"; + +// Initialise function arguments not being substituted +$str = 'string value'; + +//get an unset variable +$unset_var = 10; +unset ($unset_var); + +// get a class +class classA +{ + public function __toString() { + return "UTF-8"; + } +} + +// heredoc string +$heredoc = <<<EOT +UTF-8 +EOT; + +// get a resource variable +$fp = fopen(__FILE__, "r"); + +// unexpected values to be passed to $input argument +$inputs = array( + + // int data +/*1*/ 0, + 1, + 12345, + -2345, + + // float data +/*5*/ 10.5, + -10.5, + 12.3456789000e10, + 12.3456789000E-10, + .5, + + // null data +/*10*/ NULL, + null, + + // boolean data +/*12*/ true, + false, + TRUE, + FALSE, + + // empty data +/*16*/ "", + '', + + // string data +/*18*/ "UTF-8", + 'UTF-8', + $heredoc, + + // object data +/*21*/ new classA(), + + // undefined data +/*22*/ @$undefined_var, + + // unset data +/*23*/ @$unset_var, + + // resource variable +/*24*/ $fp +); + +// loop through each element of $inputs to check the behavior of iconv_strlen() +$iterator = 1; +foreach($inputs as $input) { + echo "\n-- Iteration $iterator --\n"; + var_dump( iconv_strlen($str, $input)); + $iterator++; +}; + +fclose($fp); + +echo "Done"; +?> + +--EXPECTF-- +*** Testing iconv_strlen() : usage variations *** + +-- Iteration 1 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `0' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 2 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `1' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 3 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `12345' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 4 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `-2345' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 5 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `10.5' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 6 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `-10.5' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 7 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `123456789000' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 8 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `1.23456789E-9' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 9 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `0.5' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 10 -- +int(12) + +-- Iteration 11 -- +int(12) + +-- Iteration 12 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `1' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 13 -- +int(12) + +-- Iteration 14 -- + +Notice: iconv_strlen(): Wrong charset, conversion from `1' to `UCS-4LE' is not allowed in %s on line %d +bool(false) + +-- Iteration 15 -- +int(12) + +-- Iteration 16 -- +int(12) + +-- Iteration 17 -- +int(12) + +-- Iteration 18 -- +int(12) + +-- Iteration 19 -- +int(12) + +-- Iteration 20 -- +int(12) + +-- Iteration 21 -- +int(12) + +-- Iteration 22 -- +int(12) + +-- Iteration 23 -- +int(12) + +-- Iteration 24 -- + +Warning: iconv_strlen() expects parameter 2 to be string, resource given in %s on line %d +bool(false) +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strlen_error2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strlen_error2.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strlen_error2.phpt:1.2 --- /dev/null Fri Jun 12 18:57:11 2009 +++ php-src/ext/iconv/tests/iconv_strlen_error2.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,34 @@ +--TEST-- +Test iconv_strlen() function : error conditions - pass an unknown encoding +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build"); +?> +--FILE-- +<?php +/* Prototype : int iconv_strlen(string str [, string charset]) + * Description: Get character numbers of a string + * Source code: ext/iconv/iconv.c + */ + +/* + * Test iconv_strlen when passed an unknown encoding + */ + +echo "*** Testing iconv_strlen() : error ***\n"; + +$string = 'abcdef'; + +$encoding = 'unknown-encoding'; + +var_dump(iconv_strlen($string, $encoding)); + +?> +===DONE=== +--EXPECTF-- +*** Testing iconv_strlen() : error *** + +Notice: iconv_strlen(): Wrong charset, conversion from `unknown-encoding' to `UCS-4LE' is not allowed in %s on line %d +bool(false) +===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/tests/iconv_strlen_variation1.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/iconv/tests/iconv_strlen_variation1.phpt diff -u /dev/null php-src/ext/iconv/tests/iconv_strlen_variation1.phpt:1.2 --- /dev/null Fri Jun 12 18:57:11 2009 +++ php-src/ext/iconv/tests/iconv_strlen_variation1.phpt Fri Jun 12 18:57:10 2009 @@ -0,0 +1,193 @@ +--TEST-- +Test iconv_strlen() function : usage variations - Pass different data types as $str arg +--SKIPIF-- +<?php +extension_loaded('iconv') or die('skip'); +function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build"); +?> +--FILE-- +<?php +/* Prototype : int iconv_strlen(string str [, string charset]) + * Description: Get character numbers of a string + * Source code: ext/iconv/iconv.c + */ + +/* + * Test iconv_strlen by passing different data types as $str argument + */ + +echo "*** Testing iconv_strlen() : usage variations ***\n"; + +// Initialise function arguments not being substituted +$encoding = 'utf-8'; + +//get an unset variable +$unset_var = 10; +unset ($unset_var); + +// get a class +class classA +{ + public function __toString() { + return "Class A object"; + } +} + +// heredoc string +$heredoc = <<<EOT +hello world +EOT; + +// get a resource variable +$fp = fopen(__FILE__, "r"); + +// unexpected values to be passed to $str argument +$inputs = array( + + // int data +/*1*/ + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data +/*5*/ + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float 12.3456789000e-10' => 12.3456789000e-10, + 'float .5' => .5, + + // null data +/*10*/ + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data +/*12*/ + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data +/*16*/ + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data +/*18*/ + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data +/*21*/ + 'instance of class' => new classA(), + + // undefined data +/*22*/ + 'undefined var' => @$undefined_var, + + // unset data +/*23*/ + 'unset var' => @$unset_var, + + // resource variable +/*24*/ + 'resource' => $fp +); + +// loop through each element of $inputs to check the behavior of iconv_strlen() +$iterator = 1; +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( iconv_strlen($value, $encoding)); + $iterator++; +}; + +fclose($fp); +?> +===DONE=== +--EXPECTF-- +*** Testing iconv_strlen() : usage variations *** + +--int 0-- +int(1) + +--int 1-- +int(1) + +--int 12345-- +int(5) + +--int -12345-- +int(6) + +--float 10.5-- +int(4) + +--float -10.5-- +int(5) + +--float 12.3456789000e10-- +int(12) + +--float 12.3456789000e-10-- +int(13) + +--float .5-- +int(3) + +--uppercase NULL-- +int(0) + +--lowercase null-- +int(0) + +--lowercase true-- +int(1) + +--lowercase false-- +int(0) + +--uppercase TRUE-- +int(1) + +--uppercase FALSE-- +int(0) + +--empty string DQ-- +int(0) + +--empty string SQ-- +int(0) + +--string DQ-- +int(6) + +--string SQ-- +int(6) + +--mixed case string-- +int(6) + +--heredoc-- +int(11) + +--instance of class-- +int(14) + +--undefined var-- +int(0) + +--unset var-- +int(0) + +--resource-- + +Warning: iconv_strlen() expects parameter 1 to be string (Unicode or binary), resource given in %s on line %d +bool(false) +===DONE===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php