From: Raghubansh Kumar Date: Sat, 29 Sep 2007 16:52:54 +0000 (+0000) Subject: New testcases for join() function X-Git-Tag: BEFORE_IMPORT_OF_MYSQLND_IN_5_3~54 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9ccaf44fb654024acfae9b6dcef120bbd099131;p=php New testcases for join() function --- diff --git a/ext/standard/tests/strings/join_basic.phpt b/ext/standard/tests/strings/join_basic.phpt new file mode 100644 index 0000000000..164c4613a0 --- /dev/null +++ b/ext/standard/tests/strings/join_basic.phpt @@ -0,0 +1,43 @@ +--TEST-- +Test join() function : basic functionality +--FILE-- + 10, "Minute" => 20, "Second" => 40); +$glue = ':'; +var_dump( join($glue, $pieces) ); + +// pices as associative array (string/numeric values) +$pieces = array("Day" => 'Friday', "Month" => "September", "Year" => 2007); +$glue = '/'; +var_dump( join($glue, $pieces) ); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing join() : basic functionality *** +string(7) "1,2,3,4" +string(30) "Red, Green, Blue, Black, White" +string(8) "10:20:40" +string(21) "Friday/September/2007" +Done diff --git a/ext/standard/tests/strings/join_error.phpt b/ext/standard/tests/strings/join_error.phpt new file mode 100644 index 0000000000..8113d30dfb --- /dev/null +++ b/ext/standard/tests/strings/join_error.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test join() function : error conditions(Bug#42789) +--FILE-- + +--EXPECTF-- +*** Testing join() : error conditions *** + +-- Testing join() function with Zero arguments -- + +Warning: Wrong parameter count for join() in %s on line %d +NULL + +-- Testing join() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for join() in %s on line %d +NULL + +-- Testing join() with less than expected no. of arguments -- + +Warning: join(): Argument to join must be an array in %s on line %d +NULL +Done diff --git a/ext/standard/tests/strings/join_variation1.phpt b/ext/standard/tests/strings/join_variation1.phpt new file mode 100644 index 0000000000..850a198868 --- /dev/null +++ b/ext/standard/tests/strings/join_variation1.phpt @@ -0,0 +1,167 @@ +--TEST-- +Test join() function : usage variations - unexpected values for 'glue' argument +--FILE-- + 'red', 'item' => 'pen'), + + // boolean values + true, + false, + TRUE, + FALSE, + + // objects + new test(), + + // empty string + "", + '', + + // null vlaues + NULL, + null, + + // resource variable + $fp, + + // undefined variable + @$undefined_var, + + // unset variable + @$unset_var +); + + +// loop through each element of the array and check the working of join() +// when $glue arugment is supplied with different values +echo "\n--- Testing join() by supplying different values for 'glue' argument ---\n"; +$counter = 1; +for($index = 0; $index < count($values); $index ++) { + echo "-- Iteration $counter --\n"; + $glue = $values [$index]; + + var_dump( join($glue, $pieces) ); + + $counter ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing join() : usage variations *** + +--- Testing join() by supplying different values for 'glue' argument --- +-- Iteration 1 -- +string(17) "element10element2" +-- Iteration 2 -- +string(17) "element11element2" +-- Iteration 3 -- +string(21) "element112345element2" +-- Iteration 4 -- +string(21) "element1-2345element2" +-- Iteration 5 -- +string(20) "element110.5element2" +-- Iteration 6 -- +string(21) "element1-10.5element2" +-- Iteration 7 -- +string(28) "element1105000000000element2" +-- Iteration 8 -- +string(23) "element11.06E-9element2" +-- Iteration 9 -- +string(19) "element10.5element2" +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +string(0) "" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +string(1) "0" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +string(1) "1" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +string(7) "1Array2" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +string(11) "redArraypen" +-- Iteration 15 -- +string(17) "element11element2" +-- Iteration 16 -- +string(16) "element1element2" +-- Iteration 17 -- +string(17) "element11element2" +-- Iteration 18 -- +string(16) "element1element2" +-- Iteration 19 -- +string(26) "element1testObjectelement2" +-- Iteration 20 -- +string(16) "element1element2" +-- Iteration 21 -- +string(16) "element1element2" +-- Iteration 22 -- +string(16) "element1element2" +-- Iteration 23 -- +string(16) "element1element2" +-- Iteration 24 -- +string(30) "element1Resource id #%delement2" +-- Iteration 25 -- +string(16) "element1element2" +-- Iteration 26 -- +string(16) "element1element2" +Done diff --git a/ext/standard/tests/strings/join_variation2.phpt b/ext/standard/tests/strings/join_variation2.phpt new file mode 100644 index 0000000000..9fa03ac3e1 --- /dev/null +++ b/ext/standard/tests/strings/join_variation2.phpt @@ -0,0 +1,198 @@ +--TEST-- +Test join() function : usage variations - unexpected values for 'pieces' argument(Bug#42789) +--FILE-- + +--EXPECTF-- +*** Testing join() : usage variations *** + +--- Testing join() by supplying different values for 'pieces' argument --- +-- Iteration 1 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 2 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 3 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 4 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 5 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 6 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 7 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 8 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 9 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 10 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 11 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 12 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 13 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 14 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 15 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 16 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 17 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 18 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 19 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 20 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 21 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 22 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +-- Iteration 23 -- + +Warning: join(): Bad arguments in %s on line %d +NULL +Done diff --git a/ext/standard/tests/strings/join_variation3.phpt b/ext/standard/tests/strings/join_variation3.phpt new file mode 100644 index 0000000000..5b0ad5a528 --- /dev/null +++ b/ext/standard/tests/strings/join_variation3.phpt @@ -0,0 +1,99 @@ +--TEST-- +Test join() function : usage variations - different values for 'pieces' argument +--FILE-- + "one", 2 => "two", 3 => "three"), // explicit numeric keys, string values + array("one" => 1, "two" => 2, "three" => 3 ), // string keys & numeric values + array( 1 => 10, 2 => 20, 4 => 40, 3 => 30), // explicit numeric keys and numeric values + array( "one" => "ten", "two" => "twenty", "three" => "thirty"), // string key/value + array("one" => 1, 2 => "two", 4 => "four"), //mixed + + // associative array, containing null/empty/boolean values as key/value + array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null), + array(true => "true", false => "false", "false" => false, "true" => true), + array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''), + array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true), + array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6), + + // array with repetative keys + array("One" => 1, "two" => 2, "One" => 10, "two" => 20, "three" => 3) +); + +// a multichar glue value +$glue = "], ["; + +// loop through each $pieces_arrays element and call join() +$iteration = 1; +for($index = 0; $index < count($pieces_arrays); $index ++) { + echo "-- Iteration $iteration --\n"; + var_dump( join($glue, $pieces_arrays[$index]) ); + $iteration ++; +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing join() : usage variations *** +-- Iteration 1 -- +string(6) "1], [2" +-- Iteration 2 -- +string(10) "1.1], [2.2" +-- Iteration 3 -- + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +string(14) "Array], [Array" +-- Iteration 4 -- +string(5) "], [1" +-- Iteration 5 -- +string(0) "" +-- Iteration 6 -- +string(0) "" +-- Iteration 7 -- +string(36) "a], [aaaa], [b], [bbbb], [c], [ccccc" +-- Iteration 8 -- +string(19) "one], [two], [three" +-- Iteration 9 -- +string(11) "1], [2], [3" +-- Iteration 10 -- +string(20) "10], [20], [40], [30" +-- Iteration 11 -- +string(23) "ten], [twenty], [thirty" +-- Iteration 12 -- +string(16) "1], [two], [four" +-- Iteration 13 -- +string(12) "null], [], [" +-- Iteration 14 -- +string(22) "true], [false], [], [1" +-- Iteration 15 -- +string(14) "emptys], [], [" +-- Iteration 16 -- +string(21) "], [], [], [], [], [1" +-- Iteration 17 -- +string(11) "4], [5], [6" +-- Iteration 18 -- +string(13) "10], [20], [3" +Done diff --git a/ext/standard/tests/strings/join_variation4.phpt b/ext/standard/tests/strings/join_variation4.phpt new file mode 100644 index 0000000000..b4c4b052f2 Binary files /dev/null and b/ext/standard/tests/strings/join_variation4.phpt differ diff --git a/ext/standard/tests/strings/join_variation5.phpt b/ext/standard/tests/strings/join_variation5.phpt new file mode 100644 index 0000000000..a02efd7767 --- /dev/null +++ b/ext/standard/tests/strings/join_variation5.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test join() function : usage variations - sub array as argument +--FILE-- + "one", 2 => "two"), "PHP", 50); + +// pieces as array containing sub array +var_dump( join("TEST", $sub_array) ); + +// glue as array & pieces as array containing sub array +var_dump( join(array(1, 2, 3, 4), $sub_array) ); + +// numeric value as glue, pieces as array containg sub array +var_dump( join(2, $sub_array) ); + +// using directly the sub_array as pieces +var_dump( join(", ", $sub_array[0]) ); +var_dump( join(", ", $sub_array[1]) ); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing implode() : usage variations - sub arrays *** + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +string(27) "ArrayTESTArrayTESTPHPTEST50" + +Notice: Array to string conversion in %s on line %d +string(19) "1Array2Array3Array4" + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +string(18) "Array2Array2PHP250" +string(10) "1, 2, 3, 4" +string(8) "one, two" +Done diff --git a/ext/standard/tests/strings/join_variation6.phpt b/ext/standard/tests/strings/join_variation6.phpt new file mode 100644 index 0000000000..e8d0981155 Binary files /dev/null and b/ext/standard/tests/strings/join_variation6.phpt differ