1--TEST--
2Test mb_strtolower() function : usage variations - pass mixed ASCII and non-ASCII strings
3--SKIPIF--
4<?php
5extension_loaded('mbstring') or die('skip');
6function_exists('mb_strtolower') or die("skip mb_strtolower() is not available in this build");
7?>
8--FILE--
9<?php
10/*
11 * Pass a Japanese string and a mixed Japanese and ASCII string to mb_strtolower
12 * to check correct conversion is occurring (Japanese characters should not be converted).
13 */
14
15echo "*** Testing mb_strtolower() : usage variations ***\n";
16
17$string_mixed = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCUEhQLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg==');
18$string_mixed_lower = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCcGhwLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg==');
19$string_all_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC');
20
21echo "\n-- Mixed string (mulitbyte and ASCII characters) --\n";
22$a = mb_strtolower($string_mixed, 'UTF-8');
23var_dump(base64_encode($a));
24if ($a == $string_mixed_lower) {
25    echo "Correctly Converted\n";
26} else {
27    echo "Incorrectly Converted\n";
28}
29
30echo "\n-- Multibyte Only String--\n";
31$b = mb_strtolower($string_all_mb, 'UTF-8');
32var_dump(base64_encode($b));
33if ($b == $string_all_mb) { // Japanese characters only - should not be any conversion
34    echo "Correctly Converted\n";
35} else {
36    echo "Incorrectly Converted\n";
37}
38
39echo "Done";
40?>
41--EXPECT--
42*** Testing mb_strtolower() : usage variations ***
43
44-- Mixed string (mulitbyte and ASCII characters) --
45string(80) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCcGhwLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg=="
46Correctly Converted
47
48-- Multibyte Only String--
49string(40) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC"
50Correctly Converted
51Done
52