test/java/util/PluggableLocale/LocaleNameProviderTest.java
Print this page
rev 5957 : imported patch 8000245.8000273.8000615
@@ -34,19 +34,25 @@
public static void main(String[] s) {
new LocaleNameProviderTest();
}
LocaleNameProviderTest() {
+ checkAvailLocValidityTest();
+ variantFallbackTest();
+ }
+
+ void checkAvailLocValidityTest() {
com.bar.LocaleNameProviderImpl lnp = new com.bar.LocaleNameProviderImpl();
Locale[] availloc = Locale.getAvailableLocales();
Locale[] testloc = availloc.clone();
+ List<Locale> jreimplloc = Arrays.asList(LocaleProviderAdapter.forJRE().getLocaleNameProvider().getAvailableLocales());
List<Locale> providerloc = Arrays.asList(lnp.getAvailableLocales());
for (Locale target: availloc) {
// pure JRE implementation
OpenListResourceBundle rb = LocaleProviderAdapter.forJRE().getLocaleData().getLocaleNames(target);
- boolean jreHasBundle = rb.getLocale().equals(target);
+ boolean jreSupportsTarget = jreimplloc.contains(target);
for (Locale test: testloc) {
// codes
String lang = test.getLanguage();
String ctry = test.getCountry();
@@ -65,11 +71,11 @@
providerslang = lnp.getDisplayLanguage(lang, target);
providersctry = lnp.getDisplayCountry(ctry, target);
providersvrnt = lnp.getDisplayVariant(vrnt, target);
}
- // JRE's name (if any)
+ // JRE's name
String jreslang = null;
String jresctry = null;
String jresvrnt = null;
if (!lang.equals("")) {
try {
@@ -82,20 +88,43 @@
} catch (MissingResourceException mre) {}
}
if (!vrnt.equals("")) {
try {
jresvrnt = rb.getString("%%"+vrnt);
- } catch (MissingResourceException mre) {
- jresvrnt = vrnt;
+ } catch (MissingResourceException mre) {}
}
- }
+ System.out.print("For key: "+lang+" ");
checkValidity(target, jreslang, providerslang, langresult,
- jreHasBundle && rb.handleGetKeys().contains(lang));
+ jreSupportsTarget && jreslang != null);
+ System.out.print("For key: "+ctry+" ");
checkValidity(target, jresctry, providersctry, ctryresult,
- jreHasBundle && rb.handleGetKeys().contains(ctry));
+ jreSupportsTarget && jresctry != null);
+ System.out.print("For key: "+vrnt+" ");
checkValidity(target, jresvrnt, providersvrnt, vrntresult,
- jreHasBundle && rb.handleGetKeys().contains("%%"+vrnt));
+ jreSupportsTarget && jresvrnt != null);
}
}
}
+
+ void variantFallbackTest() {
+ Locale YY = new Locale("yy", "YY", "YYYY");
+ Locale YY_suffix = new Locale("yy", "YY", "YYYY_suffix");
+ String retVrnt = null;
+ String message = "variantFallbackTest() succeeded.";
+
+
+ try {
+ YY.getDisplayVariant(YY_suffix);
+ message = "variantFallbackTest() failed. Either provider wasn't invoked, or invoked without suffix.";
+ } catch (RuntimeException re) {
+ retVrnt = re.getMessage();
+ if (YY_suffix.getVariant().equals(retVrnt)) {
+ System.out.println(message);
+ return;
+ }
+ message = "variantFallbackTest() failed. Returned variant: "+retVrnt;
+ }
+
+ throw new RuntimeException(message);
+ }
}