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

Reply via email to