wharmby         Thu Jan 15 13:40:05 2009 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/standard/tests/strings strripos_variation1.phpt 
                                        strripos_basic1.phpt 
                                        strripos_error.phpt 
                                        strripos_variation2.phpt 
                                        strripos_variation4.phpt 
                                        strripos_basic2.phpt 
                                        strripos_variation5.phpt 
                                        strripos_variation3.phpt 
  Log:
  New test for strripos()  string function. All tests checked on Windows, Linux 
and Linux 64 bit. 
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_variation1.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_variation1.phpt
+++ php-src/ext/standard/tests/strings/strripos_variation1.phpt
--TEST--
Test strripos() function : usage variations - double quoted strings for 
'haystack' & 'needle' arguments
--XFAIL--
This test will fail until bug #47102 fixed
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

/* Test strripos() function by passing double quoted strings for 'haystack' & 
'needle' arguments */

echo "*** Testing strripos() function: with double quoted strings ***\n";
$haystack = "Hello,\t\n\0\n  $&!#%()*<=>?...@hello123456he \x234 \101 ";
$needles = array(
                  //regular strings
/*1*/     "l",  
                  "L",
                  "HELLO",
                  "hEllo",
                
                  //escape characters
/*5*/     "\t",  
                  "\T",  //invalid input
                  "     ",
                  "\n",
                  "\N",  //invalid input
                  "
",  //new line
                
                  //nulls
/*11*/    "\0",  
                  NULL,
                  null,
                
                  //boolean false
/*14*/    FALSE,  
                  false,
                
                  //empty string
/*16*/    "",
                
                  //special chars
/*17*/    " ",  
                  "$",
                  " $",
                  "&",
                  "!#", 
                  "()",
                  "<=>", 
                  ">",  
                  "=>",
                  "?",
                  "@",
                  "@hEllo",
                
/*29*/    "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;
foreach ($needles as $needle) {
  echo "-- Iteration $count --\n";
  var_dump( strripos($haystack, $needle) );
  var_dump( strripos($haystack, $needle, 1) );
  var_dump( strripos($haystack, $needle, 20) );
  var_dump( strripos($haystack, $needle, -1) );
  $count++;
}
?>
===DONE===
--EXPECTF--
*** Testing strripos() function: with double quoted strings ***
-- Iteration 1 --
int(28)
int(28)
int(28)
int(28)
-- Iteration 2 --
int(28)
int(28)
int(28)
int(28)
-- Iteration 3 --
int(25)
int(25)
int(25)
int(25)
-- Iteration 4 --
int(25)
int(25)
int(25)
int(25)
-- Iteration 5 --
int(6)
int(6)
bool(false)
int(6)
-- Iteration 6 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 7 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 8 --
int(9)
int(9)
bool(false)
int(9)
-- Iteration 9 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 10 --
int(9)
int(9)
bool(false)
int(9)
-- Iteration 11 --
int(8)
int(8)
bool(false)
int(8)
-- Iteration 12 --
int(8)
int(8)
bool(false)
int(8)
-- Iteration 13 --
int(8)
int(8)
bool(false)
int(8)
-- Iteration 14 --
int(8)
int(8)
bool(false)
int(8)
-- Iteration 15 --
int(8)
int(8)
bool(false)
int(8)
-- Iteration 16 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 17 --
int(43)
int(43)
int(43)
int(43)
-- Iteration 18 --
int(12)
int(12)
bool(false)
int(12)
-- Iteration 19 --
int(11)
int(11)
bool(false)
int(11)
-- Iteration 20 --
int(13)
int(13)
bool(false)
int(13)
-- Iteration 21 --
int(14)
int(14)
bool(false)
int(14)
-- Iteration 22 --
int(17)
int(17)
bool(false)
int(17)
-- Iteration 23 --
int(20)
int(20)
int(20)
int(20)
-- Iteration 24 --
int(22)
int(22)
int(22)
int(22)
-- Iteration 25 --
int(21)
int(21)
int(21)
int(21)
-- Iteration 26 --
int(23)
int(23)
int(23)
int(23)
-- Iteration 27 --
int(24)
int(24)
int(24)
int(24)
-- Iteration 28 --
int(24)
int(24)
int(24)
int(24)
-- Iteration 29 --
int(30)
int(30)
int(30)
int(30)
-- Iteration 30 --
int(39)
int(39)
int(39)
int(39)
-- Iteration 31 --
int(39)
int(39)
int(39)
int(39)
-- Iteration 32 --
int(42)
int(42)
int(42)
int(42)
-- Iteration 33 --
int(42)
int(42)
int(42)
int(42)
-- Iteration 34 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 35 --
int(0)
bool(false)
bool(false)
int(0)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_basic1.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_basic1.phpt
+++ php-src/ext/standard/tests/strings/strripos_basic1.phpt
--TEST--
Test strripos() function : basic functionality - with default arguments
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

echo "*** Testing strripos() function: basic functionality ***\n";
$heredoc_str = <<<EOD
Hello, World
EOD;

echo "\n-- regular string for haystack & needle --\n";
var_dump( strripos("Hello, World", "HeLLo") );
var_dump( strripos('Hello, World', "hello") );
var_dump( strripos("Hello, World", 'WoRLd') );
var_dump( strripos('Hello, World', 'WORLD') );
var_dump( strripos('Hello, World', 'foo') );

echo "\n-- single char for needle --\n";
var_dump( strripos("Hello, World", "O") );
var_dump( strripos("Hello, World", ",") );

echo "\n-- heredoc string for haystack & needle --\n"; 
var_dump( strripos($heredoc_str, "Hello, WoRLd") );
var_dump( strripos($heredoc_str, 'HelLO') );
var_dump( strripos($heredoc_str, $heredoc_str) );

?>
===DONE===
--EXPECT--
*** Testing strripos() function: basic functionality ***

-- regular string for haystack & needle --
int(0)
int(0)
int(7)
int(7)
bool(false)

-- single char for needle --
int(8)
int(5)

-- heredoc string for haystack & needle --
int(0)
int(0)
int(0)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_error.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_error.phpt
+++ php-src/ext/standard/tests/strings/strripos_error.phpt
--TEST--
Test strripos() function : error conditions 
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

echo "*** Testing strripos() function: error conditions ***";
echo "\n-- With Zero arguments --";
var_dump( strripos() );

echo "\n-- With less than expected number of arguments --";
var_dump( strripos("String") );

echo "\n-- With more than expected number of arguments --";
var_dump( strripos("string", "String", 1, 'extra_arg') );
?>
===DONE===
--EXPECTF--
*** Testing strripos() function: error conditions ***
-- With Zero arguments --
Warning: strripos() expects at least 2 parameters, 0 given in %s on line %d
bool(false)

-- With less than expected number of arguments --
Warning: strripos() expects at least 2 parameters, 1 given in %s on line %d
bool(false)

-- With more than expected number of arguments --
Warning: strripos() expects at most 3 parameters, 4 given in %s on line %d
bool(false)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_variation2.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_variation2.phpt
+++ php-src/ext/standard/tests/strings/strripos_variation2.phpt
--TEST--
Test strripos() function : usage variations - single quoted strings for 
'haystack' & 'needle' arguments
--XFAIL--
This test will fail until bug #47102 fixed
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

/* Test strripos() function by passing single quoted strings to 'haystack' & 
'needle' arguments */

echo "*** Testing strripos() function: with single quoted strings ***\n";
$haystack = 'Hello,\t\n\0\n  $&!#%()*<=>?...@hello123456he \x234 \101 ';
$needles = array(
                  //regular strings
/*1*/     'l',  
                  'L',
                  'HELLO',
                  'hEllo',
                
                  //escape characters
/*5*/     '\t',  
                  '\T',
                  '     ',
                  '\n',
                  '\N',
                  '
                ',  //new line
                
                  //nulls
/*11*/    '\0',  
                  NULL,
                  null,
                
                  //boolean false
/*14*/    FALSE,  
                  false,
                
                  //empty string
/*16*/    '',
                
                  //special chars
/*17*/    ' ',  
                  '$',
                  ' $',
                  '&',
                  '!#',
                  '()',
                  '<=>',  
                  '>',
                  '=>',
                  '?',
                  '@',
                  '@hEllo',
                
/*29*/    '12345',      //decimal numeric string  
                  '\x23',       //hexadecimal numeric string
                  '#',          //respective ASCII char of \x23
                  '\101',       //octal numeric string
                  'A',          // respective ASCII char for \101
                  '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;
foreach ($needles as $needle) {
  echo "-- Iteration $count --\n";
  var_dump( strripos($haystack, $needle) );
  var_dump( strripos($haystack, $needle, 1) );
  var_dump( strripos($haystack, $needle, 20) );
  var_dump( strripos($haystack, $needle, -1) );
  $count++;
}
?>
===DONE===
--EXPECT--
*** Testing strripos() function: with single quoted strings ***
-- Iteration 1 --
int(32)
int(32)
int(32)
int(32)
-- Iteration 2 --
int(32)
int(32)
int(32)
int(32)
-- Iteration 3 --
int(29)
int(29)
int(29)
int(29)
-- Iteration 4 --
int(29)
int(29)
int(29)
int(29)
-- Iteration 5 --
int(6)
int(6)
bool(false)
int(6)
-- Iteration 6 --
int(6)
int(6)
bool(false)
int(6)
-- Iteration 7 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 8 --
int(12)
int(12)
bool(false)
int(12)
-- Iteration 9 --
int(12)
int(12)
bool(false)
int(12)
-- Iteration 10 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 11 --
int(10)
int(10)
bool(false)
int(10)
-- Iteration 12 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 13 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 14 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 15 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 16 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 17 --
int(53)
int(53)
int(53)
int(53)
-- Iteration 18 --
int(16)
int(16)
bool(false)
int(16)
-- Iteration 19 --
int(15)
int(15)
bool(false)
int(15)
-- Iteration 20 --
int(17)
int(17)
bool(false)
int(17)
-- Iteration 21 --
int(18)
int(18)
bool(false)
int(18)
-- Iteration 22 --
int(21)
int(21)
int(21)
int(21)
-- Iteration 23 --
int(24)
int(24)
int(24)
int(24)
-- Iteration 24 --
int(26)
int(26)
int(26)
int(26)
-- Iteration 25 --
int(25)
int(25)
int(25)
int(25)
-- Iteration 26 --
int(27)
int(27)
int(27)
int(27)
-- Iteration 27 --
int(28)
int(28)
int(28)
int(28)
-- Iteration 28 --
int(28)
int(28)
int(28)
int(28)
-- Iteration 29 --
int(34)
int(34)
int(34)
int(34)
-- Iteration 30 --
int(43)
int(43)
int(43)
int(43)
-- Iteration 31 --
int(19)
int(19)
bool(false)
int(19)
-- Iteration 32 --
int(49)
int(49)
int(49)
int(49)
-- Iteration 33 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 34 --
bool(false)
bool(false)
bool(false)
bool(false)
-- Iteration 35 --
int(23)
int(23)
int(23)
int(23)
-- Iteration 36 --
int(0)
bool(false)
bool(false)
int(0)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_variation4.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_variation4.phpt
+++ php-src/ext/standard/tests/strings/strripos_variation4.phpt
--TEST--
Test strripos() function : usage variations - heredoc string containing special 
chars for 'haystack' argument
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

/* Test strripos() function by passing heredoc string containing special chars 
for haystack
 *  and with various needles & offets 
*/

echo "*** Testing strripos() 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( strripos($special_chars_str, "Ex'pLE", 0) );
var_dump( strripos($special_chars_str, "!@@!", 23) );
var_dump( strripos($special_chars_str, '_') );
var_dump( strripos($special_chars_str, '("_")') );
var_dump( strripos($special_chars_str, "$*") );
var_dump( strripos($special_chars_str, "$*", 10) );
var_dump( strripos($special_chars_str, "(speCIal)") );

?>
===DONE===
--EXPECTF--
*** Testing strripos() function: with heredoc strings ***
-- With heredoc string containing special chars --
int(0)
bool(false)
int(41)
int(39)
int(55)
int(55)
int(57)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_basic2.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_basic2.phpt
+++ php-src/ext/standard/tests/strings/strripos_basic2.phpt
--TEST--
Test strripos() function : basic functionality - with all arguments
--XFAIL--
This test will fail until bug #47102 fixed
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

echo "*** Testing strripos() function: basic functionality ***\n";
$heredoc_str = <<<EOD
Hello, World
EOD;

echo "\n-- regular string for haystack & needle, with various offsets --\n"; 
var_dump( strripos("Hello, World", "HeLLo", 0) );
var_dump( strripos("Hello, World", 'Hello', 1) );
var_dump( strripos('Hello, World', 'world', 1) );
var_dump( strripos('Hello, World', "WorLD", 5) );

echo "\n-- heredoc string for haystack & needle, with various offsets --\n"; 
var_dump( strripos($heredoc_str, "Hello, WORLD", 0) );
var_dump( strripos($heredoc_str, 'HelLo', 0) );
var_dump( strripos($heredoc_str, 'HeLLo', 1) );
var_dump( strripos($heredoc_str, $heredoc_str, 0) );
var_dump( strripos($heredoc_str, $heredoc_str, 1) );

echo "\n-- various +ve offsets --\n"; 
var_dump( strripos("Hello, World", "O", 3) );
var_dump( strripos("Hello, World", "O", 6) );
var_dump( strripos("Hello, World", "O", 10) );

echo "\n-- various -ve offsets --\n"; 
var_dump( strripos("Hello, World", "O", -1) );
var_dump( strripos("Hello, World", "O", -5) );
var_dump( strripos("Hello, World", "O",  -9) );
?>
===DONE===
--EXPECT--
*** Testing strripos() function: basic functionality ***

-- regular string for haystack & needle, with various offsets --
int(0)
bool(false)
int(7)
int(7)

-- heredoc string for haystack & needle, with various offsets --
int(0)
int(0)
bool(false)
int(0)
bool(false)

-- various +ve offsets --
int(8)
int(8)
bool(false)

-- various -ve offsets --
int(8)
int(4)
bool(false)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_variation5.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_variation5.phpt
+++ php-src/ext/standard/tests/strings/strripos_variation5.phpt
--TEST--
Test strripos() function : usage variations - heredoc string containing escape 
chars for 'haystack' argument
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

/* Test strripos() function by passing heredoc string containing escape chars 
for haystack 
 *  and with various needles & offsets 
*/

echo "*** Testing strripos() 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( strripos($control_char_str, "\n") );
var_dump( strripos($control_char_str, "\t") );
var_dump( strripos($control_char_str, "\n", 12) );
var_dump( strripos($control_char_str, "\t", 15) );

?>
===DONE===
--EXPECTF--
*** Testing strripos() function: with heredoc strings ***
-- With heredoc string containing escape characters --
int(13)
int(19)
int(13)
int(19)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strripos_variation3.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/strings/strripos_variation3.phpt
+++ php-src/ext/standard/tests/strings/strripos_variation3.phpt
--TEST--
Test strripos() function : usage variations - multi line heredoc string for 
'haystack' argument
--FILE--
<?php
/* Prototype  : int strripos ( string $haystack, string $needle [, int $offset] 
);
 * Description: Find position of last occurrence of a case-insensitive 'needle' 
in a 'haystack'
 * Source code: ext/standard/string.c
*/

/* Test strripos() function by passing multi-line heredoc string for haystack 
and 
 *  with various needles & offsets
*/

echo "*** Testing strripos() 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;

echo "\n-- Multi line strings with +ve offsets -- \n";
var_dump( strripos($multi_line_str, "iNg", 0) );
var_dump( strripos($multi_line_str, "inG", 15) );
var_dump( strripos($multi_line_str, "Ing", 22) );

echo "\n-- Multi line strings with +ve offsets -- \n";
var_dump( strripos($multi_line_str, "Ing", -1) );
var_dump( strripos($multi_line_str, "Ing", -17) );
var_dump( strripos($multi_line_str, "Ing", -50) );

echo "\n-- Multi line strings with no offset -- \n";
var_dump( strripos($multi_line_str, "spAn") );
var_dump( strripos($multi_line_str, "IPlE") );
var_dump( strripos($multi_line_str, "") );
var_dump( strripos($multi_line_str, " ") );

?>
===DONE===
--EXPECT--
*** Testing strripos() function: with heredoc strings ***
-- With heredoc string containing multi lines --

-- Multi line strings with +ve offsets -- 
int(44)
int(44)
int(44)

-- Multi line strings with +ve offsets -- 
int(44)
int(44)
bool(false)

-- Multi line strings with no offset -- 
int(18)
int(31)
bool(false)
int(55)
===DONE===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to