kraghuba Fri Sep 7 14:03:33 2007 UTC Modified files: /php-src/ext/standard/tests/strings stripslashes_variation1.phpt stripslashes_variation2.phpt stripslashes_variation3.phpt stripslashes_basic.phpt stripslashes_variation4.phpt stripslashes_error.phpt Log: New testcases for stripslashes() function
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_variation1.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_variation1.phpt diff -u /dev/null php-src/ext/standard/tests/strings/stripslashes_variation1.phpt:1.2 --- /dev/null Fri Sep 7 14:03:33 2007 +++ php-src/ext/standard/tests/strings/stripslashes_variation1.phpt Fri Sep 7 14:03:33 2007 @@ -0,0 +1,242 @@ +--TEST-- +Test stripslashes() function : usage variations - non-string type argument +--FILE-- +<?php +/* Prototype : string stripslashes ( string $str ) + * Description: Returns an un-quoted string + * Source code: ext/standard/string.c +*/ + +/* + * Test stripslashes() with non-string type argument such as int, float, etc +*/ + +echo "*** Testing stripslashes() : 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 values + NULL, + null +); + + +// loop through each element of the array and check the working of stripslashes() +// when $str arugment is supplied with different values +echo "\n--- Testing stripslashes() 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( stripslashes($str) ); + + $counter ++; +} + +// closing the file +fclose($file_handle); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing stripslashes() : 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 stripslashes() 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(6) "obj'ct" +-- Iteration 24 -- +string(14) "Resource id #%d" +-- Iteration 25 -- +string(0) "" +-- Iteration 26 -- +string(0) "" +Done + +--UEXPECTF-- +*** Testing stripslashes() : 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 stripslashes() by supplying different values for 'str' argument --- +-- Iteration 1 -- +unicode(1) "0" +-- Iteration 2 -- +unicode(1) "1" +-- Iteration 3 -- +unicode(5) "12345" +-- Iteration 4 -- +unicode(5) "-2345" +-- Iteration 5 -- +unicode(4) "10.5" +-- Iteration 6 -- +unicode(5) "-10.5" +-- Iteration 7 -- +unicode(12) "105000000000" +-- Iteration 8 -- +unicode(7) "1.06E-9" +-- Iteration 9 -- +unicode(3) "0.5" +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +unicode(5) "Array" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +unicode(5) "Array" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +unicode(5) "Array" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +unicode(5) "Array" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +unicode(5) "Array" +-- Iteration 15 -- +unicode(1) "1" +-- Iteration 16 -- +unicode(0) "" +-- Iteration 17 -- +unicode(1) "1" +-- Iteration 18 -- +unicode(0) "" +-- Iteration 19 -- +unicode(0) "" +-- Iteration 20 -- +unicode(0) "" +-- Iteration 21 -- +unicode(0) "" +-- Iteration 22 -- +unicode(0) "" +-- Iteration 23 -- +unicode(6) "obj'ct" +-- Iteration 24 -- +unicode(14) "Resource id #5" +-- Iteration 25 -- +unicode(0) "" +-- Iteration 26 -- +unicode(0) "" +Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_variation2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_variation2.phpt diff -u /dev/null php-src/ext/standard/tests/strings/stripslashes_variation2.phpt:1.2 --- /dev/null Fri Sep 7 14:03:33 2007 +++ php-src/ext/standard/tests/strings/stripslashes_variation2.phpt Fri Sep 7 14:03:33 2007 @@ -0,0 +1,561 @@ +--TEST-- +Test stripslashes() function : usage variations - un-quote strings quoted with addslashes() +--FILE-- +<?php +/* Prototype : string stripslashes ( string $str ) + * Description: Returns an un-quoted string + * Source code: ext/standard/string.c +*/ + +/* + * Test stripslashes() with various strings containing characters thats can be backslashed. + * First adding slashes using addslashes() and then removing the slashes using stripslashes() +*/ + +echo "*** Testing stripslashes() : with various strings containing backslashed characters ***\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; +$heredoc_string_only_backslash =<<<EOT +\ +EOT; +$heredoc_string_only_single_quote =<<<EOT +' +EOT; +$heredoc_string_only_double_quote =<<<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''", + '', + '\'', + "'", + $heredoc_string_only_single_quote, + + // string with double quotes + 'he said, "he will be on leave"', + 'he said, ""he will be on leave"', + '"""PHP"""', + "", + "\"", + '"', + "hello\"", + $heredoc_string_only_double_quote, + + // string with backslash characters + 'Is your name Ram\Krishna?', + '\\0.0.0.0', + 'c:\php\testcase\stripslashes', + '\\', + $heredoc_string_only_backslash, + + // 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", + '[EMAIL PROTECTED]&[EMAIL PROTECTED]&/;:,<>', + "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"; + $str_addslashes = addslashes($str); + var_dump("The string after addslashes is:", $str_addslashes); + $str_stripslashes = stripslashes($str_addslashes); + var_dump("The string after stripslashes is:", $str_stripslashes); + if( strcmp($str, $str_stripslashes) != 0 ) + echo "\nError: Original string and string from stripslash() donot match\n"; + $count ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing stripslashes() : with various strings containing backslashed characters *** + +-- Iteration 1 -- +string(31) "The string after addslashes is:" +string(11) "Hello world" +string(33) "The string after stripslashes is:" +string(11) "Hello world" + +-- Iteration 2 -- +string(31) "The string after addslashes is:" +string(18) "how\'re you doing?" +string(33) "The string after stripslashes is:" +string(17) "how're you doing?" + +-- Iteration 3 -- +string(31) "The string after addslashes is:" +string(30) "don\'t disturb u\'r neighbours" +string(33) "The string after stripslashes is:" +string(28) "don't disturb u'r neighbours" + +-- Iteration 4 -- +string(31) "The string after addslashes is:" +string(34) "don\'t disturb u\'r neighbours\'\'" +string(33) "The string after stripslashes is:" +string(30) "don't disturb u'r neighbours''" + +-- Iteration 5 -- +string(31) "The string after addslashes is:" +string(0) "" +string(33) "The string after stripslashes is:" +string(0) "" + +-- Iteration 6 -- +string(31) "The string after addslashes is:" +string(2) "\'" +string(33) "The string after stripslashes is:" +string(1) "'" + +-- Iteration 7 -- +string(31) "The string after addslashes is:" +string(2) "\'" +string(33) "The string after stripslashes is:" +string(1) "'" + +-- Iteration 8 -- +string(31) "The string after addslashes is:" +string(2) "\'" +string(33) "The string after stripslashes is:" +string(1) "'" + +-- Iteration 9 -- +string(31) "The string after addslashes is:" +string(32) "he said, \"he will be on leave\"" +string(33) "The string after stripslashes is:" +string(30) "he said, "he will be on leave"" + +-- Iteration 10 -- +string(31) "The string after addslashes is:" +string(34) "he said, \"\"he will be on leave\"" +string(33) "The string after stripslashes is:" +string(31) "he said, ""he will be on leave"" + +-- Iteration 11 -- +string(31) "The string after addslashes is:" +string(15) "\"\"\"PHP\"\"\"" +string(33) "The string after stripslashes is:" +string(9) """"PHP"""" + +-- Iteration 12 -- +string(31) "The string after addslashes is:" +string(0) "" +string(33) "The string after stripslashes is:" +string(0) "" + +-- Iteration 13 -- +string(31) "The string after addslashes is:" +string(2) "\"" +string(33) "The string after stripslashes is:" +string(1) """ + +-- Iteration 14 -- +string(31) "The string after addslashes is:" +string(2) "\"" +string(33) "The string after stripslashes is:" +string(1) """ + +-- Iteration 15 -- +string(31) "The string after addslashes is:" +string(7) "hello\"" +string(33) "The string after stripslashes is:" +string(6) "hello"" + +-- Iteration 16 -- +string(31) "The string after addslashes is:" +string(2) "\"" +string(33) "The string after stripslashes is:" +string(1) """ + +-- Iteration 17 -- +string(31) "The string after addslashes is:" +string(26) "Is your name Ram\\Krishna?" +string(33) "The string after stripslashes is:" +string(25) "Is your name Ram\Krishna?" + +-- Iteration 18 -- +string(31) "The string after addslashes is:" +string(9) "\\0.0.0.0" +string(33) "The string after stripslashes is:" +string(8) "\0.0.0.0" + +-- Iteration 19 -- +string(31) "The string after addslashes is:" +string(31) "c:\\php\\testcase\\stripslashes" +string(33) "The string after stripslashes is:" +string(28) "c:\php\testcase\stripslashes" + +-- Iteration 20 -- +string(31) "The string after addslashes is:" +string(2) "\\" +string(33) "The string after stripslashes is:" +string(1) "\" + +-- Iteration 21 -- +string(31) "The string after addslashes is:" +string(2) "\0" +string(33) "The string after stripslashes is:" +string(1) "+ +-- Iteration 22 -- +string(31) "The string after addslashes is:" +string(12) "hello\0world" +string(33) "The string after stripslashes is:" +string(11) "hello+ +-- Iteration 23 -- +string(31) "The string after addslashes is:" +string(9) "\0hello\0" +string(33) "The string after stripslashes is:" +string(7) "+ +-- Iteration 24 -- +string(31) "The string after addslashes is:" +string(9) "\0\0hello" +string(33) "The string after stripslashes is:" +string(7) "+ +-- Iteration 25 -- +string(31) "The string after addslashes is:" +string(2) "\0" +string(33) "The string after stripslashes is:" +string(1) "+ +-- Iteration 26 -- +string(31) "The string after addslashes is:" +string(13) "\'\\0.0.0.0\'" +string(33) "The string after stripslashes is:" +string(10) "'\0.0.0.0'" + +-- Iteration 27 -- +string(31) "The string after addslashes is:" +string(15) "\'\\0.0.0.0\'\0" +string(33) "The string after stripslashes is:" +string(11) "'\0.0.0.0'+ +-- Iteration 28 -- +string(31) "The string after addslashes is:" +string(15) "\0\'c:\\php\\\'" +string(33) "The string after stripslashes is:" +string(10) "+ +-- Iteration 29 -- +string(31) "The string after addslashes is:" +string(13) "\"\\0.0.0.0\"" +string(33) "The string after stripslashes is:" +string(10) ""\0.0.0.0"" + +-- Iteration 30 -- +string(31) "The string after addslashes is:" +string(17) "\"c:\\php\\\"\0\'" +string(33) "The string after stripslashes is:" +string(11) ""c:\php\"+ +-- Iteration 31 -- +string(31) "The string after addslashes is:" +string(22) "\"hello\"\'world\'\0//" +string(33) "The string after stripslashes is:" +string(17) ""hello"'world'+ +-- Iteration 32 -- +string(31) "The string after addslashes is:" +string(18) "0xABCDEF0123456789" +string(33) "The string after stripslashes is:" +string(18) "0xABCDEF0123456789" + +-- Iteration 33 -- +string(31) "The string after addslashes is:" +string(2) "\0" +string(33) "The string after stripslashes is:" +string(1) "+ +-- Iteration 34 -- +string(31) "The string after addslashes is:" +string(18) "[EMAIL PROTECTED]&[EMAIL PROTECTED]&/;:,<>" +string(33) "The string after stripslashes is:" +string(18) "[EMAIL PROTECTED]&[EMAIL PROTECTED]&/;:,<>" + +-- Iteration 35 -- +string(31) "The string after addslashes is:" +string(12) "hello\0world" +string(33) "The string after stripslashes is:" +string(11) "hello+ +-- Iteration 36 -- +string(31) "The string after addslashes is:" +string(73) "This is line 1 of \'heredoc\' string +This is line 2 of \"heredoc\" string" +string(33) "The string after stripslashes is:" +string(69) "This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string" + +-- Iteration 37 -- +string(31) "The string after addslashes is:" +string(0) "" +string(33) "The string after stripslashes is:" +string(0) "" +Done + +--UEXPECTF-- +*** Testing stripslashes() : with various strings containing backslashed characters *** + +-- Iteration 1 -- +unicode(31) "The string after addslashes is:" +unicode(11) "Hello world" +unicode(33) "The string after stripslashes is:" +unicode(11) "Hello world" + +-- Iteration 2 -- +unicode(31) "The string after addslashes is:" +unicode(18) "how\'re you doing?" +unicode(33) "The string after stripslashes is:" +unicode(17) "how're you doing?" + +-- Iteration 3 -- +unicode(31) "The string after addslashes is:" +unicode(30) "don\'t disturb u\'r neighbours" +unicode(33) "The string after stripslashes is:" +unicode(28) "don't disturb u'r neighbours" + +-- Iteration 4 -- +unicode(31) "The string after addslashes is:" +unicode(34) "don\'t disturb u\'r neighbours\'\'" +unicode(33) "The string after stripslashes is:" +unicode(30) "don't disturb u'r neighbours''" + +-- Iteration 5 -- +unicode(31) "The string after addslashes is:" +unicode(0) "" +unicode(33) "The string after stripslashes is:" +unicode(0) "" + +-- Iteration 6 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\'" +unicode(33) "The string after stripslashes is:" +unicode(1) "'" + +-- Iteration 7 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\'" +unicode(33) "The string after stripslashes is:" +unicode(1) "'" + +-- Iteration 8 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\'" +unicode(33) "The string after stripslashes is:" +unicode(1) "'" + +-- Iteration 9 -- +unicode(31) "The string after addslashes is:" +unicode(32) "he said, \"he will be on leave\"" +unicode(33) "The string after stripslashes is:" +unicode(30) "he said, "he will be on leave"" + +-- Iteration 10 -- +unicode(31) "The string after addslashes is:" +unicode(34) "he said, \"\"he will be on leave\"" +unicode(33) "The string after stripslashes is:" +unicode(31) "he said, ""he will be on leave"" + +-- Iteration 11 -- +unicode(31) "The string after addslashes is:" +unicode(15) "\"\"\"PHP\"\"\"" +unicode(33) "The string after stripslashes is:" +unicode(9) """"PHP"""" + +-- Iteration 12 -- +unicode(31) "The string after addslashes is:" +unicode(0) "" +unicode(33) "The string after stripslashes is:" +unicode(0) "" + +-- Iteration 13 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\"" +unicode(33) "The string after stripslashes is:" +unicode(1) """ + +-- Iteration 14 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\"" +unicode(33) "The string after stripslashes is:" +unicode(1) """ + +-- Iteration 15 -- +unicode(31) "The string after addslashes is:" +unicode(7) "hello\"" +unicode(33) "The string after stripslashes is:" +unicode(6) "hello"" + +-- Iteration 16 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\"" +unicode(33) "The string after stripslashes is:" +unicode(1) """ + +-- Iteration 17 -- +unicode(31) "The string after addslashes is:" +unicode(26) "Is your name Ram\\Krishna?" +unicode(33) "The string after stripslashes is:" +unicode(25) "Is your name Ram\Krishna?" + +-- Iteration 18 -- +unicode(31) "The string after addslashes is:" +unicode(9) "\\0.0.0.0" +unicode(33) "The string after stripslashes is:" +unicode(8) "\0.0.0.0" + +-- Iteration 19 -- +unicode(31) "The string after addslashes is:" +unicode(31) "c:\\php\\testcase\\stripslashes" +unicode(33) "The string after stripslashes is:" +unicode(28) "c:\php\testcase\stripslashes" + +-- Iteration 20 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\\" +unicode(33) "The string after stripslashes is:" +unicode(1) "\" + +-- Iteration 21 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\0" +unicode(33) "The string after stripslashes is:" +unicode(1) "+ +-- Iteration 22 -- +unicode(31) "The string after addslashes is:" +unicode(12) "hello\0world" +unicode(33) "The string after stripslashes is:" +unicode(11) "hello+ +-- Iteration 23 -- +unicode(31) "The string after addslashes is:" +unicode(9) "\0hello\0" +unicode(33) "The string after stripslashes is:" +unicode(7) "+ +-- Iteration 24 -- +unicode(31) "The string after addslashes is:" +unicode(9) "\0\0hello" +unicode(33) "The string after stripslashes is:" +unicode(7) "+ +-- Iteration 25 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\0" +unicode(33) "The string after stripslashes is:" +unicode(1) "+ +-- Iteration 26 -- +unicode(31) "The string after addslashes is:" +unicode(13) "\'\\0.0.0.0\'" +unicode(33) "The string after stripslashes is:" +unicode(10) "'\0.0.0.0'" + +-- Iteration 27 -- +unicode(31) "The string after addslashes is:" +unicode(15) "\'\\0.0.0.0\'\0" +unicode(33) "The string after stripslashes is:" +unicode(11) "'\0.0.0.0'+ +-- Iteration 28 -- +unicode(31) "The string after addslashes is:" +unicode(15) "\0\'c:\\php\\\'" +unicode(33) "The string after stripslashes is:" +unicode(10) "+ +-- Iteration 29 -- +unicode(31) "The string after addslashes is:" +unicode(13) "\"\\0.0.0.0\"" +unicode(33) "The string after stripslashes is:" +unicode(10) ""\0.0.0.0"" + +-- Iteration 30 -- +unicode(31) "The string after addslashes is:" +unicode(17) "\"c:\\php\\\"\0\'" +unicode(33) "The string after stripslashes is:" +unicode(11) ""c:\php\"+ +-- Iteration 31 -- +unicode(31) "The string after addslashes is:" +unicode(22) "\"hello\"\'world\'\0//" +unicode(33) "The string after stripslashes is:" +unicode(17) ""hello"'world'+ +-- Iteration 32 -- +unicode(31) "The string after addslashes is:" +unicode(18) "0xABCDEF0123456789" +unicode(33) "The string after stripslashes is:" +unicode(18) "0xABCDEF0123456789" + +-- Iteration 33 -- +unicode(31) "The string after addslashes is:" +unicode(2) "\0" +unicode(33) "The string after stripslashes is:" +unicode(1) "+ +-- Iteration 34 -- +unicode(31) "The string after addslashes is:" +unicode(18) "[EMAIL PROTECTED]&[EMAIL PROTECTED]&/;:,<>" +unicode(33) "The string after stripslashes is:" +unicode(18) "[EMAIL PROTECTED]&[EMAIL PROTECTED]&/;:,<>" + +-- Iteration 35 -- +unicode(31) "The string after addslashes is:" +unicode(12) "hello\0world" +unicode(33) "The string after stripslashes is:" +unicode(11) "hello+ +-- Iteration 36 -- +unicode(31) "The string after addslashes is:" +unicode(73) "This is line 1 of \'heredoc\' string +This is line 2 of \"heredoc\" string" +unicode(33) "The string after stripslashes is:" +unicode(69) "This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string" + +-- Iteration 37 -- +unicode(31) "The string after addslashes is:" +unicode(0) "" +unicode(33) "The string after stripslashes is:" +unicode(0) "" +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_variation3.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_variation3.phpt diff -u /dev/null php-src/ext/standard/tests/strings/stripslashes_variation3.phpt:1.2 --- /dev/null Fri Sep 7 14:03:33 2007 +++ php-src/ext/standard/tests/strings/stripslashes_variation3.phpt Fri Sep 7 14:03:33 2007 @@ -0,0 +1,188 @@ +--TEST-- +Test stripslashes() function : usage variations - strings with newline and tab characters +--FILE-- +<?php +/* Prototype : string stripslashes ( string $str ) + * Description: Returns an un-quoted string + * Source code: ext/standard/string.c +*/ + +/* + * Test stripslashes() with strings containing newline and tab characters. +*/ + +echo "*** Testing stripslashes() : with strings containing newline and tab characters ***\n"; + +// initialising heredoc strings +$heredoc_string_with_newline = <<<EOT +This is line 1 \nof 'heredoc' string +This is line 2 \nof "heredoc" string +EOT; + +$heredoc_string_with_tab = <<<EOT +This is line 1 \tof 'heredoc' string +This is line 2 \tof "heredoc" string +EOT; +// initialising the string array + +$str_array = array( + // string with newline character + "\n", + "\\n", + "Hello \nworld", + "Hello \\nworld", + '\n', + '\\n', + 'Hello \nworld', + 'Hello \\nworld', + $heredoc_string_with_newline, + + // string with tab character + "\t", + "\\t", + "Hello \tworld", + "Hello \\tworld", + '\t', + '\\t', + 'Hello \tworld', + 'Hello \\tworld', + $heredoc_string_with_tab + ); + +$count = 1; +// looping to test for all strings in $str_array +foreach( $str_array as $str ) { + echo "\n-- Iteration $count --\n"; + var_dump( stripslashes($str) ); + $count ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing stripslashes() : with strings containing newline and tab characters *** + +-- Iteration 1 -- +string(1) " +" + +-- Iteration 2 -- +string(1) "n" + +-- Iteration 3 -- +string(12) "Hello +world" + +-- Iteration 4 -- +string(12) "Hello nworld" + +-- Iteration 5 -- +string(1) "n" + +-- Iteration 6 -- +string(1) "n" + +-- Iteration 7 -- +string(12) "Hello nworld" + +-- Iteration 8 -- +string(12) "Hello nworld" + +-- Iteration 9 -- +string(71) "This is line 1 +of 'heredoc' string +This is line 2 +of "heredoc" string" + +-- Iteration 10 -- +string(1) " " + +-- Iteration 11 -- +string(1) "t" + +-- Iteration 12 -- +string(12) "Hello world" + +-- Iteration 13 -- +string(12) "Hello tworld" + +-- Iteration 14 -- +string(1) "t" + +-- Iteration 15 -- +string(1) "t" + +-- Iteration 16 -- +string(12) "Hello tworld" + +-- Iteration 17 -- +string(12) "Hello tworld" + +-- Iteration 18 -- +string(71) "This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string" +Done + +--UEXPECTF-- +*** Testing stripslashes() : with strings containing newline and tab characters *** + +-- Iteration 1 -- +unicode(1) " +" + +-- Iteration 2 -- +unicode(1) "n" + +-- Iteration 3 -- +unicode(12) "Hello +world" + +-- Iteration 4 -- +unicode(12) "Hello nworld" + +-- Iteration 5 -- +unicode(1) "n" + +-- Iteration 6 -- +unicode(1) "n" + +-- Iteration 7 -- +unicode(12) "Hello nworld" + +-- Iteration 8 -- +unicode(12) "Hello nworld" + +-- Iteration 9 -- +unicode(71) "This is line 1 +of 'heredoc' string +This is line 2 +of "heredoc" string" + +-- Iteration 10 -- +unicode(1) " " + +-- Iteration 11 -- +unicode(1) "t" + +-- Iteration 12 -- +unicode(12) "Hello world" + +-- Iteration 13 -- +unicode(12) "Hello tworld" + +-- Iteration 14 -- +unicode(1) "t" + +-- Iteration 15 -- +unicode(1) "t" + +-- Iteration 16 -- +unicode(12) "Hello tworld" + +-- Iteration 17 -- +unicode(12) "Hello tworld" + +-- Iteration 18 -- +unicode(71) "This is line 1 of 'heredoc' string +This is line 2 of "heredoc" string" +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_basic.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_basic.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_variation4.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_variation4.phpt diff -u /dev/null php-src/ext/standard/tests/strings/stripslashes_variation4.phpt:1.2 --- /dev/null Fri Sep 7 14:03:33 2007 +++ php-src/ext/standard/tests/strings/stripslashes_variation4.phpt Fri Sep 7 14:03:33 2007 @@ -0,0 +1,227 @@ +--TEST-- +Test stripslashes() function : usage variations - double dimensional arrays +--FILE-- +<?php +/* Prototype : string stripslashes ( string $str ) + * Description: Returns an un-quoted string + * Source code: ext/standard/string.c +*/ + +/* + * Test stripslashes() with double dimensional arrays +*/ + +echo "*** Testing stripslashes() : with double dimensional arrays ***\n"; + +// initialising the string array + +$str_array = array( + array("", array()), + array("", array("")), + array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar")), + array("f\\'oo", "b\\'ar", array("")), + array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar", array(""))), + array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar", array("fo\\'o", "b\\'ar"))) + ); +function stripslashes_deep($value) { + $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); + return $value; +} + +$count = 1; +// looping to test for all strings in $str_array +foreach( $str_array as $arr ) { + echo "\n-- Iteration $count --\n"; + var_dump( stripslashes_deep($arr) ); + $count ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing stripslashes() : with double dimensional arrays *** + +-- Iteration 1 -- +array(2) { + [0]=> + string(0) "" + [1]=> + array(0) { + } +} + +-- Iteration 2 -- +array(2) { + [0]=> + string(0) "" + [1]=> + array(1) { + [0]=> + string(0) "" + } +} + +-- Iteration 3 -- +array(3) { + [0]=> + string(4) "f'oo" + [1]=> + string(4) "b'ar" + [2]=> + array(2) { + [0]=> + string(4) "fo'o" + [1]=> + string(4) "b'ar" + } +} + +-- Iteration 4 -- +array(3) { + [0]=> + string(4) "f'oo" + [1]=> + string(4) "b'ar" + [2]=> + array(1) { + [0]=> + string(0) "" + } +} + +-- Iteration 5 -- +array(3) { + [0]=> + string(4) "f'oo" + [1]=> + string(4) "b'ar" + [2]=> + array(3) { + [0]=> + string(4) "fo'o" + [1]=> + string(4) "b'ar" + [2]=> + array(1) { + [0]=> + string(0) "" + } + } +} + +-- Iteration 6 -- +array(3) { + [0]=> + string(4) "f'oo" + [1]=> + string(4) "b'ar" + [2]=> + array(3) { + [0]=> + string(4) "fo'o" + [1]=> + string(4) "b'ar" + [2]=> + array(2) { + [0]=> + string(4) "fo'o" + [1]=> + string(4) "b'ar" + } + } +} +Done + +--UEXPECTF-- +*** Testing stripslashes() : with double dimensional arrays *** + +-- Iteration 1 -- +array(2) { + [0]=> + unicode(0) "" + [1]=> + array(0) { + } +} + +-- Iteration 2 -- +array(2) { + [0]=> + unicode(0) "" + [1]=> + array(1) { + [0]=> + unicode(0) "" + } +} + +-- Iteration 3 -- +array(3) { + [0]=> + unicode(4) "f'oo" + [1]=> + unicode(4) "b'ar" + [2]=> + array(2) { + [0]=> + unicode(4) "fo'o" + [1]=> + unicode(4) "b'ar" + } +} + +-- Iteration 4 -- +array(3) { + [0]=> + unicode(4) "f'oo" + [1]=> + unicode(4) "b'ar" + [2]=> + array(1) { + [0]=> + unicode(0) "" + } +} + +-- Iteration 5 -- +array(3) { + [0]=> + unicode(4) "f'oo" + [1]=> + unicode(4) "b'ar" + [2]=> + array(3) { + [0]=> + unicode(4) "fo'o" + [1]=> + unicode(4) "b'ar" + [2]=> + array(1) { + [0]=> + unicode(0) "" + } + } +} + +-- Iteration 6 -- +array(3) { + [0]=> + unicode(4) "f'oo" + [1]=> + unicode(4) "b'ar" + [2]=> + array(3) { + [0]=> + unicode(4) "fo'o" + [1]=> + unicode(4) "b'ar" + [2]=> + array(2) { + [0]=> + unicode(4) "fo'o" + [1]=> + unicode(4) "b'ar" + } + } +} +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/stripslashes_error.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/stripslashes_error.phpt diff -u /dev/null php-src/ext/standard/tests/strings/stripslashes_error.phpt:1.2 --- /dev/null Fri Sep 7 14:03:33 2007 +++ php-src/ext/standard/tests/strings/stripslashes_error.phpt Fri Sep 7 14:03:33 2007 @@ -0,0 +1,58 @@ +--TEST-- +Test stripslashes() function : error conditions +--FILE-- +<?php +/* Prototype : string stripslashes ( string $str ) + * Description: Returns an un-quoted string + * Source code: ext/standard/string.c +*/ + +/* + * Testing stripslashes() for error conditions +*/ + +echo "*** Testing stripslashes() : error conditions ***\n"; + +// Zero argument +echo "\n-- Testing stripslashes() function with Zero arguments --\n"; +var_dump( stripslashes() ); + +// More than expected number of arguments +echo "\n-- Testing stripslashes() function with more than expected no. of arguments --\n"; +$str = '\"hello\"\"world\"'; +$extra_arg = 10; + +var_dump( stripslashes($str, $extra_arg) ); +var_dump( $str ); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing stripslashes() : error conditions *** + +-- Testing stripslashes() function with Zero arguments -- + +Warning: Wrong parameter count for stripslashes() in %s on line %d +NULL + +-- Testing stripslashes() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for stripslashes() in %s on line %d +NULL +string(18) "\"hello\"\"world\"" +Done + +--UEXPECTF-- +*** Testing stripslashes() : error conditions *** + +-- Testing stripslashes() function with Zero arguments -- + +Warning: Wrong parameter count for stripslashes() in %s on line %d +NULL + +-- Testing stripslashes() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for stripslashes() in %s on line %d +NULL +unicode(18) "\"hello\"\"world\"" +Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php