collator_create.phpt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. --TEST--
  2. create() icu <= 4.2
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. <?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
  6. --FILE--
  7. <?php
  8. /*
  9. * Try creating collator with different locales
  10. * with Procedural and Object methods.
  11. */
  12. function ut_main()
  13. {
  14. $res_str = '';
  15. $locales = array(
  16. 'EN-US-ODESSA',
  17. 'UK_UA_ODESSA',
  18. 'uk-ua_CALIFORNIA@currency=;currency=GRN',
  19. '',
  20. 'root',
  21. 'uk@currency=EURO',
  22. '1234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799'
  23. );
  24. foreach( $locales as $locale )
  25. {
  26. // Create Collator with the current locale.
  27. $coll = ut_coll_create( $locale );
  28. if( !is_object($coll) )
  29. {
  30. $res_str .= "Error creating collator with '$locale' locale: " .
  31. intl_get_error_message() . "\n";
  32. continue;
  33. }
  34. // Get the requested, valid and actual locales.
  35. $vloc = ut_coll_get_locale( $coll, Locale::VALID_LOCALE );
  36. $aloc = ut_coll_get_locale( $coll, Locale::ACTUAL_LOCALE );
  37. // Show them.
  38. $res_str .= "Locale: '$locale'\n" .
  39. " ULOC_REQUESTED_LOCALE = '$locale'\n" .
  40. " ULOC_VALID_LOCALE = '$vloc'\n" .
  41. " ULOC_ACTUAL_LOCALE = '$aloc'\n";
  42. }
  43. return $res_str;
  44. }
  45. include_once( 'ut_common.inc' );
  46. ut_run();
  47. ?>
  48. --EXPECTF--
  49. Locale: 'EN-US-ODESSA'
  50. ULOC_REQUESTED_LOCALE = 'EN-US-ODESSA'
  51. ULOC_VALID_LOCALE = 'en_US'
  52. ULOC_ACTUAL_LOCALE = 'en'
  53. Locale: 'UK_UA_ODESSA'
  54. ULOC_REQUESTED_LOCALE = 'UK_UA_ODESSA'
  55. ULOC_VALID_LOCALE = 'uk_UA'
  56. ULOC_ACTUAL_LOCALE = 'uk'
  57. Locale: 'uk-ua_CALIFORNIA@currency=;currency=GRN'
  58. ULOC_REQUESTED_LOCALE = 'uk-ua_CALIFORNIA@currency=;currency=GRN'
  59. ULOC_VALID_LOCALE = 'uk_UA'
  60. ULOC_ACTUAL_LOCALE = 'uk'
  61. Locale: ''
  62. ULOC_REQUESTED_LOCALE = ''
  63. ULOC_VALID_LOCALE = '%s'
  64. ULOC_ACTUAL_LOCALE = '%s'
  65. Locale: 'root'
  66. ULOC_REQUESTED_LOCALE = 'root'
  67. ULOC_VALID_LOCALE = 'root'
  68. ULOC_ACTUAL_LOCALE = 'root'
  69. Locale: 'uk@currency=EURO'
  70. ULOC_REQUESTED_LOCALE = 'uk@currency=EURO'
  71. ULOC_VALID_LOCALE = 'uk'
  72. ULOC_ACTUAL_LOCALE = 'uk'
  73. Error creating collator with '1234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799' locale: Locale string too long, should be no longer than 80 characters: U_ILLEGAL_ARGUMENT_ERROR