wharmby Tue Jun 23 22:39:43 2009 UTC Added files: /php-src/ext/standard/tests/strings parse_str_basic4.phpt parse_str_error1.phpt parse_str_basic2.phpt parse_str_basic3.phpt parse_str_basic1.phpt Log: New basic parse_str() tests. Tested on Windows,Linux and Lnux 64 bit. Some tests fail on PHP 6 (tagged with XFAIL) due to bug 48658
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/parse_str_basic4.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/parse_str_basic4.phpt +++ php-src/ext/standard/tests/strings/parse_str_basic4.phpt --TEST-- Test parse_str() function : test with badly formed strings --XFAIL-- Bug 48658: Test currently fails as parse_str() api insists that the optional reult array is pre-defined. php.net bugzilla --FILE-- <?php /* Prototype : void parse_str ( string $str [, array &$arr ] ) * Description: Parses the string into variables * Source code: ext/standard/string.c */
echo "\nTest string with badly formed strings\n"; $str = "arr[1=sid&arr[4][2=fred"; var_dump(parse_str($str, $res)); var_dump($res); $str = "arr1]=sid&arr[4]2]=fred"; var_dump(parse_str($str, $res)); var_dump($res); $str = "arr[one=sid&arr[4][two=fred"; var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string with non-binary safe name\n"; $str = "arr.test[1]=sid&arr test[4][two]=fred"; var_dump(parse_str($str, $res)); var_dump($res); ?> ===DONE=== --EXPECTF-- Test string with badly formed strings NULL array(2) { [u"arr_1"]=> unicode(3) "sid" [u"arr"]=> array(1) { [4]=> unicode(4) "fred" } } NULL array(2) { [u"arr1]"]=> unicode(3) "sid" [u"arr"]=> array(1) { [4]=> unicode(4) "fred" } } NULL array(2) { [u"arr_one"]=> unicode(3) "sid" [u"arr"]=> array(1) { [4]=> unicode(4) "fred" } } Test string with non-binary safe name NULL array(1) { [u"arr_test"]=> array(2) { [1]=> unicode(3) "sid" [4]=> array(1) { [u"two"]=> unicode(4) "fred" } } } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/parse_str_error1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/parse_str_error1.phpt +++ php-src/ext/standard/tests/strings/parse_str_error1.phpt --TEST-- Test parse_str() function : non-default arg_separator.input specified --INI-- arg_separator.input = "/" --FILE-- <?php /* Prototype : void parse_str ( string $str [, array &$arr ] ) * Description: Parses the string into variables * Source code: ext/standard/string.c */ echo "*** Testing parse_str() : error conditions ***\n"; echo "\n-- Testing htmlentities() function with less than expected no. of arguments --\n"; parse_str(); echo "\n-- Testing htmlentities() function with more than expected no. of arguments --\n"; $s1 = "first=val1&second=val2&third=val3"; parse_str($s1, $res_array, true); ?> ===DONE=== --EXPECTF-- *** Testing parse_str() : error conditions *** -- Testing htmlentities() function with less than expected no. of arguments -- Warning: parse_str() expects at least 1 parameter, 0 given in %s on line %d -- Testing htmlentities() function with more than expected no. of arguments -- Warning: parse_str() expects at most 2 parameters, 3 given in %s on line %d ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/parse_str_basic2.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/parse_str_basic2.phpt +++ php-src/ext/standard/tests/strings/parse_str_basic2.phpt --TEST-- Test parse_str() function : non-default arg_separator.input specified --INI-- arg_separator.input = "/" --FILE-- <?php /* Prototype : void parse_str ( string $str [, array &$arr ] ) * Description: Parses the string into variables * Source code: ext/standard/string.c */ echo "*** Testing parse_str() : non-default arg_separator.input specified ***\n"; $s1 = "first=val1/second=val2/third=val3"; var_dump(parse_str($s1)); var_dump($first, $second, $third); ?> ===DONE=== --EXPECTF-- *** Testing parse_str() : non-default arg_separator.input specified *** NULL unicode(4) "val1" unicode(4) "val2" unicode(4) "val3" ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/parse_str_basic3.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/parse_str_basic3.phpt +++ php-src/ext/standard/tests/strings/parse_str_basic3.phpt --TEST-- Test parse_str() function : Basic functionality --XFAIL-- Bug 48658: Test currently fails as parse_str() api insists that the optional reult array is pre-defined. php.net bugzilla --FILE-- <?php /* Prototype : void parse_str ( string $str [, array &$arr ] ) * Description: Parses the string into variables * Source code: ext/standard/string.c */ echo "*** Testing parse_str() : basic functionality ***\n"; echo "\nTest string with array values\n"; $s1 = "first=abc&a[]=123&a[]=false&b[]=str&c[]=3.5&a[]=last"; var_dump(parse_str($s1)); var_dump($first, $a, $b, $c); echo "\nTest string with array values and results array\n"; $s1 = "first=abc&a[]=123&a[]=false&b[]=str&c[]=3.5&a[]=last"; $res3_array= array(); var_dump(parse_str($s1, $res3_array)); var_dump($res3_array); echo "\nTest string containing numerical array keys\n"; $str = "arr[1]=sid&arr[4]=bill"; $res3= array(); var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string containing associative keys\n"; $str = "arr[first]=sid&arr[forth]=bill"; $res3_array= array(); var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string with array values with same name as existing variable\n"; $a = 9999; $s1 = "a[]=123&a[]=false&a[]=last"; var_dump(parse_str($s1)); var_dump($a); echo "\nTest string with non-array value with same name as existing array variable\n"; $a = array(10,11,12,13); $s1 = "a=999"; parse_str($s1); var_dump($a); echo "\nTest string with encoded data\n"; $s1 = "a=%3c%3d%3d%20%20foo+bar++%3d%3d%3e&b=%23%23%23Hello+World%23%23%23"; parse_str($s1); var_dump($a, $b); echo "\nTest string with single quotes characters\n"; $s1 = "firstname=Bill&surname=O%27Reilly"; var_dump(parse_str($s1)); var_dump($firstname, $surname); echo "\nTest string with backslash characters\n"; $s1 = "sum=10%5c2%3d5"; var_dump(parse_str($s1)); var_dump($sum); echo "\nTest string with double quotes data\n"; $s1 = "str=A+string+with+%22quoted%22+strings"; var_dump(parse_str($s1)); var_dump($str); echo "\nTest string with nulls\n"; $s1 = "str=A%20string%20with%20containing%20%00%00%00%20nulls"; var_dump(parse_str($s1)); var_dump($str); echo "\nTest string with 2-dim array with numeric keys\n"; $str = "arr[3][4]=sid&arr[3][6]=fred"; $res3_array= array(); var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string with 2-dim array with null keys\n"; $str = "arr[][]=sid&arr[][]=fred"; $res3_array= array(); var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string with 2-dim array with non-numeric keys\n"; $str = "arr[one][four]=sid&arr[three][six]=fred"; $res3_array= array(); var_dump(parse_str($str, $res)); var_dump($res); echo "\nTest string with 3-dim array with numeric keys\n"; $str = "arr[1][2][3]=sid&arr[1][2][6]=fred"; $res3_array= array(); var_dump(parse_str($str, $res)); var_dump($res); ?> ===DONE=== --EXPECTF-- *** Testing parse_str() : basic functionality *** Test string with array values NULL unicode(3) "abc" array(3) { [0]=> unicode(3) "123" [1]=> unicode(5) "false" [2]=> unicode(4) "last" } array(1) { [0]=> unicode(3) "str" } array(1) { [0]=> unicode(3) "3.5" } Test string with array values and results array NULL array(4) { [u"first"]=> unicode(3) "abc" [u"a"]=> array(3) { [0]=> unicode(3) "123" [1]=> unicode(5) "false" [2]=> unicode(4) "last" } [u"b"]=> array(1) { [0]=> unicode(3) "str" } [u"c"]=> array(1) { [0]=> unicode(3) "3.5" } } Test string containing numerical array keys NULL array(1) { [u"arr"]=> array(2) { [1]=> unicode(3) "sid" [4]=> unicode(4) "bill" } } Test string containing associative keys NULL array(1) { [u"arr"]=> array(2) { ["first"]=> unicode(3) "sid" ["forth"]=> unicode(4) "bill" } } Test string with array values with same name as existing variable NULL array(3) { [0]=> unicode(3) "123" [1]=> unicode(5) "false" [2]=> unicode(4) "last" } Test string with non-array value with same name as existing array variable unicode(3) "999" Test string with encoded data unicode(17) "<== foo bar ==>" unicode(17) "###Hello World###" Test string with single quotes characters NULL unicode(4) "Bill" unicode(9) "O\'Reilly" Test string with backslash characters NULL unicode(7) "10\\2=5" Test string with double quotes data NULL unicode(32) "A string with \"quoted\" strings" Test string with nulls NULL unicode(37) "A string with containing \0\0\0 nulls" Test string with 2-dim array with numeric keys NULL array(1) { [u"arr"]=> array(1) { [3]=> array(2) { [4]=> unicode(3) "sid" [6]=> unicode(4) "fred" } } } Test string with 2-dim array with null keys NULL array(1) { [u"arr"]=> array(2) { [0]=> array(1) { [0]=> unicode(3) "sid" } [1]=> array(1) { [0]=> unicode(4) "fred" } } } Test string with 2-dim array with non-numeric keys NULL array(1) { [u"arr"]=> array(2) { [u"one"]=> array(1) { ["four"]=> unicode(3) "sid" } [u"three"]=> array(1) { [u"six"]=> unicode(4) "fred" } } } Test string with 3-dim array with numeric keys NULL array(1) { [u"arr"]=> array(1) { [1]=> array(1) { [2]=> array(2) { [3]=> unicode(3) "sid" [6]=> unicode(4) "fred" } } } } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/parse_str_basic1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/parse_str_basic1.phpt +++ php-src/ext/standard/tests/strings/parse_str_basic1.phpt --TEST-- Test parse_str() function : basic functionality --XFAIL-- Bug 48658: Test currently fails as parse_str() api insists that the optional reult array is pre-defined. --FILE-- <?php /* Prototype : void parse_str ( string $str [, array &$arr ] ) * Description: Parses the string into variables * Source code: ext/standard/string.c */ echo "*** Testing parse_str() : basic functionality ***\n"; echo "Basic test WITHOUT result arg\n"; $s1 = "first=val1&second=val2&third=val3"; var_dump(parse_str($s1)); var_dump($first, $second, $third); echo "\nBasic test WITH undefined var for result arg\n"; $s1 = "first=val1&second=val2&third=val3"; var_dump(parse_str($s1, $res1)); var_dump($res1); echo "\nBasic test WITH existing non-array var for result arg\n"; $res2 =99; $s1 = "first=val1&second=val2&third=val3"; var_dump(parse_str($s1, $res2)); var_dump($res2); echo "\nBasic test with an existing array as results array\n"; $res3_array = array(1,2,3,4); var_dump(parse_str($s1, $res3_array)); var_dump($res3_array); ?> ===DONE=== --EXPECTF-- *** Testing parse_str() : basic functionality *** Basic test WITHOUT result arg NULL unicode(4) "val1" unicode(4) "val2" unicode(4) "val3" Basic test WITH undefined var for result arg NULL array(3) { [u"first"]=> unicode(4) "val1" [u"second"]=> unicode(4) "val2" [u"third"]=> unicode(4) "val3" } Basic test WITH existing non-array var for result arg NULL array(3) { [u"first"]=> unicode(4) "val1" [u"second"]=> unicode(4) "val2" [u"third"]=> unicode(4) "val3" } Basic test with an existing array as results array NULL array(3) { [u"first"]=> unicode(4) "val1" [u"second"]=> unicode(4) "val2" [u"third"]=> unicode(4) "val3" } ===DONE===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php