Annotation of embedaddon/php/ext/intl/tests/ut_common.inc, revision 1.1
1.1 ! misho 1: <?php
! 2: /*
! 3: * Run unit test in OO- and in procedural mode.
! 4: * Then compare the outputs.
! 5: * It they're equal then show one of them.
! 6: * Otherwise indicate an error.
! 7: */
! 8: function ut_run()
! 9: {
! 10: // Run unit test in OO mode.
! 11: $GLOBALS['oo-mode'] = true;
! 12: $oo_result = ut_main();
! 13:
! 14: // Run unit test in procedural mode.
! 15: $GLOBALS['oo-mode'] = false;
! 16: $proc_result = ut_main();
! 17:
! 18: // Show error if the APIs produce different results.
! 19: if( $proc_result !== $oo_result )
! 20: {
! 21: echo "ERROR: OO- and procedural APIs produce different results!\n";
! 22: echo "OO API output:\n";
! 23: echo str_repeat( '=', 78 ) . "\n";
! 24: echo $oo_result;
! 25: echo str_repeat( '=', 78 ) . "\n";
! 26: echo "procedural API output:\n";
! 27: echo str_repeat( '=', 78 ) . "\n";
! 28: echo $proc_result;
! 29: echo str_repeat( '=', 78 ) . "\n";
! 30: return;
! 31: }
! 32:
! 33: // Else, if the results are equal, show one of them.
! 34: echo $proc_result;
! 35: }
! 36:
! 37: function dump( $val )
! 38: {
! 39: return var_export( $val, true );
! 40: }
! 41:
! 42: /*
! 43: * Wrappers around Collator methods to run them in either OO- or procedural mode.
! 44: */
! 45:
! 46: function ut_coll_create( $locale )
! 47: {
! 48: return $GLOBALS['oo-mode'] ? Collator::create( $locale ) : collator_create( $locale );
! 49: }
! 50: function ut_coll_compare( $coll, $str1, $str2 )
! 51: {
! 52: return $GLOBALS['oo-mode'] ? $coll->compare( $str1, $str2 ) : collator_compare( $coll, $str1, $str2 );
! 53: }
! 54: function ut_coll_sort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
! 55: {
! 56: return $GLOBALS['oo-mode'] ? $coll->sort( $arr, $sort_flag ) : collator_sort( $coll, $arr, $sort_flag );
! 57: }
! 58: function ut_coll_sort_with_sort_keys( $coll, &$arr )
! 59: {
! 60: return $GLOBALS['oo-mode'] ? $coll->sortWithSortKeys( $arr ) : collator_sort_with_sort_keys( $coll, $arr );
! 61: }
! 62: function ut_coll_get_sort_key( $coll, $str )
! 63: {
! 64: return $GLOBALS['oo-mode'] ? $coll->getSortKey( $str ) : collator_get_sort_key( $coll, $str );
! 65: }
! 66: function ut_coll_asort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
! 67: {
! 68: return $GLOBALS['oo-mode'] ? $coll->asort( $arr, $sort_flag ) : collator_asort( $coll, $arr, $sort_flag );
! 69: }
! 70: function ut_coll_get_locale( $coll, $type )
! 71: {
! 72: return $GLOBALS['oo-mode'] ? $coll->getLocale( $type ) : collator_get_locale( $coll, $type );
! 73: }
! 74: function ut_coll_get_display_name( $obj_loc, $disp_loc )
! 75: {
! 76: return $GLOBALS['oo-mode'] ? Collator::getDisplayName( $obj_loc, $disp_loc ) : collator_get_display_name( $obj_loc, $disp_loc );
! 77: }
! 78: function ut_coll_get_available_locales()
! 79: {
! 80: return $GLOBALS['oo-mode'] ? Collator::getAvailableLocales() : collator_get_available_locales();
! 81: }
! 82: function ut_coll_get_attribute( $coll, $attr )
! 83: {
! 84: return $GLOBALS['oo-mode'] ? $coll->getAttribute( $attr ) : collator_get_attribute( $coll, $attr );
! 85: }
! 86: function ut_coll_get_strength( $coll )
! 87: {
! 88: return $GLOBALS['oo-mode'] ? $coll->getStrength() : collator_get_strength( $coll );
! 89: }
! 90: function ut_coll_set_strength( $coll, $strength )
! 91: {
! 92: return $GLOBALS['oo-mode'] ? $coll->setStrength( $strength ) : collator_set_strength( $coll, $strength );
! 93: }
! 94: function ut_coll_set_attribute( $coll, $attr, $val )
! 95: {
! 96: return $GLOBALS['oo-mode'] ? $coll->setAttribute( $attr, $val ) : collator_set_attribute( $coll, $attr, $val );
! 97: }
! 98: function ut_coll_get_variable_top( $coll )
! 99: {
! 100: return $GLOBALS['oo-mode'] ? $coll->getVariableTop() : collator_get_variable_top( $coll );
! 101: }
! 102: function ut_coll_set_variable_top( $coll, $var_top )
! 103: {
! 104: return $GLOBALS['oo-mode'] ? $coll->setVariableTop( $var_top ) : collator_set_variable_top( $coll, $var_top );
! 105: }
! 106: function ut_coll_restore_variable_top( $coll, $var_top )
! 107: {
! 108: return $GLOBALS['oo-mode'] ? $coll->restoreVariableTop( $var_top ) : collator_restore_variable_top( $coll, $var_top );
! 109: }
! 110: function ut_coll_get_error_code( $coll )
! 111: {
! 112: return $GLOBALS['oo-mode'] ? $coll->getErrorCode() : collator_get_error_code( $coll );
! 113: }
! 114: function ut_coll_get_error_message( $coll )
! 115: {
! 116: return $GLOBALS['oo-mode'] ? $coll->getErrorMessage() : collator_get_error_message( $coll );
! 117: }
! 118: function ut_coll_get_default()
! 119: {
! 120: return $GLOBALS['oo-mode'] ? Collator::getDefault() : collator_get_default();
! 121: }
! 122: function ut_coll_set_default( $coll )
! 123: {
! 124: return $GLOBALS['oo-mode'] ? Collator::setDefault( $coll ) : collator_set_default( $coll );
! 125: }
! 126:
! 127: /*
! 128: * Wrappers around NumberFormatter methods to run them in either OO- or procedural mode.
! 129: */
! 130:
! 131: // FIXME: incomplete list
! 132:
! 133: function ut_nfmt_create( $locale, $style, $pattern = null )
! 134: {
! 135: return $GLOBALS['oo-mode'] ? new NumberFormatter( $locale, $style, $pattern ) : numfmt_create( $locale, $style, $pattern );
! 136: }
! 137: function ut_nfmt_format( $fmt, $number, $type = null )
! 138: {
! 139: return $GLOBALS['oo-mode'] ? $fmt->format( $number, $type ) : numfmt_format( $fmt, $number, $type );
! 140: }
! 141: function ut_nfmt_parse( $fmt, $string, $type = NumberFormatter::TYPE_DOUBLE, &$position = null )
! 142: {
! 143: if(is_null($position)) {
! 144: return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type ) : numfmt_parse( $fmt, $string, $type );
! 145: } else {
! 146: return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type, $position ) : numfmt_parse( $fmt, $string, $type, $position );
! 147: }
! 148: }
! 149: function ut_nfmt_format_currency( $fmt, $number, $currency )
! 150: {
! 151: return $GLOBALS['oo-mode'] ? $fmt->formatCurrency( $number, $currency ) : numfmt_format_currency( $fmt, $number, $currency );
! 152: }
! 153: function ut_nfmt_parse_currency( $fmt, $string, &$currency, &$position = null )
! 154: {
! 155: if(is_null($position)) {
! 156: return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency ) : numfmt_parse_currency( $fmt, $string, $currency );
! 157: } else {
! 158: return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency, $position ) : numfmt_parse_currency( $fmt, $string, $currency, $position );
! 159: }
! 160: }
! 161: function ut_nfmt_set_attribute( $fmt, $attribute, $value )
! 162: {
! 163: return $GLOBALS['oo-mode'] ? $fmt->setAttribute( $attribute, $value ) : numfmt_set_attribute( $fmt, $attribute, $value );
! 164: }
! 165: function ut_nfmt_set_text_attribute( $fmt, $attribute, $value )
! 166: {
! 167: return $GLOBALS['oo-mode'] ? $fmt->setTextAttribute( $attribute, $value ) : numfmt_set_text_attribute( $fmt, $attribute, $value );
! 168: }
! 169: function ut_nfmt_set_symbol( $fmt, $attribute, $value )
! 170: {
! 171: return $GLOBALS['oo-mode'] ? $fmt->setSymbol( $attribute, $value ) : numfmt_set_symbol( $fmt, $attribute, $value );
! 172: }
! 173: function ut_nfmt_set_pattern( $fmt, $pattern )
! 174: {
! 175: return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) : numfmt_set_pattern( $fmt, $pattern );
! 176: }
! 177: function ut_nfmt_get_attribute( $fmt, $attribute )
! 178: {
! 179: return $GLOBALS['oo-mode'] ? $fmt->getAttribute( $attribute ) : numfmt_get_attribute( $fmt, $attribute );
! 180: }
! 181: function ut_nfmt_get_text_attribute( $fmt, $attribute )
! 182: {
! 183: return $GLOBALS['oo-mode'] ? $fmt->getTextAttribute( $attribute ) : numfmt_get_text_attribute( $fmt, $attribute );
! 184: }
! 185: function ut_nfmt_get_symbol( $fmt, $attribute )
! 186: {
! 187: return $GLOBALS['oo-mode'] ? $fmt->getSymbol( $attribute ) : numfmt_get_symbol( $fmt, $attribute );
! 188: }
! 189: function ut_nfmt_get_pattern( $fmt )
! 190: {
! 191: return $GLOBALS['oo-mode'] ? $fmt->getPattern() : numfmt_get_pattern( $fmt );
! 192: }
! 193: function ut_nfmt_get_locale( $fmt, $type = 0 )
! 194: {
! 195: return $GLOBALS['oo-mode'] ? $fmt->getLocale( $type ) : numfmt_get_locale( $fmt, $type );
! 196: }
! 197: function ut_nfmt_get_error_code( $fmt )
! 198: {
! 199: return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : numfmt_get_error_code( $fmt );
! 200: }
! 201: function ut_nfmt_get_error_message( $fmt )
! 202: {
! 203: return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() : numfmt_get_error_message( $fmt );
! 204: }
! 205:
! 206: function ut_norm_normalize( $str, $form )
! 207: {
! 208: return $GLOBALS['oo-mode'] ? Normalizer::normalize( $str, $form ) : normalizer_normalize( $str, $form );
! 209: }
! 210: function ut_norm_is_normalized( $str, $form )
! 211: {
! 212: return $GLOBALS['oo-mode'] ? Normalizer::isNormalized( $str, $form ) : normalizer_is_normalized( $str, $form );
! 213: }
! 214:
! 215: /*
! 216: * Wrappers around Collator methods to run them in either OO- or procedural mode.
! 217: */
! 218:
! 219: function ut_loc_get_default( )
! 220: {
! 221: return $GLOBALS['oo-mode'] ? Locale::getDefault( ) : locale_get_default();
! 222: }
! 223: function ut_loc_set_default( $locale )
! 224: {
! 225: return $GLOBALS['oo-mode'] ? Locale::setDefault( $locale ) : locale_set_default( $locale );
! 226: }
! 227: function ut_loc_get_primary_language( $locale )
! 228: {
! 229: return $GLOBALS['oo-mode'] ? Locale::getPrimaryLanguage( $locale ) : locale_get_primary_language( $locale );
! 230: }
! 231: function ut_loc_get_script( $locale )
! 232: {
! 233: return $GLOBALS['oo-mode'] ? Locale::getScript( $locale ) : locale_get_script( $locale );
! 234: }
! 235: function ut_loc_get_region( $locale )
! 236: {
! 237: return $GLOBALS['oo-mode'] ? Locale::getRegion( $locale ) : locale_get_region( $locale );
! 238: }
! 239: function ut_loc_get_keywords( $locale )
! 240: {
! 241: return $GLOBALS['oo-mode'] ? Locale::getKeywords( $locale ) : locale_get_keywords( $locale );
! 242: }
! 243: function ut_loc_get_display_name( $locale , $dispLocale )
! 244: {
! 245: return $GLOBALS['oo-mode'] ? Locale::getDisplayName( $locale , $dispLocale ) : locale_get_display_name( $locale , $dispLocale );
! 246: }
! 247: function ut_loc_get_display_language( $locale , $dispLocale )
! 248: {
! 249: return $GLOBALS['oo-mode'] ? Locale::getDisplayLanguage( $locale , $dispLocale ) : locale_get_display_language( $locale , $dispLocale );
! 250: }
! 251: function ut_loc_get_display_script( $locale , $dispLocale )
! 252: {
! 253: return $GLOBALS['oo-mode'] ? Locale::getDisplayScript( $locale , $dispLocale ) : locale_get_display_script( $locale , $dispLocale );
! 254: }
! 255: function ut_loc_get_display_region( $locale, $dispLocale )
! 256: {
! 257: return $GLOBALS['oo-mode'] ? Locale::getDisplayRegion( $locale, $dispLocale ) : locale_get_display_region( $locale, $dispLocale );
! 258: }
! 259: function ut_loc_get_display_variant( $locale , $dispLocale )
! 260: {
! 261: return $GLOBALS['oo-mode'] ? Locale::getDisplayVariant( $locale , $dispLocale ) : locale_get_display_variant( $locale, $dispLocale );
! 262: }
! 263: function ut_loc_locale_compose( $loc_parts_arr )
! 264: {
! 265: return $GLOBALS['oo-mode'] ? Locale::composeLocale( $loc_parts_arr ) : locale_compose( $loc_parts_arr );
! 266: }
! 267: function ut_loc_locale_parse( $locale )
! 268: {
! 269: return $GLOBALS['oo-mode'] ? Locale::parseLocale( $locale ) : locale_parse($locale );
! 270: }
! 271: function ut_loc_locale_get_all_variants( $locale )
! 272: {
! 273: return $GLOBALS['oo-mode'] ? Locale::getAllVariants( $locale ) : locale_get_all_variants( $locale );
! 274: }
! 275: function ut_loc_locale_filter_matches( $lang_tag,$loc_range ,$isCanonical)
! 276: {
! 277: return $GLOBALS['oo-mode'] ? Locale::filterMatches( $lang_tag,$loc_range ,$isCanonical) : locale_filter_matches( $lang_tag,$loc_range ,$isCanonical);
! 278: }
! 279: function ut_loc_canonicalize( $locale )
! 280: {
! 281: return $GLOBALS['oo-mode'] ? Locale::canonicalize( $locale ) : locale_canonicalize( $locale );
! 282: }
! 283: function ut_loc_locale_lookup( $lang_tag_arr,$loc_range,$isCanonical,$default_loc)
! 284: {
! 285: return $GLOBALS['oo-mode'] ? Locale::lookup( $lang_tag_arr,$loc_range,$isCanonical,$default_loc ) : locale_lookup( $lang_tag_arr,$loc_range,$isCanonical,$default_loc );
! 286: }
! 287: function ut_loc_accept_http($http) {
! 288: return $GLOBALS['oo-mode'] ? Locale::acceptFromHttp($http):locale_accept_from_http($http);
! 289: }
! 290: /* MessageFormatter functions */
! 291: function ut_msgfmt_create( $locale, $pattern)
! 292: {
! 293: return $GLOBALS['oo-mode'] ? MessageFormatter::create( $locale, $pattern ) : msgfmt_create( $locale, $pattern );
! 294: }
! 295: function ut_msgfmt_format( $fmt, $args )
! 296: {
! 297: return $GLOBALS['oo-mode'] ? $fmt->format( $args ) : msgfmt_format( $fmt, $args);
! 298: }
! 299: function ut_msgfmt_parse( $fmt, $string)
! 300: {
! 301: return $GLOBALS['oo-mode'] ? $fmt->parse( $string) : msgfmt_parse( $fmt, $string);
! 302: }
! 303: function ut_msgfmt_format_message( $locale, $pattern, $args )
! 304: {
! 305: return $GLOBALS['oo-mode'] ? MessageFormatter::formatMessage( $locale, $pattern, $args ) : msgfmt_format_message( $locale, $pattern, $args );
! 306: }
! 307: function ut_msgfmt_parse_message( $locale, $pattern, $string )
! 308: {
! 309: return $GLOBALS['oo-mode'] ? MessageFormatter::parseMessage( $locale, $pattern, $string ) : msgfmt_parse_message( $locale, $pattern, $string );
! 310: }
! 311: function ut_msgfmt_set_pattern( $fmt, $pattern )
! 312: {
! 313: return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) : msgfmt_set_pattern( $fmt, $pattern );
! 314: }
! 315: function ut_msgfmt_get_pattern( $fmt )
! 316: {
! 317: return $GLOBALS['oo-mode'] ? $fmt->getPattern() : msgfmt_get_pattern( $fmt );
! 318: }
! 319: function ut_msgfmt_get_locale( $fmt )
! 320: {
! 321: return $GLOBALS['oo-mode'] ? $fmt->getLocale( ) : msgfmt_get_locale( $fmt );
! 322: }
! 323: function ut_msgfmt_get_error_code( $fmt )
! 324: {
! 325: return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : msgfmt_get_error_code( $fmt );
! 326: }
! 327: function ut_msgfmt_get_error_message( $fmt )
! 328: {
! 329: return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() : msgfmt_get_error_message( $fmt );
! 330: }
! 331: /* IntlDateFormatter functions */
! 332: function ut_datefmt_create( $locale, $datetype, $timetype, $timezone = null, $calendar = null ,$pattern = null)
! 333: {
! 334: return $GLOBALS['oo-mode'] ? datefmt_create( $locale, $datetype, $timetype, $timezone, $calendar ,$pattern ) : datefmt_create( $locale, $datetype, $timetype, $timezone, $calendar ,$pattern);
! 335: }
! 336: function ut_datefmt_get_datetype( $fmt )
! 337: {
! 338: return $GLOBALS['oo-mode'] ? $fmt->getDateType( ) : datefmt_get_datetype( $fmt );
! 339: }
! 340: function ut_datefmt_get_timetype( $fmt )
! 341: {
! 342: return $GLOBALS['oo-mode'] ? $fmt->getTimeType( ) : datefmt_get_timetype( $fmt );
! 343: }
! 344: function ut_datefmt_get_calendar( $fmt )
! 345: {
! 346: return $GLOBALS['oo-mode'] ? $fmt->getCalendar( ) : datefmt_get_calendar( $fmt );
! 347: }
! 348: function ut_datefmt_set_calendar( $fmt ,$calendar )
! 349: {
! 350: return $GLOBALS['oo-mode'] ? $fmt->setCalendar( $calendar ) : datefmt_set_calendar( $fmt , $calendar );
! 351: }
! 352: function ut_datefmt_get_timezone_id( $fmt )
! 353: {
! 354: return $GLOBALS['oo-mode'] ? $fmt->getTimeZoneId( ) : datefmt_get_timezone_id( $fmt );
! 355: }
! 356: function ut_datefmt_set_timezone_id( $fmt ,$timezone_id )
! 357: {
! 358: return $GLOBALS['oo-mode'] ? $fmt->setTimeZoneId( $timezone_id ) : datefmt_set_timezone_id( $fmt ,$timezone_id);
! 359: }
! 360: function ut_datefmt_get_pattern( $fmt )
! 361: {
! 362: return $GLOBALS['oo-mode'] ? $fmt->getPattern() : datefmt_get_pattern( $fmt );
! 363: }
! 364: function ut_datefmt_set_pattern( $fmt , $pattern )
! 365: {
! 366: return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) : datefmt_set_pattern( $fmt , $pattern);
! 367: }
! 368: function ut_datefmt_get_locale( $fmt ,$type=ULOC_ACTUAL_LOCALE)
! 369: {
! 370: return $GLOBALS['oo-mode'] ? $fmt->getLocale($type ) : datefmt_get_locale( $fmt ,$type);
! 371: }
! 372: function ut_datefmt_is_lenient( $fmt )
! 373: {
! 374: return $GLOBALS['oo-mode'] ? $fmt->isLenient() : datefmt_is_lenient( $fmt );
! 375: }
! 376: function ut_datefmt_set_lenient( $fmt , $lenient )
! 377: {
! 378: return $GLOBALS['oo-mode'] ? $fmt->setLenient( $lenient ) : datefmt_set_lenient( $fmt , $lenient);
! 379: }
! 380: function ut_datefmt_format( $fmt , $value )
! 381: {
! 382: return $GLOBALS['oo-mode'] ? $fmt->format( $value ) : datefmt_format( $fmt , $value);
! 383: }
! 384: function ut_datefmt_parse( $fmt , $value , &$parse_pos=0 )
! 385: {
! 386: return $GLOBALS['oo-mode'] ? $fmt->parse( $value ,$parse_pos ) : datefmt_parse( $fmt , $value,$parse_pos);
! 387: }
! 388: function ut_datefmt_localtime( $fmt , $value , &$parse_pos=0 )
! 389: {
! 390: return $GLOBALS['oo-mode'] ? $fmt->localtime( $value , $parse_pos ) : datefmt_localtime( $fmt , $value , $parse_pos );
! 391: }
! 392:
! 393: function ut_resourcebundle_create( $locale, $bundle, $fallback=true )
! 394: {
! 395: return $GLOBALS['oo-mode'] ? new ResourceBundle($locale, $bundle, $fallback): resourcebundle_create($locale, $bundle, $fallback);
! 396: }
! 397: function ut_resourcebundle_count($bundle )
! 398: {
! 399: return $GLOBALS['oo-mode'] ? $bundle->count():resourcebundle_count($bundle);
! 400: }
! 401: function ut_resourcebundle_locales($bundle )
! 402: {
! 403: return $GLOBALS['oo-mode'] ? ResourceBundle::getLocales($bundle):resourcebundle_locales($bundle);
! 404: }
! 405: function ut_resourcebundle_get($bundle, $idx )
! 406: {
! 407: return $GLOBALS['oo-mode'] ? $bundle->get($idx):resourcebundle_get($bundle, $idx);
! 408: }
! 409: function ut_resourcebundle_get_error_code($bundle )
! 410: {
! 411: return $GLOBALS['oo-mode'] ? $bundle->getErrorCode():resourcebundle_get_error_code($bundle);
! 412: }
! 413: function ut_resourcebundle_get_error_message($bundle )
! 414: {
! 415: return $GLOBALS['oo-mode'] ? $bundle->getErrorMessage():resourcebundle_get_error_message($bundle);
! 416: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>