diff options
author | andy wharmby <wharmby@php.net> | 2009-01-15 13:40:05 +0000 |
---|---|---|
committer | andy wharmby <wharmby@php.net> | 2009-01-15 13:40:05 +0000 |
commit | 1de33abc50532030814b9434cdc91227d0cc17f4 (patch) | |
tree | af9aac62aeb6f0c7481789460eee6866bf1e6fed | |
parent | 8075f2e4b7ea0371eb185478bcd1910c97f78f0b (diff) | |
download | php-git-1de33abc50532030814b9434cdc91227d0cc17f4.tar.gz |
New test for strripos() string function. All tests checked on Windows, Linux and Linux 64 bit.
-rw-r--r-- | ext/standard/tests/strings/strripos_basic1.phpt | 51 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_basic2.phpt | 64 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_error.phpt | 34 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_variation1.phpt | 254 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_variation2.phpt | 260 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_variation3.phpt | 59 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_variation4.phpt | 41 | ||||
-rw-r--r-- | ext/standard/tests/strings/strripos_variation5.phpt | 34 |
8 files changed, 797 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/strripos_basic1.phpt b/ext/standard/tests/strings/strripos_basic1.phpt new file mode 100644 index 0000000000..759c23114e --- /dev/null +++ b/ext/standard/tests/strings/strripos_basic1.phpt @@ -0,0 +1,51 @@ +--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=== diff --git a/ext/standard/tests/strings/strripos_basic2.phpt b/ext/standard/tests/strings/strripos_basic2.phpt new file mode 100644 index 0000000000..d4a1a73f06 --- /dev/null +++ b/ext/standard/tests/strings/strripos_basic2.phpt @@ -0,0 +1,64 @@ +--TEST-- +Test strripos() function : basic functionality - with all 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, 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=== diff --git a/ext/standard/tests/strings/strripos_error.phpt b/ext/standard/tests/strings/strripos_error.phpt new file mode 100644 index 0000000000..59d592681a --- /dev/null +++ b/ext/standard/tests/strings/strripos_error.phpt @@ -0,0 +1,34 @@ +--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=== diff --git a/ext/standard/tests/strings/strripos_variation1.phpt b/ext/standard/tests/strings/strripos_variation1.phpt new file mode 100644 index 0000000000..b8a8943d09 --- /dev/null +++ b/ext/standard/tests/strings/strripos_variation1.phpt @@ -0,0 +1,254 @@ +--TEST-- +Test strripos() function : usage variations - double quoted strings for 'haystack' & 'needle' 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 +*/ + +/* 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=== diff --git a/ext/standard/tests/strings/strripos_variation2.phpt b/ext/standard/tests/strings/strripos_variation2.phpt new file mode 100644 index 0000000000..d8caf73742 --- /dev/null +++ b/ext/standard/tests/strings/strripos_variation2.phpt @@ -0,0 +1,260 @@ +--TEST-- +Test strripos() function : usage variations - single quoted strings for 'haystack' & 'needle' 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 +*/ + +/* 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=== diff --git a/ext/standard/tests/strings/strripos_variation3.phpt b/ext/standard/tests/strings/strripos_variation3.phpt new file mode 100644 index 0000000000..c380106341 --- /dev/null +++ b/ext/standard/tests/strings/strripos_variation3.phpt @@ -0,0 +1,59 @@ +--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=== diff --git a/ext/standard/tests/strings/strripos_variation4.phpt b/ext/standard/tests/strings/strripos_variation4.phpt new file mode 100644 index 0000000000..c355330cab --- /dev/null +++ b/ext/standard/tests/strings/strripos_variation4.phpt @@ -0,0 +1,41 @@ +--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=== diff --git a/ext/standard/tests/strings/strripos_variation5.phpt b/ext/standard/tests/strings/strripos_variation5.phpt new file mode 100644 index 0000000000..5f6df79903 --- /dev/null +++ b/ext/standard/tests/strings/strripos_variation5.phpt @@ -0,0 +1,34 @@ +--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=== |