You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.1 KiB

  1. --TEST--
  2. numfmt creation failures
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. --FILE--
  6. <?php
  7. function err($fmt) {
  8. if(!$fmt) {
  9. echo var_export(intl_get_error_message(), true)."\n";
  10. }
  11. }
  12. function print_exception($e) {
  13. echo "\n" . get_class($e) . ": " . $e->getMessage()
  14. . " in " . $e->getFile() . " on line " . $e->getLine() . "\n";
  15. }
  16. function crt($t, $l, $s) {
  17. switch(true) {
  18. case $t == "O":
  19. try {
  20. return new NumberFormatter($l, $s);
  21. } catch (BaseException $e) {
  22. print_exception($e);
  23. return null;
  24. }
  25. break;
  26. case $t == "C":
  27. return NumberFormatter::create($l, $s);
  28. break;
  29. case $t == "P":
  30. return numfmt_create($l, $s);
  31. break;
  32. }
  33. }
  34. $args = array(
  35. array(null, null),
  36. array("whatever", 1234567),
  37. array(array(), array()),
  38. array("en", -1),
  39. array("en_US", NumberFormatter::PATTERN_RULEBASED),
  40. );
  41. try {
  42. $fmt = new NumberFormatter();
  43. } catch (TypeException $e) {
  44. print_exception($e);
  45. $fmt = null;
  46. }
  47. err($fmt);
  48. $fmt = numfmt_create();
  49. err($fmt);
  50. $fmt = NumberFormatter::create();
  51. err($fmt);
  52. foreach($args as $arg) {
  53. $fmt = crt("O", $arg[0], $arg[1]);
  54. err($fmt);
  55. $fmt = crt("C", $arg[0], $arg[1]);
  56. err($fmt);
  57. $fmt = crt("P", $arg[0], $arg[1]);
  58. err($fmt);
  59. }
  60. ?>
  61. --EXPECTF--
  62. TypeException: NumberFormatter::__construct() expects at least 2 parameters, 0 given in %s on line %d
  63. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  64. Warning: numfmt_create() expects at least 2 parameters, 0 given in %s on line %d
  65. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  66. Warning: NumberFormatter::create() expects at least 2 parameters, 0 given in %s on line %d
  67. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  68. IntlException: Constructor failed in %sformatter_fail.php on line %d
  69. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  70. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  71. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  72. TypeException: NumberFormatter::__construct() expects parameter 1 to be string, array given in %s on line %d
  73. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  74. Warning: NumberFormatter::create() expects parameter 1 to be string, array given in %s on line %d
  75. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  76. Warning: numfmt_create() expects parameter 1 to be string, array given in %s on line %d
  77. 'numfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
  78. IntlException: Constructor failed in %sformatter_fail.php on line %d
  79. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  80. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  81. 'numfmt_create: number formatter creation failed: U_UNSUPPORTED_ERROR'
  82. IntlException: Constructor failed in %sformatter_fail.php on line %d
  83. 'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'
  84. 'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'
  85. 'numfmt_create: number formatter creation failed: U_MEMORY_ALLOCATION_ERROR'