From 03d6500fb02c1892a2759e578e80e4d9a9c67322 Mon Sep 17 00:00:00 2001 From: Raghubansh Kumar Date: Sat, 29 Sep 2007 09:08:24 +0000 Subject: [PATCH] New testcases for join() function --- ext/standard/tests/strings/join_basic.phpt | 50 +++ ext/standard/tests/strings/join_error.phpt | 68 ++++ .../tests/strings/join_variation1.phpt | 234 ++++++++++++++ .../tests/strings/join_variation2.phpt | 292 ++++++++++++++++++ .../tests/strings/join_variation3.phpt | 142 +++++++++ .../tests/strings/join_variation4.phpt | Bin 0 -> 3506 bytes .../tests/strings/join_variation5.phpt | 68 ++++ .../tests/strings/join_variation6.phpt | Bin 0 -> 885 bytes 8 files changed, 854 insertions(+) create mode 100644 ext/standard/tests/strings/join_basic.phpt create mode 100644 ext/standard/tests/strings/join_error.phpt create mode 100644 ext/standard/tests/strings/join_variation1.phpt create mode 100644 ext/standard/tests/strings/join_variation2.phpt create mode 100644 ext/standard/tests/strings/join_variation3.phpt create mode 100644 ext/standard/tests/strings/join_variation4.phpt create mode 100644 ext/standard/tests/strings/join_variation5.phpt create mode 100644 ext/standard/tests/strings/join_variation6.phpt diff --git a/ext/standard/tests/strings/join_basic.phpt b/ext/standard/tests/strings/join_basic.phpt new file mode 100644 index 0000000000..c823470032 --- /dev/null +++ b/ext/standard/tests/strings/join_basic.phpt @@ -0,0 +1,50 @@ +--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 +--UEXPECTF-- +*** Testing join() : basic functionality *** +unicode(7) "1,2,3,4" +unicode(30) "Red, Green, Blue, Black, White" +unicode(8) "10:20:40" +unicode(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..60c2de61f5 --- /dev/null +++ b/ext/standard/tests/strings/join_error.phpt @@ -0,0 +1,68 @@ +--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 +bool(false) +Done +--UEXPECTF-- +*** 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 +bool(false) +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..2d2eac20b0 --- /dev/null +++ b/ext/standard/tests/strings/join_variation1.phpt @@ -0,0 +1,234 @@ +--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 +--UEXPECTF-- +*** Testing join() : usage variations *** + +--- Testing join() by supplying different values for 'glue' argument --- +-- Iteration 1 -- +unicode(17) "element10element2" +-- Iteration 2 -- +unicode(17) "element11element2" +-- Iteration 3 -- +unicode(21) "element112345element2" +-- Iteration 4 -- +unicode(21) "element1-2345element2" +-- Iteration 5 -- +unicode(20) "element110.5element2" +-- Iteration 6 -- +unicode(21) "element1-10.5element2" +-- Iteration 7 -- +unicode(28) "element1105000000000element2" +-- Iteration 8 -- +unicode(23) "element11.06E-9element2" +-- Iteration 9 -- +unicode(19) "element10.5element2" +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +unicode(0) "" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +unicode(1) "0" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +unicode(1) "1" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +unicode(7) "1Array2" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +unicode(11) "redArraypen" +-- Iteration 15 -- +unicode(17) "element11element2" +-- Iteration 16 -- +unicode(16) "element1element2" +-- Iteration 17 -- +unicode(17) "element11element2" +-- Iteration 18 -- +unicode(16) "element1element2" +-- Iteration 19 -- +unicode(26) "element1testObjectelement2" +-- Iteration 20 -- +unicode(16) "element1element2" +-- Iteration 21 -- +unicode(16) "element1element2" +-- Iteration 22 -- +unicode(16) "element1element2" +-- Iteration 23 -- +unicode(16) "element1element2" +-- Iteration 24 -- +unicode(30) "element1Resource id #%delement2" +-- Iteration 25 -- +unicode(16) "element1element2" +-- Iteration 26 -- +unicode(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..72adaafe22 --- /dev/null +++ b/ext/standard/tests/strings/join_variation2.phpt @@ -0,0 +1,292 @@ +--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 +--UEXPECTF-- +*** 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..6d2eb88e62 --- /dev/null +++ b/ext/standard/tests/strings/join_variation3.phpt @@ -0,0 +1,142 @@ +--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 +--UEXPECTF-- +*** Testing join() : usage variations *** +-- Iteration 1 -- +unicode(6) "1], [2" +-- Iteration 2 -- +unicode(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 +unicode(14) "Array], [Array" +-- Iteration 4 -- +unicode(5) "], [1" +-- Iteration 5 -- +unicode(0) "" +-- Iteration 6 -- +unicode(0) "" +-- Iteration 7 -- +unicode(36) "a], [aaaa], [b], [bbbb], [c], [ccccc" +-- Iteration 8 -- +unicode(19) "one], [two], [three" +-- Iteration 9 -- +unicode(11) "1], [2], [3" +-- Iteration 10 -- +unicode(20) "10], [20], [40], [30" +-- Iteration 11 -- +unicode(23) "ten], [twenty], [thirty" +-- Iteration 12 -- +unicode(16) "1], [two], [four" +-- Iteration 13 -- +unicode(12) "null], [], [" +-- Iteration 14 -- +unicode(22) "true], [false], [], [1" +-- Iteration 15 -- +unicode(14) "emptys], [], [" +-- Iteration 16 -- +unicode(21) "], [], [], [], [], [1" +-- Iteration 17 -- +unicode(11) "4], [5], [6" +-- Iteration 18 -- +unicode(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 0000000000000000000000000000000000000000..ac712a418841fa1b9eed94aa7e825a222d870bee GIT binary patch literal 3506 zcmd^BdrR9;6!-6ZibGIrs;T$ZTA!Q9?3hDDwhDt~jF{fG*T9Xr7Z6=0SH@^d7RF) zJ$qOsh)smZ!+TiGVi6&>=Rg-uMG@t3Mg$JvEpjwUA`xV)fNya*htL4gjrX$3BLR_| zhyxIJlOt!#wm`W~{dD2V(+ z9Ef=BdZBKLXfDC+cDq1uFNqyxK6{Q zP#YDfj{8;Ib9WPH?YkanxJuszy=aGnJI1a>`AvvaiGAMN84h>$A3k*R;_CdIR-e&x zJz(pON4!ijn#B5~q1620_P)Brd)tG-fVP&ad->*4nX5@#3oVXAWYM!s=)U_vno>*T zd%a%3T%v=ult`IDInQM^n*)e2nuDnY%BBe;CLE$LNmP{qrgJrtRa%N11I!N{tlG|M zoKD0Yp4lOo{Sg)oYIQV-SIajxJot{(bYguU&JaoU1k|{`ukr}gFP|sXP1eyBuCYF9 z3!gS^aeIK?Kz)5<V;m$TVl1jB>0&Dj3c= z+QKIX-U8>pLEdg44|WNe5w3+rP-x-(25vxb&V?-F2#3ar8bhVD(aOa?b|`k1OL*9T(~$)R6ag?H01gxc^=U=IIJGcmyA9+% zQ}tqkXJ!a%AIa!15}n(&&?eM?Ah-7Wr=P3?2C3!TqbQ52bFbkk?+>Vm^k^J1vzn5^ zX*o1uH7}@sNs4Y*RV`?rC>f;I;%H=s>LPNO$hvEnP~aS^qsG$(!XU(I6gIcz<5CT0luIw1Z^Y1BUWe*ViR30X98AfOn(Xf z$_TW!pJ4`C=q1$1pASJx;%QURYA=DZ8iN+^8Rnpc{tpJBb@ktzgqGbBYDSMj3-}zf K&|)ur82$uzp4Tb> literal 0 HcmV?d00001 diff --git a/ext/standard/tests/strings/join_variation5.phpt b/ext/standard/tests/strings/join_variation5.phpt new file mode 100644 index 0000000000..1d7d0c151d --- /dev/null +++ b/ext/standard/tests/strings/join_variation5.phpt @@ -0,0 +1,68 @@ +--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 subarray +var_dump( join(2, $sub_array) ); + +// using direclty the sub_array inside an 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 +--UEXPECTF-- +*** 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 +unicode(27) "ArrayTESTArrayTESTPHPTEST50" + +Notice: Array to string conversion in %s on line %d +unicode(19) "1Array2Array3Array4" + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +unicode(18) "Array2Array2PHP250" +unicode(10) "1, 2, 3, 4" +unicode(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 0000000000000000000000000000000000000000..44c75f56a5ba4a771cadd4bc0b25573019a45a65 GIT binary patch literal 885 zcmb_aU2oJd5aijvViffuiIV$(w=1PW^okCls-jm>i6Z1Wdl%C?JF=Y~_wQLJxsyQj z1@$FfZ)SIAW?h!c`OUH{#gcr$PpeIuVbvNHv^AKa^>R&kl1|H*@hI`2jdXi>xgt@P zi>n1!m*wT+^PGdX=S|&+agJ+egAMzJz+HTB+N}Hbhs()&(^3KHoZRE2(WJ;D6UcEv zUOC;wc{6-sN&|>Cv?UWfb~@CML!(%6V_T;P%2qT3{R(3rq^YEc5^`CBni|$QwDn#dv$5}5t6+luXBUQU}l8q9+aONQ?kccdz2lEc_