New testcases for stripos() function

This commit is contained in:
Raghubansh Kumar 2007-09-29 16:56:46 +00:00
parent 2a22e422ad
commit efc32bacaa
18 changed files with 2009 additions and 0 deletions

View File

@ -0,0 +1,48 @@
--TEST--
Test stripos() function : basic functionality - with default arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
echo "*** Testing stripos() function: basic functionality ***\n";
$heredoc_str = <<<Identifier
Hello, World
Identifier;
echo "-- With default arguments --\n";
//regular string for haystack & needle
var_dump( stripos("Hello, World", "Hello") );
var_dump( stripos('Hello, World', "hello") );
var_dump( stripos("Hello, World", 'World') );
var_dump( stripos('Hello, World', 'WORLD') );
//single char for needle
var_dump( stripos("Hello, World", "o") );
var_dump( stripos("Hello, World", ",") );
//heredoc string for haystack & needle
var_dump( stripos($heredoc_str, "Hello, World") );
var_dump( stripos($heredoc_str, 'Hello') );
var_dump( stripos($heredoc_str, $heredoc_str) );
//non-existing needle in haystack
var_dump( stripos("Hello, World", "ooo") );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: basic functionality ***
-- With default arguments --
int(0)
int(0)
int(7)
int(7)
int(4)
int(5)
int(0)
int(0)
int(0)
bool(false)
*** Done ***

View File

@ -0,0 +1,52 @@
--TEST--
Test stripos() function : basic functionality - with all arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
echo "*** Testing stripos() function: basic functionality ***\n";
$heredoc_str = <<<Identifier
Hello, World
Identifier;
echo "-- With all arguments --\n";
//regular string for haystack & needle, with various offsets
var_dump( stripos("Hello, World", "Hello", 0) );
var_dump( stripos("Hello, World", 'Hello', 1) );
var_dump( stripos('Hello, World', 'WORLD', 1) );
var_dump( stripos('Hello, World', "WoRld", 5) );
//heredoc string for haystack & needle, with various offsets
var_dump( stripos($heredoc_str, "Hello, World", 0) );
var_dump( stripos($heredoc_str, 'Hello', 0) );
var_dump( stripos($heredoc_str, 'Hello', 1) );
var_dump( stripos($heredoc_str, $heredoc_str, 0) );
var_dump( stripos($heredoc_str, $heredoc_str, 1) );
//various offsets
var_dump( stripos("Hello, World", "o", 3) );
var_dump( stripos("Hello, World", "O", 5) );
var_dump( stripos("Hello, World", "o", 6) );
var_dump( stripos("Hello, World", "o", 10) );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: basic functionality ***
-- With all arguments --
int(0)
bool(false)
int(7)
int(7)
int(0)
int(0)
bool(false)
int(0)
bool(false)
int(4)
int(8)
int(8)
bool(false)
*** Done ***

View File

@ -0,0 +1,35 @@
--TEST--
Test stripos() function : error conditions
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
echo "*** Testing stripos() function: error conditions ***\n";
echo "\n-- With Zero arguments --";
var_dump( stripos() );
echo "\n-- With less than expected number of arguments --";
var_dump( stripos("String") );
echo "\n-- With more than expected number of arguments --";
var_dump( stripos("string", "String", 1, 'extra_arg') );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: error conditions ***
-- With Zero arguments --
Warning: stripos() expects at least 2 parameters, 0 given in %s on line %d
NULL
-- With less than expected number of arguments --
Warning: stripos() expects at least 2 parameters, 1 given in %s on line %d
NULL
-- With more than expected number of arguments --
Warning: stripos() expects at most 3 parameters, 4 given in %s on line %d
NULL
*** Done ***

View File

@ -0,0 +1,226 @@
--TEST--
Test stripos() function : usage variations - double quoted strings for 'haystack' & 'needle' arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing double quoted strings for 'haystack' & 'needle' arguments */
echo "*** Testing stripos() function: with double quoted strings ***\n";
$haystack = "Hello,\t\n\0\n $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 ";
$needle = array(
//regular strings
"l",
"L",
"HELLO",
"hEllo",
//escape characters
"\t",
"\T", //invalid input
" ",
"\n",
"\N", //invalid input
"
", //new line
//nulls
"\0",
NULL,
null,
//boolean false
FALSE,
false,
//empty string
"",
//special chars
" ",
"$",
" $",
"&",
"!#",
"%\o",
"\o,",
"()",
"*+",
"+",
"-",
".",
".;",
":;",
";",
"<=>",
">",
"=>",
"?",
"@",
"@hEllo",
"12345", //decimal numeric string
"\x23", //hexadecimal numeric string
"#", //respective ASCII char of \x23
"\101", //octal numeric string
"A", //respective ASCII char of \101
"456HEE", //numerics + chars
$haystack //haystack as needle
);
/* loop through to get the position of the needle in haystack string */
$count = 1;
for($index=0; $index<count($needle); $index++) {
echo "-- Iteration $count --\n";
var_dump( stripos($haystack, $needle[$index]) );
var_dump( stripos($haystack, $needle[$index], $index) );
$count++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with double quoted strings ***
-- Iteration 1 --
int(2)
int(2)
-- Iteration 2 --
int(2)
int(2)
-- Iteration 3 --
int(0)
int(34)
-- Iteration 4 --
int(0)
int(34)
-- Iteration 5 --
int(6)
int(6)
-- Iteration 6 --
bool(false)
bool(false)
-- Iteration 7 --
bool(false)
bool(false)
-- Iteration 8 --
int(7)
int(7)
-- Iteration 9 --
bool(false)
bool(false)
-- Iteration 10 --
int(7)
int(9)
-- Iteration 11 --
int(8)
bool(false)
-- Iteration 12 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 13 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 14 --
int(8)
bool(false)
-- Iteration 15 --
int(8)
bool(false)
-- Iteration 16 --
bool(false)
bool(false)
-- Iteration 17 --
int(10)
int(47)
-- Iteration 18 --
int(12)
bool(false)
-- Iteration 19 --
int(11)
bool(false)
-- Iteration 20 --
int(13)
bool(false)
-- Iteration 21 --
int(14)
bool(false)
-- Iteration 22 --
int(16)
bool(false)
-- Iteration 23 --
int(17)
bool(false)
-- Iteration 24 --
int(20)
bool(false)
-- Iteration 25 --
int(22)
bool(false)
-- Iteration 26 --
int(23)
bool(false)
-- Iteration 27 --
int(24)
bool(false)
-- Iteration 28 --
int(25)
bool(false)
-- Iteration 29 --
bool(false)
bool(false)
-- Iteration 30 --
int(27)
bool(false)
-- Iteration 31 --
int(28)
bool(false)
-- Iteration 32 --
int(29)
bool(false)
-- Iteration 33 --
int(31)
bool(false)
-- Iteration 34 --
int(30)
bool(false)
-- Iteration 35 --
int(32)
bool(false)
-- Iteration 36 --
int(33)
bool(false)
-- Iteration 37 --
int(33)
bool(false)
-- Iteration 38 --
int(39)
int(39)
-- Iteration 39 --
int(15)
int(48)
-- Iteration 40 --
int(15)
int(48)
-- Iteration 41 --
int(51)
int(51)
-- Iteration 42 --
int(51)
int(51)
-- Iteration 43 --
bool(false)
bool(false)
-- Iteration 44 --
int(0)
bool(false)
*** Done ***

View File

@ -0,0 +1,196 @@
--TEST--
Test stripos() function : usage variations - unexpected inputs for 'needle' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with unexpected inputs for 'needle' and
* an expected type of input for 'haystack' argument
*/
echo "*** Testing stripos() function with unexpected values for needle ***\n";
//get an unset variable
$unset_var = 'string_val';
unset($unset_var);
//defining a class
class sample {
public function __toString() {
return "object";
}
}
//getting the resource
$file_handle = fopen(__FILE__, "r");
$haystack = "string 0 1 2 -2 10.5 -10.5 10.5e10 10.6E-10 .5 array true false object \"\" null Resource";
// array with different values
$needles = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.5e10,
10.6E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// objects
new sample(),
// empty string
"",
'',
// null vlaues
NULL,
null,
// resource
$file_handle,
// undefined variable
@$undefined_var,
// unset variable
@$unset_var
);
// loop through each element of the 'needle' array to check the working of stripos()
$counter = 1;
for($index = 0; $index < count($needles); $index ++) {
echo "\n-- Iteration $counter --\n";
var_dump( stripos($haystack, $needles[$index]) );
$counter ++;
}
fclose($file_handle); //closing the file handle
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function with unexpected values for needle ***
-- Iteration 1 --
bool(false)
-- Iteration 2 --
bool(false)
-- Iteration 3 --
bool(false)
-- Iteration 4 --
bool(false)
-- Iteration 5 --
bool(false)
-- Iteration 6 --
bool(false)
-- Iteration 7 --
bool(false)
-- Iteration 8 --
bool(false)
-- Iteration 9 --
bool(false)
-- Iteration 10 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 11 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 12 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 13 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 14 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 15 --
bool(false)
-- Iteration 16 --
bool(false)
-- Iteration 17 --
bool(false)
-- Iteration 18 --
bool(false)
-- Iteration 19 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 20 --
bool(false)
-- Iteration 21 --
bool(false)
-- Iteration 22 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 23 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 24 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 25 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 26 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
*** Done ***

View File

@ -0,0 +1,215 @@
--TEST--
Test stripos() function : usage variations - unexpected inputs for 'haystack' and 'needle' arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with unexpected inputs for 'haystack' and 'needle' arguments */
echo "*** Testing stripos() function with unexpected values for haystack and needle ***\n";
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// defining a class
class sample {
public function __toString() {
return "object";
}
}
//getting the resource
$file_handle = fopen(__FILE__, "r");
// array with different values
$values = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.5e10,
10.6E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// objects
new sample(),
// empty string
"",
'',
// null vlaues
NULL,
null,
// resource
$file_handle,
// undefined variable
@$undefined_var,
// unset variable
@$unset_var
);
// loop through each element of the array and check the working of stripos()
$counter = 1;
for($index = 0; $index < count($values); $index ++) {
echo "-- Iteration $counter --\n";
$haystack = $values[$index];
var_dump( stripos($values[$index], $values[$index]) );
var_dump( stripos($values[$index], $values[$index], 1) );
$counter ++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function with unexpected values for haystack and needle ***
-- Iteration 1 --
bool(false)
bool(false)
-- Iteration 2 --
bool(false)
bool(false)
-- Iteration 3 --
bool(false)
bool(false)
-- Iteration 4 --
bool(false)
bool(false)
-- Iteration 5 --
bool(false)
bool(false)
-- Iteration 6 --
bool(false)
bool(false)
-- Iteration 7 --
bool(false)
bool(false)
-- Iteration 8 --
bool(false)
bool(false)
-- Iteration 9 --
bool(false)
bool(false)
-- Iteration 10 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 11 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 12 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 13 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 14 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 15 --
bool(false)
bool(false)
-- Iteration 16 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 17 --
bool(false)
bool(false)
-- Iteration 18 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 19 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 20 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 21 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 22 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 23 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 24 --
Warning: stripos() expects parameter 1 to be string, resource given in %s on line %d
NULL
Warning: stripos() expects parameter 1 to be string, resource given in %s on line %d
NULL
-- Iteration 25 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 26 --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
*** Done ***

View File

@ -0,0 +1,47 @@
--TEST--
Test stripos() function : usage variations - null terminated strings for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with null terminated strings for 'haystack' argument
* in order to check the binary safe
*/
echo "*** Test stripos() function: binary safe ***\n";
$haystacks = array(
"Hello".chr(0)."World",
chr(0)."Hello World",
"Hello World".chr(0),
chr(0).chr(0).chr(0),
"Hello\0world",
"\0Hello",
"Hello\0"
);
for($index = 0; $index < count($haystacks); $index++ ) {
var_dump( stripos($haystacks[$index], "\0") );
var_dump( stripos($haystacks[$index], "\0", $index) );
}
echo "*** Done ***";
?>
--EXPECTF--
*** Test stripos() function: binary safe ***
int(5)
int(5)
int(0)
bool(false)
int(11)
int(11)
int(0)
bool(false)
int(5)
int(5)
int(0)
bool(false)
int(5)
bool(false)
*** Done ***

View File

@ -0,0 +1,49 @@
--TEST--
Test stripos() function : usage variations - null terminated strings for 'needle' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with null terminated strings for 'needle' argument
* in order to check binary safe
*/
echo "*** Test stripos() function: binary safe ***\n";
$haystack = "\0Hello\0World\0";
$needles = array(
"Hello".chr(0)."World",
chr(0)."Hello World",
"Hello World".chr(0),
chr(0).chr(0).chr(0),
"Hello\0world",
"\0Hello",
"Hello\0"
);
for($index = 0; $index < count($needles); $index++ ) {
var_dump( stripos($haystack, $needles[$index]) );
var_dump( stripos($haystack, $needles[$index], $index) );
}
echo "*** Done ***";
?>
--EXPECTF--
*** Test stripos() function: binary safe ***
int(1)
int(1)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
int(1)
bool(false)
int(0)
bool(false)
int(1)
bool(false)
*** Done ***

View File

@ -0,0 +1,155 @@
--TEST--
Test stripos() function : usage variations - unexpected inputs for 'offset' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with unexpected inputs for 'offset' argument */
echo "*** Testing stripos() function with unexpected values for offset ***\n";
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// defining a class
class sample {
public function __toString() {
return "object";
}
}
//getting the resource
$file_handle = fopen(__FILE__, "r");
//definition of input args
$haystack = "hello world";
$needle = "world";
// array with different values
$offsets = array (
// float values
1.5,
-1.5,
1.5e10,
1.6E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// objects
new sample(),
// empty string
"",
'',
// null vlaues
NULL,
null,
//resource
$file_handle,
// undefined variable
@$undefined_var,
// unset variable
@$unset_var
);
// loop through each element of the array and check the working of stripos()
$counter = 1;
for($index = 0; $index < count($offsets); $index ++) {
echo "-- Iteration $counter --\n";
var_dump( stripos($haystack, $needle, $offsets[$index]) );
$counter ++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function with unexpected values for offset ***
-- Iteration 1 --
int(6)
-- Iteration 2 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 3 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 4 --
int(6)
-- Iteration 5 --
int(6)
-- Iteration 6 --
Warning: stripos() expects parameter 3 to be long, array given in %s on line %d
NULL
-- Iteration 7 --
Warning: stripos() expects parameter 3 to be long, array given in %s on line %d
NULL
-- Iteration 8 --
Warning: stripos() expects parameter 3 to be long, array given in %s on line %d
NULL
-- Iteration 9 --
Warning: stripos() expects parameter 3 to be long, array given in %s on line %d
NULL
-- Iteration 10 --
Warning: stripos() expects parameter 3 to be long, array given in %s on line %d
NULL
-- Iteration 11 --
int(6)
-- Iteration 12 --
int(6)
-- Iteration 13 --
int(6)
-- Iteration 14 --
int(6)
-- Iteration 15 --
Warning: stripos() expects parameter 3 to be long, object given in %s on line %d
NULL
-- Iteration 16 --
Warning: stripos() expects parameter 3 to be long, string given in %s on line %d
NULL
-- Iteration 17 --
Warning: stripos() expects parameter 3 to be long, string given in %s on line %d
NULL
-- Iteration 18 --
int(6)
-- Iteration 19 --
int(6)
-- Iteration 20 --
Warning: stripos() expects parameter 3 to be long, resource given in %s on line %d
NULL
-- Iteration 21 --
int(6)
-- Iteration 22 --
int(6)
*** Done ***

View File

@ -0,0 +1,171 @@
--TEST--
Test stripos() function : usage variations - unexpected inputs for 'haystack', 'needle' & 'offset' arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with unexpected inputs for 'haystack', 'needle' & 'offset' arguments */
echo "*** Testing stripos() function with unexpected values for haystack, needle & offset ***\n";
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// defining a class
class sample {
public function __toString() {
return "object";
}
}
//getting the resource
$file_handle = fopen(__FILE__, "r");
// array with different values
$values = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.5e10,
10.6E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// objects
new sample(),
// empty string
"",
'',
// null vlaues
NULL,
null,
//resource
$file_handle,
// undefined variable
@$undefined_var,
// unset variable
@$unset_var
);
// loop through each element of the array and check the working of stripos()
$counter = 1;
for($index = 0; $index < count($values); $index ++) {
echo "-- Iteration $counter --\n";
var_dump( stripos($values[$index], $values[$index], $values[$index]) );
$counter ++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function with unexpected values for haystack, needle & offset ***
-- Iteration 1 --
bool(false)
-- Iteration 2 --
bool(false)
-- Iteration 3 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 4 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 5 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 6 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 7 --
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
-- Iteration 8 --
bool(false)
-- Iteration 9 --
bool(false)
-- Iteration 10 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 11 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 12 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 13 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 14 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 15 --
bool(false)
-- Iteration 16 --
bool(false)
-- Iteration 17 --
bool(false)
-- Iteration 18 --
bool(false)
-- Iteration 19 --
Warning: stripos() expects parameter 3 to be long, object given in %s on line %d
NULL
-- Iteration 20 --
Warning: stripos() expects parameter 3 to be long, string given in %s on line %d
NULL
-- Iteration 21 --
Warning: stripos() expects parameter 3 to be long, string given in %s on line %d
NULL
-- Iteration 22 --
bool(false)
-- Iteration 23 --
bool(false)
-- Iteration 24 --
Warning: stripos() expects parameter 1 to be string, resource given in %s on line %d
NULL
-- Iteration 25 --
bool(false)
-- Iteration 26 --
bool(false)
*** Done ***

View File

@ -0,0 +1,234 @@
--TEST--
Test stripos() function : usage variations - single quoted strings for 'haystack' & 'needle' arguments
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing single quoted strings to 'haystack' & 'needle' arguments */
echo "*** Testing stripos() function: with single quoted strings ***\n";
$haystack = 'Hello,\t\n\0\n $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 ';
$needle = array(
//regular strings
'l',
'L',
'HELLO',
'hEllo',
//escape characters
'\t',
'\T',
' ',
'\n',
'\N',
'
', //new line
//nulls
'\0',
NULL,
null,
//boolean false
FALSE,
false,
//empty string
'',
//special chars
' ',
'$',
' $',
'&',
'!#',
'%\o',
'\o,',
'()',
'*+',
'+',
'-',
'.',
'.;',
'.;',
':;',
';',
'<=>',
'>',
'=>',
'?',
'@',
'@hEllo',
'12345', //decimal numeric string
'\x23', //hexadecimal numeric string
'#', //hexadecimal numeric string
'\101', //octal numeric string
'A',
'456HEE', //numerics + chars
42, //needle as int(ASCII value of '*')
$haystack //haystack as needle
);
/* loop through to get the position of the needle in haystack string */
$count = 1;
for($index=0; $index<count($needle); $index++) {
echo "-- Iteration $count --\n";
var_dump( stripos($haystack, $needle[$index]) );
var_dump( stripos($haystack, $needle[$index], $index) );
$count++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with single quoted strings ***
-- Iteration 1 --
int(2)
int(2)
-- Iteration 2 --
int(2)
int(2)
-- Iteration 3 --
int(0)
int(38)
-- Iteration 4 --
int(0)
int(38)
-- Iteration 5 --
int(6)
int(6)
-- Iteration 6 --
int(6)
int(6)
-- Iteration 7 --
bool(false)
bool(false)
-- Iteration 8 --
int(8)
int(8)
-- Iteration 9 --
int(8)
int(8)
-- Iteration 10 --
bool(false)
bool(false)
-- Iteration 11 --
int(10)
int(10)
-- Iteration 12 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 13 --
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
Warning: stripos(): needle is not a string or an integer. in %s on line %d
bool(false)
-- Iteration 14 --
bool(false)
bool(false)
-- Iteration 15 --
bool(false)
bool(false)
-- Iteration 16 --
bool(false)
bool(false)
-- Iteration 17 --
int(14)
int(51)
-- Iteration 18 --
int(16)
bool(false)
-- Iteration 19 --
int(15)
bool(false)
-- Iteration 20 --
int(17)
bool(false)
-- Iteration 21 --
int(18)
bool(false)
-- Iteration 22 --
int(20)
bool(false)
-- Iteration 23 --
int(21)
bool(false)
-- Iteration 24 --
int(24)
int(24)
-- Iteration 25 --
int(26)
int(26)
-- Iteration 26 --
int(27)
int(27)
-- Iteration 27 --
int(28)
int(28)
-- Iteration 28 --
int(29)
int(29)
-- Iteration 29 --
bool(false)
bool(false)
-- Iteration 30 --
bool(false)
bool(false)
-- Iteration 31 --
int(31)
int(31)
-- Iteration 32 --
int(32)
int(32)
-- Iteration 33 --
int(33)
int(33)
-- Iteration 34 --
int(35)
int(35)
-- Iteration 35 --
int(34)
int(34)
-- Iteration 36 --
int(36)
int(36)
-- Iteration 37 --
int(37)
int(37)
-- Iteration 38 --
int(37)
int(37)
-- Iteration 39 --
int(43)
int(43)
-- Iteration 40 --
int(52)
int(52)
-- Iteration 41 --
int(19)
bool(false)
-- Iteration 42 --
int(58)
int(58)
-- Iteration 43 --
bool(false)
bool(false)
-- Iteration 44 --
bool(false)
bool(false)
-- Iteration 45 --
int(26)
bool(false)
-- Iteration 46 --
int(0)
bool(false)
*** Done ***

View File

@ -0,0 +1,37 @@
--TEST--
Test stripos() function : usage variations - multi line heredoc string for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing multi-line heredoc string for haystack and
* with various needles & offsets
*/
echo "*** Testing stripos() function: with heredoc strings ***\n";
echo "-- With heredoc string containing multi lines --\n";
$multi_line_str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
var_dump( stripos($multi_line_str, "ing", 0) );
var_dump( stripos($multi_line_str, "ing", 15) );
var_dump( stripos($multi_line_str, "ing", 22) );
var_dump( stripos($multi_line_str, "") );
var_dump( stripos($multi_line_str, " ") );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with heredoc strings ***
-- With heredoc string containing multi lines --
int(14)
int(23)
int(23)
bool(false)
int(7)
*** Done ***

View File

@ -0,0 +1,41 @@
--TEST--
Test stripos() function : usage variations - heredoc string containing special chars for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing heredoc string containing special chars for haystack
* and with various needles & offets
*/
echo "*** Testing stripos() function: with heredoc strings ***\n";
echo "-- With heredoc string containing special chars --\n";
$special_chars_str = <<<EOD
Ex'ple of h'doc st'g, contains
$#%^*&*_("_")!#@@!$#$^^&$*(special)
chars.
EOD;
var_dump( stripos($special_chars_str, "Ex'ple", 0) );
var_dump( stripos($special_chars_str, "!@@!", 23) );
var_dump( stripos($special_chars_str, '_') );
var_dump( stripos($special_chars_str, '("_")') );
var_dump( stripos($special_chars_str, "$*") );
var_dump( stripos($special_chars_str, "$*", 10) );
var_dump( stripos($special_chars_str, "(special)") );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with heredoc strings ***
-- With heredoc string containing special chars --
int(0)
bool(false)
int(38)
int(39)
int(55)
int(55)
int(57)
*** Done ***

View File

@ -0,0 +1,34 @@
--TEST--
Test stripos() function : usage variations - heredoc string containing escape chars for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing heredoc string containing escape chars for haystack
* and with various needles & offsets
*/
echo "*** Testing stripos() function: with heredoc strings ***\n";
echo "-- With heredoc string containing escape characters --\n";
$control_char_str = <<<EOD
Hello, World\n
Hello\tWorld
EOD;
var_dump( stripos($control_char_str, "\n") );
var_dump( stripos($control_char_str, "\t") );
var_dump( stripos($control_char_str, "\n", 12) );
var_dump( stripos($control_char_str, "\t", 15) );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with heredoc strings ***
-- With heredoc string containing escape characters --
int(12)
int(19)
int(12)
int(19)
*** Done ***

View File

@ -0,0 +1,35 @@
--TEST--
Test stripos() function : usage variations - heredoc string containing quotes for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing heredoc string containing quotes for haystack
* and with various needles & offsets
*/
echo "*** Testing stripos() function: with heredoc strings ***\n";
echo "-- With heredoc string containing quote & slash chars --\n";
$quote_char_str = <<<EOD
it's bright,but i cann't see it.
"things in double quote"
'things in single quote'
this\line is /with\slashs
EOD;
var_dump( stripos($quote_char_str, "line") );
var_dump( stripos($quote_char_str, 'things') );
var_dump( stripos($quote_char_str, 'things', 0) );
var_dump( stripos($quote_char_str, "things", 20) );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with heredoc strings ***
-- With heredoc string containing quote & slash chars --
int(88)
int(34)
int(34)
int(34)
*** Done ***

View File

@ -0,0 +1,34 @@
--TEST--
Test stripos() function : usage variations - empty heredoc string for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function by passing empty heredoc string for haystack
* and with various needles & offsets
*/
echo "*** Testing stripos() function: with heredoc strings ***\n";
echo "-- With empty heredoc string --\n";
$empty_string = <<<EOD
EOD;
var_dump( stripos($empty_string, "") );
var_dump( stripos($empty_string, "", 1) );
var_dump( stripos($empty_string, FALSE) );
var_dump( stripos($empty_string, NULL) );
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: with heredoc strings ***
-- With empty heredoc string --
bool(false)
Warning: stripos(): Offset not contained in string. in %s on line %d
bool(false)
bool(false)
bool(false)
*** Done ***

View File

@ -0,0 +1,216 @@
--TEST--
Test stripos() function : usage variations - repetitive chars for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with strings containing repetitive chars for haystak
* and with various needles & offsets
*/
echo "*** Testing stripos() function: strings repetitive chars ***\n";
$haystack = "aBAbaBAbaBabAbAbaBa";
$needles = array(
"aba",
"aBA",
"ABA",
"Aba",
"BAb",
"bab",
"bAb",
"BAB"
);
/* loop through to consider various offsets in getting the position of the needle in haystack string */
$count = 1;
for($index = 0; $index < count($needles); $index++) {
echo "\n-- Iteration $count --\n";
for($offset = 0; $offset <= strlen($haystack); $offset++ ) {
var_dump( stripos($haystack, $needles[$index], $offset) );
}
$count++;
}
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function: strings repetitive chars ***
-- Iteration 1 --
int(0)
int(2)
int(2)
int(4)
int(4)
int(6)
int(6)
int(8)
int(8)
int(10)
int(10)
int(12)
int(12)
int(14)
int(14)
int(16)
int(16)
bool(false)
bool(false)
bool(false)
-- Iteration 2 --
int(0)
int(2)
int(2)
int(4)
int(4)
int(6)
int(6)
int(8)
int(8)
int(10)
int(10)
int(12)
int(12)
int(14)
int(14)
int(16)
int(16)
bool(false)
bool(false)
bool(false)
-- Iteration 3 --
int(0)
int(2)
int(2)
int(4)
int(4)
int(6)
int(6)
int(8)
int(8)
int(10)
int(10)
int(12)
int(12)
int(14)
int(14)
int(16)
int(16)
bool(false)
bool(false)
bool(false)
-- Iteration 4 --
int(0)
int(2)
int(2)
int(4)
int(4)
int(6)
int(6)
int(8)
int(8)
int(10)
int(10)
int(12)
int(12)
int(14)
int(14)
int(16)
int(16)
bool(false)
bool(false)
bool(false)
-- Iteration 5 --
int(1)
int(1)
int(3)
int(3)
int(5)
int(5)
int(7)
int(7)
int(9)
int(9)
int(11)
int(11)
int(13)
int(13)
int(15)
int(15)
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 6 --
int(1)
int(1)
int(3)
int(3)
int(5)
int(5)
int(7)
int(7)
int(9)
int(9)
int(11)
int(11)
int(13)
int(13)
int(15)
int(15)
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 7 --
int(1)
int(1)
int(3)
int(3)
int(5)
int(5)
int(7)
int(7)
int(9)
int(9)
int(11)
int(11)
int(13)
int(13)
int(15)
int(15)
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 8 --
int(1)
int(1)
int(3)
int(3)
int(5)
int(5)
int(7)
int(7)
int(9)
int(9)
int(11)
int(11)
int(13)
int(13)
int(15)
int(15)
bool(false)
bool(false)
bool(false)
bool(false)
*** Done ***

View File

@ -0,0 +1,184 @@
--TEST--
Test stripos() function : usage variations - unexpected inputs for 'haystack' argument
--FILE--
<?php
/* Prototype : int stripos ( string $haystack, string $needle [, int $offset] );
* Description: Find position of first occurrence of a case-insensitive string
* Source code: ext/standard/string.c
*/
/* Test stripos() function with unexpected inputs for haystack argument */
echo "*** Testing stripos() function with unexpected values for haystack ***\n";
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// defining a class
class sample {
public function __toString() {
return "object";
}
}
//getting the resource
$file_handle = fopen(__FILE__, "r");
// array with different values
$haystacks = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.5e10,
10.6E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// objects
new sample(),
// empty string
"",
'',
// null vlaues
NULL,
null,
// resource
$file_handle,
// undefined variable
@$undefined_var,
// unset variable
@$unset_var
);
$needle = "heredoc 0 1 2 -2 10.5 -10.5 10.5e10 10.6E-10 .5 array true false object \"\" null Resource";
// loop through each element of the array and check the working of stripos()
$counter = 1;
for($index = 0; $index < count($haystacks); $index ++) {
echo "\n-- Iteration $counter --\n";
var_dump( stripos($haystacks[$index], $needle) );
$counter ++;
}
fclose($file_handle); //closing the file handle
echo "*** Done ***";
?>
--EXPECTF--
*** Testing stripos() function with unexpected values for haystack ***
-- Iteration 1 --
bool(false)
-- Iteration 2 --
bool(false)
-- Iteration 3 --
bool(false)
-- Iteration 4 --
bool(false)
-- Iteration 5 --
bool(false)
-- Iteration 6 --
bool(false)
-- Iteration 7 --
bool(false)
-- Iteration 8 --
bool(false)
-- Iteration 9 --
bool(false)
-- Iteration 10 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 11 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 12 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 13 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 14 --
Warning: stripos() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 15 --
bool(false)
-- Iteration 16 --
bool(false)
-- Iteration 17 --
bool(false)
-- Iteration 18 --
bool(false)
-- Iteration 19 --
bool(false)
-- Iteration 20 --
bool(false)
-- Iteration 21 --
bool(false)
-- Iteration 22 --
bool(false)
-- Iteration 23 --
bool(false)
-- Iteration 24 --
Warning: stripos() expects parameter 1 to be string, resource given in %s on line %d
NULL
-- Iteration 25 --
bool(false)
-- Iteration 26 --
bool(false)
*** Done ***