test/java/util/Locale/LocaleProviders.java

Print this page
rev 9231 : imported patch 8027289


  51             case "tzNameTest":
  52                 tzNameTest(args[1]);
  53                 break;
  54 
  55             case "bug8001440Test":
  56                 bug8001440Test();
  57                 break;
  58 
  59             case "bug8010666Test":
  60                 bug8010666Test();
  61                 break;
  62 
  63             case "bug8013086Test":
  64                 bug8013086Test(args[1], args[2]);
  65                 break;
  66 
  67             case "bug8013903Test":
  68                 bug8013903Test();
  69                 break;
  70 




  71             default:
  72                 throw new RuntimeException("Test method '"+methodName+"' not found.");
  73         }
  74     }
  75 
  76     static void getPlatformLocale(Locale.Category cat) {
  77         Locale defloc = Locale.getDefault(cat);
  78         System.out.printf("%s,%s\n", defloc.getLanguage(), defloc.getCountry());
  79     }
  80 
  81     static void adapterTest(String expected, String lang, String ctry) {
  82         Locale testLocale = new Locale(lang, ctry);
  83         LocaleProviderAdapter ldaExpected =
  84             LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.valueOf(expected));
  85         if (!ldaExpected.getDateFormatProvider().isSupportedLocale(testLocale)) {
  86             System.out.println("test locale: "+testLocale+" is not supported by the expected provider: "+ldaExpected+". Ignoring the test.");
  87             return;
  88         }
  89         String preference = System.getProperty("java.locale.providers", "");
  90         LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, testLocale);


 215             SimpleDateFormat sdf = new SimpleDateFormat("GGGG yyyy.MMM.dd '('E')' a hh:mm:ss", l);
 216             sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
 217             String result = sdf.format(sampleDate);
 218             System.out.println(result);
 219             if (LocaleProviderAdapter.getAdapterPreference()
 220                 .contains(LocaleProviderAdapter.Type.JRE)) {
 221                 if (!jreResult.equals(result)) {
 222                     throw new RuntimeException("Format failed. result: \"" +
 223                         result + "\", expected: \"" + jreResult);
 224                 }
 225             } else {
 226                 // should be FALLBACK, as Windows HOST does not return
 227                 // display names
 228                 if (!fallbackResult.equals(result)) {
 229                     throw new RuntimeException("Format failed. result: \"" +
 230                         result + "\", expected: \"" + fallbackResult);
 231                 }
 232             }
 233         }
 234     }










 235 }


  51             case "tzNameTest":
  52                 tzNameTest(args[1]);
  53                 break;
  54 
  55             case "bug8001440Test":
  56                 bug8001440Test();
  57                 break;
  58 
  59             case "bug8010666Test":
  60                 bug8010666Test();
  61                 break;
  62 
  63             case "bug8013086Test":
  64                 bug8013086Test(args[1], args[2]);
  65                 break;
  66 
  67             case "bug8013903Test":
  68                 bug8013903Test();
  69                 break;
  70 
  71             case "bug8027289Test":
  72                 bug8027289Test(args[1]);
  73                 break;
  74 
  75             default:
  76                 throw new RuntimeException("Test method '"+methodName+"' not found.");
  77         }
  78     }
  79 
  80     static void getPlatformLocale(Locale.Category cat) {
  81         Locale defloc = Locale.getDefault(cat);
  82         System.out.printf("%s,%s\n", defloc.getLanguage(), defloc.getCountry());
  83     }
  84 
  85     static void adapterTest(String expected, String lang, String ctry) {
  86         Locale testLocale = new Locale(lang, ctry);
  87         LocaleProviderAdapter ldaExpected =
  88             LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.valueOf(expected));
  89         if (!ldaExpected.getDateFormatProvider().isSupportedLocale(testLocale)) {
  90             System.out.println("test locale: "+testLocale+" is not supported by the expected provider: "+ldaExpected+". Ignoring the test.");
  91             return;
  92         }
  93         String preference = System.getProperty("java.locale.providers", "");
  94         LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, testLocale);


 219             SimpleDateFormat sdf = new SimpleDateFormat("GGGG yyyy.MMM.dd '('E')' a hh:mm:ss", l);
 220             sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
 221             String result = sdf.format(sampleDate);
 222             System.out.println(result);
 223             if (LocaleProviderAdapter.getAdapterPreference()
 224                 .contains(LocaleProviderAdapter.Type.JRE)) {
 225                 if (!jreResult.equals(result)) {
 226                     throw new RuntimeException("Format failed. result: \"" +
 227                         result + "\", expected: \"" + jreResult);
 228                 }
 229             } else {
 230                 // should be FALLBACK, as Windows HOST does not return
 231                 // display names
 232                 if (!fallbackResult.equals(result)) {
 233                     throw new RuntimeException("Format failed. result: \"" +
 234                         result + "\", expected: \"" + fallbackResult);
 235                 }
 236             }
 237         }
 238     }
 239 
 240     static void bug8027289Test(String expectedCodePoint) {
 241         char[] expectedSymbol = Character.toChars(Integer.valueOf(expectedCodePoint, 16));
 242         NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.CHINA);
 243         char formatted = nf.format(7000).charAt(0);
 244         System.out.println("returned: " + formatted + ", expected: " + expectedSymbol[0]);
 245         if (formatted != expectedSymbol[0]) {
 246             throw new RuntimeException("Unexpected Chinese currency symbol. returned: " + formatted + ", expected: " + expectedSymbol[0]);
 247         }
 248     }
 249 }