]> granicus.if.org Git - php/commitdiff
New ltrim() tests. Tested on Windows, Linux and Linux 64 bit
authorandy wharmby <wharmby@php.net>
Sat, 17 Jan 2009 15:47:47 +0000 (15:47 +0000)
committerandy wharmby <wharmby@php.net>
Sat, 17 Jan 2009 15:47:47 +0000 (15:47 +0000)
ext/standard/tests/strings/ltrim_basic.phpt [new file with mode: 0644]
ext/standard/tests/strings/ltrim_error.phpt [new file with mode: 0644]
ext/standard/tests/strings/ltrim_variation1.phpt [new file with mode: 0644]
ext/standard/tests/strings/ltrim_variation2.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/strings/ltrim_basic.phpt b/ext/standard/tests/strings/ltrim_basic.phpt
new file mode 100644 (file)
index 0000000..bcc8932
--- /dev/null
@@ -0,0 +1,53 @@
+--TEST--
+Test ltrim() function : basic functionality 
+--FILE--
+<?php
+
+/* Prototype  : string ltrim  ( string $str  [, string $charlist  ] )
+ * Description: Strip whitespace (or other characters) from the beginning of a string.
+ * Source code: ext/standard/string.c
+*/
+
+echo "*** Testing ltrim() : basic functionality ***\n";
+
+$text  = " \t\r\n\0\x0B ---These are a few words---  ";
+$hello  = "!===Hello World===!";
+$binary = "\x09\x0AExample string";
+$alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+echo "\n-- Trim string with all white space characters --\n";
+var_dump(ltrim($text));
+
+echo "\n-- Trim non-whitespace from a string --\n"; 
+var_dump(ltrim($hello, "=!"));
+
+echo "\n-- Trim some non-white space characters from a string --\n"; 
+var_dump(ltrim($hello, "!oleH="));
+
+echo "\n-- Trim some non-white space characters from a string suing a character range --\n"; 
+var_dump(ltrim($alpha, "A..Z"));
+
+
+echo "\n-- Trim the ASCII control characters at the beginning of a string --\n";
+var_dump(ltrim($binary, "\x00..\x1F"));
+
+?>
+===DONE===
+--EXPECT--
+*** Testing ltrim() : basic functionality ***
+
+-- Trim string with all white space characters --
+unicode(29) "---These are a few words---  "
+
+-- Trim non-whitespace from a string --
+unicode(15) "Hello World===!"
+
+-- Trim some non-white space characters from a string --
+unicode(10) " World===!"
+
+-- Trim some non-white space characters from a string suing a character range --
+unicode(10) "0123456789"
+
+-- Trim the ASCII control characters at the beginning of a string --
+unicode(14) "Example string"
+===DONE===
diff --git a/ext/standard/tests/strings/ltrim_error.phpt b/ext/standard/tests/strings/ltrim_error.phpt
new file mode 100644 (file)
index 0000000..dd8deef
--- /dev/null
@@ -0,0 +1,61 @@
+--TEST--
+Test ltrim() function : error conditions 
+--FILE--
+<?php
+
+/* Prototype  : string ltrim  ( string $str  [, string $charlist  ] )
+ * Description: Strip whitespace (or other characters) from the beginning of a string.
+ * Source code: ext/standard/string.c
+*/
+
+
+echo "*** Testing ltrim() : error conditions ***\n";
+
+echo "\n-- Testing ltrim() function with no arguments --\n";
+var_dump( ltrim() );
+
+echo "\n-- Testing ltrim() function with more than expected no. of arguments --\n";
+$extra_arg = 10;
+var_dump( ltrim("Hello World",  "Heo", $extra_arg) );
+
+
+$hello = "  Hello World\n";
+echo "\n-- Test ltrim function with various invalid charlists\n";
+var_dump(ltrim($hello, "..a"));
+var_dump(ltrim($hello, "a.."));
+var_dump(ltrim($hello, "z..a"));
+var_dump(ltrim($hello, "a..b..c"));
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing ltrim() : error conditions ***
+
+-- Testing ltrim() function with no arguments --
+
+Warning: ltrim() expects at least 1 parameter, 0 given in %s on line %d
+NULL
+
+-- Testing ltrim() function with more than expected no. of arguments --
+
+Warning: ltrim() expects at most 2 parameters, 3 given in %s on line %d
+NULL
+
+-- Test ltrim function with various invalid charlists
+
+Warning: ltrim(): Invalid '..'-range, no character to the left of '..' in %s on line %d
+unicode(14) "  Hello World
+"
+
+Warning: ltrim(): Invalid '..'-range, no character to the right of '..' in %s on line %d
+unicode(14) "  Hello World
+"
+
+Warning: ltrim(): Invalid '..'-range, '..'-range needs to be incrementing in %s on line %d
+unicode(14) "  Hello World
+"
+
+Warning: ltrim(): Invalid '..'-range in %s on line %d
+unicode(14) "  Hello World
+"
+===DONE===
\ No newline at end of file
diff --git a/ext/standard/tests/strings/ltrim_variation1.phpt b/ext/standard/tests/strings/ltrim_variation1.phpt
new file mode 100644 (file)
index 0000000..eaab833
--- /dev/null
@@ -0,0 +1,138 @@
+--TEST--
+Test ltrim() function : usage variations - test values for $str argument
+--FILE--
+<?php
+
+/* Prototype  : string ltrim  ( string $str  [, string $charlist  ] )
+ * Description: Strip whitespace (or other characters) from the beginning of a string.
+ * Source code: ext/standard/string.c
+*/
+
+echo "*** Testing ltrim() function: with unexpected inputs for 'str' argument ***\n";
+
+//get an unset variable
+$unset_var = '  string_val  ';
+unset($unset_var);
+
+//defining a class
+class sample  {
+  public function __toString() {
+    return "  sample object  ";
+  } 
+}
+
+//getting the resource
+$file_handle = fopen(__FILE__, "r");
+
+// array with different values for $input
+$inputs =  array (
+
+                 // integer values
+/*1*/    0,
+                 1,
+                 255,
+                 256,
+             2147483647,
+                 -2147483648,
+               
+                 // float values
+/*7*/    10.5,
+                 -20.5,
+                 10.1234567e10,
+               
+                 // array values
+/*10*/   array(),
+                 array(0),
+                 array(1, 2),
+               
+                 // boolean values
+/*13*/   true,
+                 false,
+                 TRUE,
+                 FALSE,
+               
+                 // null values
+/*17*/   NULL,
+                 null,
+               
+                 // objects
+/*19*/   new sample(),
+               
+                 // resource
+/*20*/   $file_handle,
+               
+                 // undefined variable
+/*22*/   @$undefined_var,
+               
+                 // unset variable
+/*23*/   @$unset_var
+);
+
+// loop through with each element of the $inputs array to test ltrim() function
+$count = 1;
+foreach($inputs as $input) {
+  echo "-- Iteration $count --\n";
+  // strip white space and any "minus" signs
+  var_dump( ltrim($input, " \t-") );
+  $count ++;
+}
+
+fclose($file_handle);  //closing the file handle
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing ltrim() function: with unexpected inputs for 'str' argument ***
+-- Iteration 1 --
+unicode(1) "0"
+-- Iteration 2 --
+unicode(1) "1"
+-- Iteration 3 --
+unicode(3) "255"
+-- Iteration 4 --
+unicode(3) "256"
+-- Iteration 5 --
+unicode(10) "2147483647"
+-- Iteration 6 --
+unicode(10) "2147483648"
+-- Iteration 7 --
+unicode(4) "10.5"
+-- Iteration 8 --
+unicode(4) "20.5"
+-- Iteration 9 --
+unicode(12) "101234567000"
+-- Iteration 10 --
+
+Warning: ltrim() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 11 --
+
+Warning: ltrim() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 12 --
+
+Warning: ltrim() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 13 --
+unicode(1) "1"
+-- Iteration 14 --
+unicode(0) ""
+-- Iteration 15 --
+unicode(1) "1"
+-- Iteration 16 --
+unicode(0) ""
+-- Iteration 17 --
+unicode(0) ""
+-- Iteration 18 --
+unicode(0) ""
+-- Iteration 19 --
+unicode(15) "sample object  "
+-- Iteration 20 --
+
+Warning: ltrim() expects parameter 1 to be string (Unicode or binary), resource given in %s on line %d
+NULL
+-- Iteration 21 --
+unicode(0) ""
+-- Iteration 22 --
+unicode(0) ""
+===DONE===
\ No newline at end of file
diff --git a/ext/standard/tests/strings/ltrim_variation2.phpt b/ext/standard/tests/strings/ltrim_variation2.phpt
new file mode 100644 (file)
index 0000000..073f2c5
--- /dev/null
@@ -0,0 +1,138 @@
+--TEST--
+Test ltrim() function : usage variations - test values for $charlist argument
+--FILE--
+<?php
+
+/* Prototype  : string ltrim  ( string $str  [, string $charlist  ] )
+ * Description: Strip whitespace (or other characters) from the beginning of a string.
+ * Source code: ext/standard/string.c
+*/
+
+echo "*** Testing ltrim() function: with unexpected inputs for 'charlist' argument ***\n";
+
+//get an unset variable
+$unset_var = '  string_val  ';
+unset($unset_var);
+
+//defining a class
+class sample  {
+  public function __toString() {
+    return "  sample object  ";
+  } 
+}
+
+//getting the resource
+$file_handle = fopen(__FILE__, "r");
+
+// array with different values for $input
+$inputs =  array (
+
+                 // integer values
+/*1*/    0,
+                 1,
+                 255,
+                 256,
+             2147483647,
+                 -2147483648,
+               
+                 // float values
+/*7*/    10.5,
+                 -20.5,
+                 10.1234567e10,
+               
+                 // array values
+/*10*/   array(),
+                 array(0),
+                 array(1, 2),
+               
+                 // boolean values
+/*13*/   true,
+                 false,
+                 TRUE,
+                 FALSE,
+               
+                 // null values
+/*17*/   NULL,
+                 null,
+               
+                 // objects
+/*19*/   new sample(),
+               
+                 // resource
+/*20*/   $file_handle,
+               
+                 // undefined variable
+/*21*/   @$undefined_var,
+               
+                 // unset variable
+/*22*/   @$unset_var
+);
+
+// loop through with each element of the $inputs array to test ltrim() function
+$count = 1;
+foreach($inputs as $charlist) {
+  echo "-- Iteration $count --\n";
+  // strip white space and any "minus" signs
+  var_dump( ltrim("!---Hello World---!", $charlist) );
+  $count ++;
+}
+
+fclose($file_handle);  //closing the file handle
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing ltrim() function: with unexpected inputs for 'charlist' argument ***
+-- Iteration 1 --
+unicode(19) "!---Hello World---!"
+-- Iteration 2 --
+unicode(19) "!---Hello World---!"
+-- Iteration 3 --
+unicode(19) "!---Hello World---!"
+-- Iteration 4 --
+unicode(19) "!---Hello World---!"
+-- Iteration 5 --
+unicode(19) "!---Hello World---!"
+-- Iteration 6 --
+unicode(19) "!---Hello World---!"
+-- Iteration 7 --
+unicode(19) "!---Hello World---!"
+-- Iteration 8 --
+unicode(19) "!---Hello World---!"
+-- Iteration 9 --
+unicode(19) "!---Hello World---!"
+-- Iteration 10 --
+
+Warning: ltrim() expects parameter 2 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 11 --
+
+Warning: ltrim() expects parameter 2 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 12 --
+
+Warning: ltrim() expects parameter 2 to be string (Unicode or binary), array given in %s on line %d
+NULL
+-- Iteration 13 --
+unicode(19) "!---Hello World---!"
+-- Iteration 14 --
+unicode(19) "!---Hello World---!"
+-- Iteration 15 --
+unicode(19) "!---Hello World---!"
+-- Iteration 16 --
+unicode(19) "!---Hello World---!"
+-- Iteration 17 --
+unicode(19) "!---Hello World---!"
+-- Iteration 18 --
+unicode(19) "!---Hello World---!"
+-- Iteration 19 --
+unicode(19) "!---Hello World---!"
+-- Iteration 20 --
+
+Warning: ltrim() expects parameter 2 to be string (Unicode or binary), resource given in %s on line %d
+NULL
+-- Iteration 21 --
+unicode(19) "!---Hello World---!"
+-- Iteration 22 --
+unicode(19) "!---Hello World---!"
+===DONE===
\ No newline at end of file