--TEST--
Test ltrim() function
--FILE--
<?php

/*  Testing for Error conditions  */

/*  Invalid Number of Arguments */

 echo "\n *** Output for Error Conditions ***\n";

 echo "\n *** Output for zero argument ***\n";
 var_dump( ltrim() );

 echo "\n *** Output for more than valid number of arguments (Valid are 1 or 2 arguments) ***\n";
 var_dump( ltrim("", " ", 1) );

/* heredoc string */
$str = <<<EOD
us
ing heredoc string
EOD;

echo "\n *** Using heredoc string ***\n";
var_dump( ltrim($str, "\nusi") );

/* Testing the Normal behaviour of ltrim() function */

 echo "\n *** Output for Normal Behaviour ***\n";
 var_dump ( ltrim(" \t\0    ltrim test") );                      /* without second Argument */
 var_dump ( ltrim("   ltrim test" , "") );                       /* no characters in second Argument */
 var_dump ( ltrim("        ltrim test", NULL) );                 /* with NULL as second Argument */
 var_dump ( ltrim("        ltrim test", true) );                 /* with boolean value as second Argument */
 var_dump ( ltrim("        ltrim test", " ") );                  /* with single space as second Argument */
 var_dump ( ltrim("\t\n\r\0\x0B ltrim test", "\t\n\r\0\x0B") );  /* with multiple escape sequences as second Argument */
 var_dump ( ltrim("ABCXYZltrim test", "A..Z") );                 /* with characters range as second Argument */
 var_dump ( ltrim("0123456789ltrim test", "0..9") );             /* with numbers range as second Argument */
 var_dump ( ltrim("@$#ltrim test", "#@$") );                     /* with some special characters as second Argument */
 

 echo "\n *** Output for  scalar argument) ***\n";
 var_dump( ltrim(  12345  ) );                                   /* Scalar argument */

 echo "\n *** Output for  NULL argument) ***\n";
 var_dump( ltrim(NULL) );                                        /* NULL Argument */

echo "\nDone\n";

?>
--EXPECTF--
*** Output for Error Conditions ***

 *** Output for zero argument ***

Warning: ltrim() expects at least 1 parameter, 0 given in %s on line %d
NULL

 *** Output for more than valid number of arguments (Valid are 1 or 2 arguments) ***

Warning: ltrim() expects at most 2 parameters, 3 given in %s on line %d
NULL

 *** Using heredoc string ***
string(17) "ng heredoc string"

 *** Output for Normal Behaviour ***
string(10) "ltrim test"
string(13) "   ltrim test"
string(18) "        ltrim test"
string(18) "        ltrim test"
string(10) "ltrim test"
string(11) " ltrim test"
string(10) "ltrim test"
string(10) "ltrim test"
string(10) "ltrim test"

 *** Output for  scalar argument) ***
string(5) "12345"

 *** Output for  NULL argument) ***
string(0) ""

Done
