1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package libcore.libcore.icu; 18 19 import java.util.Locale; 20 import libcore.icu.LocaleData; 21 22 public class LocaleDataTest extends junit.framework.TestCase { 23 public void testAll() throws Exception { 24 // Test that we can get the locale data for all known locales. 25 for (Locale l : Locale.getAvailableLocales()) { 26 LocaleData d = LocaleData.get(l); 27 // System.err.format("%20s %s %s %s\n", l, d.yesterday, d.today, d.tomorrow); 28 // System.err.format("%20s %10s %10s\n", l, d.timeFormat_hm, d.timeFormat_Hm); 29 } 30 } 31 32 public void test_en_US() throws Exception { 33 LocaleData l = LocaleData.get(Locale.US); 34 assertEquals("AM", l.amPm[0]); 35 assertEquals("a", l.narrowAm); 36 37 assertEquals("BC", l.eras[0]); 38 39 assertEquals("January", l.longMonthNames[0]); 40 assertEquals("Jan", l.shortMonthNames[0]); 41 assertEquals("J", l.tinyMonthNames[0]); 42 43 assertEquals("January", l.longStandAloneMonthNames[0]); 44 assertEquals("Jan", l.shortStandAloneMonthNames[0]); 45 assertEquals("J", l.tinyStandAloneMonthNames[0]); 46 47 assertEquals("Sunday", l.longWeekdayNames[1]); 48 assertEquals("Sun", l.shortWeekdayNames[1]); 49 assertEquals("S", l.tinyWeekdayNames[1]); 50 51 assertEquals("Sunday", l.longStandAloneWeekdayNames[1]); 52 assertEquals("Sun", l.shortStandAloneWeekdayNames[1]); 53 assertEquals("S", l.tinyStandAloneWeekdayNames[1]); 54 55 assertEquals("Yesterday", l.yesterday); 56 assertEquals("Today", l.today); 57 assertEquals("Tomorrow", l.tomorrow); 58 } 59 60 public void test_de_DE() throws Exception { 61 LocaleData l = LocaleData.get(new Locale("de", "DE")); 62 63 assertEquals("Gestern", l.yesterday); 64 assertEquals("Heute", l.today); 65 assertEquals("Morgen", l.tomorrow); 66 } 67 68 public void test_cs_CZ() throws Exception { 69 LocaleData l = LocaleData.get(new Locale("cs", "CZ")); 70 71 assertEquals("ledna", l.longMonthNames[0]); 72 assertEquals("led", l.shortMonthNames[0]); 73 assertEquals("1", l.tinyMonthNames[0]); 74 75 assertEquals("leden", l.longStandAloneMonthNames[0]); 76 assertEquals("led", l.shortStandAloneMonthNames[0]); 77 assertEquals("1", l.tinyStandAloneMonthNames[0]); 78 } 79 80 public void test_ko_KR() throws Exception { 81 LocaleData l = LocaleData.get(new Locale("ko", "KR")); 82 83 // Ensure the fix for http://b/14493853 doesn't mangle Hangul. 84 assertEquals("", l.yesterday); 85 assertEquals("", l.today); 86 assertEquals("", l.tomorrow); 87 } 88 89 public void test_ru_RU() throws Exception { 90 LocaleData l = LocaleData.get(new Locale("ru", "RU")); 91 92 assertEquals("", l.longWeekdayNames[1]); 93 assertEquals("", l.shortWeekdayNames[1]); 94 assertEquals("", l.tinyWeekdayNames[1]); 95 96 // Russian stand-alone weekday names have no initial capital since CLDR 28/ICU 56. 97 assertEquals("", l.longStandAloneWeekdayNames[1]); 98 assertEquals("", l.shortStandAloneWeekdayNames[1]); 99 assertEquals("", l.tinyStandAloneWeekdayNames[1]); 100 } 101 102 // http://code.google.com/p/android/issues/detail?id=38844 103 public void testDecimalFormatSymbols_es() throws Exception { 104 LocaleData es = LocaleData.get(new Locale("es")); 105 assertEquals(',', es.decimalSeparator); 106 assertEquals('.', es.groupingSeparator); 107 108 LocaleData es_419 = LocaleData.get(new Locale("es", "419")); 109 assertEquals('.', es_419.decimalSeparator); 110 assertEquals(',', es_419.groupingSeparator); 111 112 LocaleData es_US = LocaleData.get(new Locale("es", "US")); 113 assertEquals('.', es_US.decimalSeparator); 114 assertEquals(',', es_US.groupingSeparator); 115 116 LocaleData es_MX = LocaleData.get(new Locale("es", "MX")); 117 assertEquals('.', es_MX.decimalSeparator); 118 assertEquals(',', es_MX.groupingSeparator); 119 120 LocaleData es_AR = LocaleData.get(new Locale("es", "AR")); 121 assertEquals(',', es_AR.decimalSeparator); 122 assertEquals('.', es_AR.groupingSeparator); 123 } 124 125 // http://b/7924970 126 public void testTimeFormat12And24() throws Exception { 127 LocaleData en_US = LocaleData.get(Locale.US); 128 assertEquals("h:mm a", en_US.timeFormat_hm); 129 assertEquals("HH:mm", en_US.timeFormat_Hm); 130 131 LocaleData ja_JP = LocaleData.get(Locale.JAPAN); 132 assertEquals("aK:mm", ja_JP.timeFormat_hm); 133 assertEquals("H:mm", ja_JP.timeFormat_Hm); 134 } 135 136 // http://b/26397197 137 public void testPatternWithOverride() throws Exception { 138 LocaleData haw = LocaleData.get(new Locale("haw")); 139 assertFalse(haw.shortDateFormat.isEmpty()); 140 } 141 } 142