mb_strtoupper_variation4.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --TEST--
  2. Test mb_strtoupper() function : usage varitations - Pass different character types to check conversion is correct
  3. --SKIPIF--
  4. <?php
  5. extension_loaded('mbstring') or die('skip');
  6. function_exists('mb_strtoupper') or die("skip mb_strtoupper() is not available in this build");
  7. ?>
  8. --FILE--
  9. <?php
  10. /* Prototype : string mb_strtoupper(string $sourcestring [, string $encoding]
  11. * Description: Returns a uppercased version of $sourcestring
  12. * Source code: ext/mbstring/mbstring.c
  13. */
  14. /*
  15. * Pass characters from different languages to check that mb_strtoupper is
  16. * doing a correct case conversion
  17. */
  18. echo "*** Testing mb_strtoupper() : usage variations ***\n";
  19. $uppers = array('Basic Latin' => b'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
  20. 'Characters With Accents' => base64_decode('w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5XDlg=='),
  21. 'Russian' => base64_decode('0JDQkdCS0JPQlNCV0JbQlw=='));
  22. $lowers = array('Basic Latin' => b'abcdefghijklmnopqrstuvwxyz',
  23. 'Characters With Accents' => base64_decode('w6DDocOiw6PDpMOlw6bDp8Oow6nDqsOrw6zDrcOuw6/DsMOxw7LDs8O0w7XDtg=='),
  24. 'Russian' => base64_decode('0LDQsdCy0LPQtNC10LbQtw=='));
  25. foreach ($lowers as $lang => $sourcestring) {
  26. echo "\n-- $lang --\n";
  27. $a = mb_strtoupper($sourcestring, 'UTF-8');
  28. var_dump(base64_encode($a));
  29. if ($a == $uppers[$lang]) {
  30. echo "Correctly Converted\n";
  31. } else {
  32. echo "Incorrectly Converted\n";
  33. }
  34. }
  35. echo "Done";
  36. ?>
  37. --EXPECTF--
  38. *** Testing mb_strtoupper() : usage variations ***
  39. -- Basic Latin --
  40. string(36) "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo="
  41. Correctly Converted
  42. -- Characters With Accents --
  43. string(64) "w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5XDlg=="
  44. Correctly Converted
  45. -- Russian --
  46. string(24) "0JDQkdCS0JPQlNCV0JbQlw=="
  47. Correctly Converted
  48. Done