diff options
author | Raghubansh Kumar <kraghuba@php.net> | 2007-09-06 04:01:25 +0000 |
---|---|---|
committer | Raghubansh Kumar <kraghuba@php.net> | 2007-09-06 04:01:25 +0000 |
commit | af40765f8fe491b1c14a13d1bf8e91279ed62523 (patch) | |
tree | 1ce278d71555ea3d4f94d88469f8da1e2dc0223d | |
parent | 49c91f6e33b183fe2207110d244009ef21302a4a (diff) | |
download | php-git-af40765f8fe491b1c14a13d1bf8e91279ed62523.tar.gz |
New testcases for addslashes() function
-rw-r--r-- | ext/standard/tests/strings/addslashes_basic.phpt | 39 | ||||
-rw-r--r-- | ext/standard/tests/strings/addslashes_error.phpt | 44 | ||||
-rw-r--r-- | ext/standard/tests/strings/addslashes_variation1.phpt | 170 | ||||
-rw-r--r-- | ext/standard/tests/strings/addslashes_variation2.phpt | 195 | ||||
-rw-r--r-- | ext/standard/tests/strings/addslashes_variation3.phpt | 198 |
5 files changed, 646 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/addslashes_basic.phpt b/ext/standard/tests/strings/addslashes_basic.phpt new file mode 100644 index 0000000000..6ed1210670 --- /dev/null +++ b/ext/standard/tests/strings/addslashes_basic.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test addslashes() function : basic functionality +--INI-- +--FILE-- +<?php +/* Prototype : string addslashes ( string $str ) + * Description: Returns a string with backslashes before characters (single quotes, double quote, + * backslash and nul character) that need to be quoted in database queries etc. + * Source code: ext/standard/string.c +*/ + +/* + * Testing addslashes() with strings containing characters that can be prefixed with backslash + * by the function +*/ + +echo "*** Testing addslashes() : basic functionality ***\n"; + +// Initialize all required variables +$str_array = array( "How's everybody", // string containing single quote + 'Are you "JOHN"?', // string with double quotes + 'c:\php\addslashes', // string with backslashes + "hello\0world" // string with nul character + ); + +// Calling addslashes() with all arguments +foreach( $str_array as $str ) { + var_dump( addslashes($str) ); +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing addslashes() : basic functionality *** +string(16) "How\'s everybody" +string(17) "Are you \"JOHN\"?" +string(19) "c:\\php\\addslashes" +string(12) "hello\0world" +Done
\ No newline at end of file diff --git a/ext/standard/tests/strings/addslashes_error.phpt b/ext/standard/tests/strings/addslashes_error.phpt new file mode 100644 index 0000000000..b512716934 --- /dev/null +++ b/ext/standard/tests/strings/addslashes_error.phpt @@ -0,0 +1,44 @@ +--TEST-- +Test addslashes() function : error conditions +--INI-- +--FILE-- +<?php +/* Prototype : string addslashes ( string $str ) + * Description: Returns a string with backslashes before characters that need to be quoted in database queries etc. + * Source code: ext/standard/string.c +*/ + +/* + * Testing addslashes() for error conditions +*/ + +echo "*** Testing addslashes() : error conditions ***\n"; + +// Zero argument +echo "\n-- Testing addslashes() function with Zero arguments --\n"; +var_dump( addslashes() ); + +// More than expected number of arguments +echo "\n-- Testing addslashes() function with more than expected no. of arguments --\n"; +$str = '"hello"\"world"'; +$extra_arg = 10; + +var_dump( addslashes($str, $extra_arg) ); +var_dump( $str ); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing addslashes() : error conditions *** + +-- Testing addslashes() function with Zero arguments -- + +Warning: Wrong parameter count for addslashes() in %s on line %d +NULL + +-- Testing addslashes() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for addslashes() in %s on line %d +NULL +string(15) ""hello"\"world"" +Done diff --git a/ext/standard/tests/strings/addslashes_variation1.phpt b/ext/standard/tests/strings/addslashes_variation1.phpt new file mode 100644 index 0000000000..01ef78176e --- /dev/null +++ b/ext/standard/tests/strings/addslashes_variation1.phpt @@ -0,0 +1,170 @@ +--TEST-- +Test addslashes() function : usage variations - non-string type argument +--INI-- +--FILE-- +<?php +/* Prototype : string addslashes ( string $str ) + * Description: Returns a string with backslashes before characters that need to be quoted in database queries etc. + * Source code: ext/standard/string.c +*/ + +/* + * Test addslashes() with non-string type argument such as int, float, etc +*/ + +echo "*** Testing addslashes() : with non-string type argument ***\n"; +// initialize all required variables + +// get an unset variable +$unset_var = 'string_val'; +unset($unset_var); + +// declaring a class +class sample { + public function __toString() { + return "obj'ct"; + } +} + +// Defining 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, + + // empty string + "", + '', + + // undefined variable + $undefined_var, + + // unset variable + $unset_var, + + // objects + new sample(), + + // resource + $file_handle, + + NULL, + null +); + + +// loop through each element of the array and check the working of addslashes() +// when $str arugment is supplied with different values +echo "\n--- Testing addslashes() by supplying different values for 'str' argument ---\n"; +$counter = 1; +for($index = 0; $index < count($values); $index ++) { + echo "-- Iteration $counter --\n"; + $str = $values [$index]; + + var_dump( addslashes($str) ); + + $counter ++; +} + +// closing the file +fclose($file_handle); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing addslashes() : with non-string type argument *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d + +--- Testing addslashes() by supplying different values for 'str' argument --- +-- Iteration 1 -- +string(1) "0" +-- Iteration 2 -- +string(1) "1" +-- Iteration 3 -- +string(5) "12345" +-- Iteration 4 -- +string(5) "-2345" +-- Iteration 5 -- +string(4) "10.5" +-- Iteration 6 -- +string(5) "-10.5" +-- Iteration 7 -- +string(12) "105000000000" +-- Iteration 8 -- +string(7) "1.06E-9" +-- Iteration 9 -- +string(3) "0.5" +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 15 -- +string(1) "1" +-- Iteration 16 -- +string(0) "" +-- Iteration 17 -- +string(1) "1" +-- Iteration 18 -- +string(0) "" +-- Iteration 19 -- +string(0) "" +-- Iteration 20 -- +string(0) "" +-- Iteration 21 -- +string(0) "" +-- Iteration 22 -- +string(0) "" +-- Iteration 23 -- +string(7) "obj\'ct" +-- Iteration 24 -- +string(14) "Resource id #%d" +-- Iteration 25 -- +string(0) "" +-- Iteration 26 -- +string(0) "" +Done diff --git a/ext/standard/tests/strings/addslashes_variation2.phpt b/ext/standard/tests/strings/addslashes_variation2.phpt new file mode 100644 index 0000000000..285d9058af --- /dev/null +++ b/ext/standard/tests/strings/addslashes_variation2.phpt @@ -0,0 +1,195 @@ +--TEST-- +Test addslashes() function : usage variations - strings with characters to be backslashed +--INI-- +--FILE-- +<?php +/* Prototype : string addslashes ( string $str ) + * Description: Returns a string with backslashes before characters that need to be quoted in database queries etc. + * Source code: ext/standard/string.c +*/ + +/* + * Test addslashes() with various strings containing characters thats can be backslashed +*/ + +echo "*** Testing addslashes() : with various strings containing characters to be backslashed ***\n"; + +// initialising a heredoc string +$heredoc_string = <<<EOT +This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string +EOT; + +$heredoc_null_string =<<<EOT +EOT; + +// initialising the string array + +$str_array = array( + // string without any characters that can be backslashed + 'Hello world', + + // string with single quotes + "how're you doing?", + "don't disturb u'r neighbours", + "don't disturb u'r neighbours''", + '', + '\'', + "'", + + // string with double quotes + 'he said, "he will be on leave"', + 'he said, ""he will be on leave"', + '"""PHP"""', + "", + "\"", + '"', + "hello\"", + + // string with backslash characters + 'Is your name Ram\Krishna?', + '\\0.0.0.0', + 'c:\php\testcase\addslashes', + '\\', + + // string with nul characters + 'hello'.chr(0).'world', + chr(0).'hello'.chr(0), + chr(0).chr(0).'hello', + chr(0), + + // mixed strings + "'\\0.0.0.0'", + "'\\0.0.0.0'".chr(0), + chr(0)."'c:\php\'", + '"\\0.0.0.0"', + '"c:\php\"'.chr(0)."'", + '"hello"'."'world'".chr(0).'//', + + // string with hexadecimal number + "0xABCDEF0123456789", + "\x00", + '!@#$%&*@$%#&/;:,<>', + "hello\x00world", + + // heredoc strings + $heredoc_string, + $heredoc_null_string + ); + +$count = 1; +// looping to test for all strings in $str_array +foreach( $str_array as $str ) { + echo "\n-- Iteration $count --\n"; + var_dump( addslashes($str) ); + $count ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing addslashes() : with various strings containing characters to be backslashed *** + +-- Iteration 1 -- +string(11) "Hello world" + +-- Iteration 2 -- +string(18) "how\'re you doing?" + +-- Iteration 3 -- +string(30) "don\'t disturb u\'r neighbours" + +-- Iteration 4 -- +string(34) "don\'t disturb u\'r neighbours\'\'" + +-- Iteration 5 -- +string(0) "" + +-- Iteration 6 -- +string(2) "\'" + +-- Iteration 7 -- +string(2) "\'" + +-- Iteration 8 -- +string(32) "he said, \"he will be on leave\"" + +-- Iteration 9 -- +string(34) "he said, \"\"he will be on leave\"" + +-- Iteration 10 -- +string(15) "\"\"\"PHP\"\"\"" + +-- Iteration 11 -- +string(0) "" + +-- Iteration 12 -- +string(2) "\"" + +-- Iteration 13 -- +string(2) "\"" + +-- Iteration 14 -- +string(7) "hello\"" + +-- Iteration 15 -- +string(26) "Is your name Ram\\Krishna?" + +-- Iteration 16 -- +string(9) "\\0.0.0.0" + +-- Iteration 17 -- +string(29) "c:\\php\\testcase\\addslashes" + +-- Iteration 18 -- +string(2) "\\" + +-- Iteration 19 -- +string(12) "hello\0world" + +-- Iteration 20 -- +string(9) "\0hello\0" + +-- Iteration 21 -- +string(9) "\0\0hello" + +-- Iteration 22 -- +string(2) "\0" + +-- Iteration 23 -- +string(13) "\'\\0.0.0.0\'" + +-- Iteration 24 -- +string(15) "\'\\0.0.0.0\'\0" + +-- Iteration 25 -- +string(15) "\0\'c:\\php\\\'" + +-- Iteration 26 -- +string(13) "\"\\0.0.0.0\"" + +-- Iteration 27 -- +string(17) "\"c:\\php\\\"\0\'" + +-- Iteration 28 -- +string(22) "\"hello\"\'world\'\0//" + +-- Iteration 29 -- +string(18) "0xABCDEF0123456789" + +-- Iteration 30 -- +string(2) "\0" + +-- Iteration 31 -- +string(18) "!@#$%&*@$%#&/;:,<>" + +-- Iteration 32 -- +string(12) "hello\0world" + +-- Iteration 33 -- +string(73) "This is line 1 of \'heredoc\' string +This is line 2 of \"heredoc\" string" + +-- Iteration 34 -- +string(0) "" +Done
\ No newline at end of file diff --git a/ext/standard/tests/strings/addslashes_variation3.phpt b/ext/standard/tests/strings/addslashes_variation3.phpt new file mode 100644 index 0000000000..72b84823b1 --- /dev/null +++ b/ext/standard/tests/strings/addslashes_variation3.phpt @@ -0,0 +1,198 @@ +--TEST-- +Test addslashes() function : usage variations - with magic_quotes_sybase directive ON +--INI-- +--FILE-- +<?php +/* Prototype : string addslashes ( string $str ) + * Description: Returns a string with backslashes before characters that need to be quoted in database queries etc. + * Source code: ext/standard/string.c +*/ + +/* + * Test addslashes() with PHP directive magic_quotes_sybase set ON +*/ + +echo "*** Testing addslashes() : with php directive magic_quotes_sybase set ON ***\n"; + +// setting ON the php directive magic_quotes_sybase +var_dump( ini_set("magic_quotes_sybase", "1") ); + +// initialising a heredoc string +$heredoc_string = <<<EOT +This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string +EOT; + +$heredoc_null_string =<<<EOT +EOT; + +// initialising the string array +$str_array = array( + // string without any characters that can be backslashed + 'Hello world', + + // string with single quotes + "how're you doing?", + "don't disturb u'r neighbours", + "don't disturb u'r neighbours''", + '', + '\'', + "'", + + // string with double quotes + 'he said, "he will be on leave"', + 'he said, ""he will be on leave"', + '"""PHP"""', + "", + "\"", + '"', + "hello\"", + + // string with backslash characters + 'Is your name Ram\Krishna?', + '\\0.0.0.0', + 'c:\php\testcase\addslashes', + '\\', + + // string with nul characters + 'hello'.chr(0).'world', + chr(0).'hello'.chr(0), + chr(0).chr(0).'hello', + chr(0), + + // mixed strings + "'\\0.0.0.0'", + "'\\0.0.0.0'".chr(0), + chr(0)."'c:\php\'", + '"\\0.0.0.0"', + '"c:\php\"'.chr(0)."'", + '"hello"'."'world'".chr(0).'//', + + // string with hexadecimal number + "0xABCDEF0123456789", + "\xabcdef0123456789", + '!@#$%&*@$%#&/;:,<>', + "hello\x00world", + + // heredoc strings + $heredoc_string, + $heredoc_null_string + ); + +$count = 1; +// looping to test for all strings in $str_array +foreach( $str_array as $str ) { + echo "\n-- Iteration $count --\n"; + var_dump( addslashes($str) ); + $count ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing addslashes() : with php directive magic_quotes_sybase set ON *** +string(1) "0" + +-- Iteration 1 -- +string(11) "Hello world" + +-- Iteration 2 -- +string(18) "how''re you doing?" + +-- Iteration 3 -- +string(30) "don''t disturb u''r neighbours" + +-- Iteration 4 -- +string(34) "don''t disturb u''r neighbours''''" + +-- Iteration 5 -- +string(0) "" + +-- Iteration 6 -- +string(2) "''" + +-- Iteration 7 -- +string(2) "''" + +-- Iteration 8 -- +string(30) "he said, "he will be on leave"" + +-- Iteration 9 -- +string(31) "he said, ""he will be on leave"" + +-- Iteration 10 -- +string(9) """"PHP"""" + +-- Iteration 11 -- +string(0) "" + +-- Iteration 12 -- +string(1) """ + +-- Iteration 13 -- +string(1) """ + +-- Iteration 14 -- +string(6) "hello"" + +-- Iteration 15 -- +string(25) "Is your name Ram\Krishna?" + +-- Iteration 16 -- +string(8) "\0.0.0.0" + +-- Iteration 17 -- +string(26) "c:\php\testcase\addslashes" + +-- Iteration 18 -- +string(1) "\" + +-- Iteration 19 -- +string(12) "hello\0world" + +-- Iteration 20 -- +string(9) "\0hello\0" + +-- Iteration 21 -- +string(9) "\0\0hello" + +-- Iteration 22 -- +string(2) "\0" + +-- Iteration 23 -- +string(12) "''\0.0.0.0''" + +-- Iteration 24 -- +string(14) "''\0.0.0.0''\0" + +-- Iteration 25 -- +string(13) "\0''c:\php\''" + +-- Iteration 26 -- +string(10) ""\0.0.0.0"" + +-- Iteration 27 -- +string(13) ""c:\php\"\0''" + +-- Iteration 28 -- +string(20) ""hello"''world''\0//" + +-- Iteration 29 -- +string(18) "0xABCDEF0123456789" + +-- Iteration 30 -- +string(15) "«cdef0123456789" + +-- Iteration 31 -- +string(18) "!@#$%&*@$%#&/;:,<>" + +-- Iteration 32 -- +string(12) "hello\0world" + +-- Iteration 33 -- +string(71) "This is line 1 of ''heredoc'' string +This is line 2 of "heredoc" string" + +-- Iteration 34 -- +string(0) "" +Done
\ No newline at end of file |