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.icu; 18 19 import java.util.Locale; 20 21 public class LocaleDataTest extends junit.framework.TestCase { 22 public void testAll() throws Exception { 23 // Test that we can get the locale data for all known locales. 24 for (Locale l : Locale.getAvailableLocales()) { 25 LocaleData d = LocaleData.get(l); 26 // System.err.format("%10s %10s %10s\n", l, d.timeFormat12, d.timeFormat24); 27 } 28 } 29 30 public void test_en_US() throws Exception { 31 LocaleData l = LocaleData.get(Locale.US); 32 assertEquals("AM", l.amPm[0]); 33 assertEquals("BC", l.eras[0]); 34 35 assertEquals("January", l.longMonthNames[0]); 36 assertEquals("Jan", l.shortMonthNames[0]); 37 assertEquals("J", l.tinyMonthNames[0]); 38 39 assertEquals("January", l.longStandAloneMonthNames[0]); 40 assertEquals("Jan", l.shortStandAloneMonthNames[0]); 41 assertEquals("J", l.tinyStandAloneMonthNames[0]); 42 43 assertEquals("Sunday", l.longWeekdayNames[1]); 44 assertEquals("Sun", l.shortWeekdayNames[1]); 45 assertEquals("S", l.tinyWeekdayNames[1]); 46 47 assertEquals("Sunday", l.longStandAloneWeekdayNames[1]); 48 assertEquals("Sun", l.shortStandAloneWeekdayNames[1]); 49 assertEquals("S", l.tinyStandAloneWeekdayNames[1]); 50 51 assertEquals("Yesterday", l.yesterday); 52 assertEquals("Today", l.today); 53 assertEquals("Tomorrow", l.tomorrow); 54 } 55 56 public void test_de_DE() throws Exception { 57 LocaleData l = LocaleData.get(new Locale("de", "DE")); 58 59 assertEquals("Gestern", l.yesterday); 60 assertEquals("Heute", l.today); 61 assertEquals("Morgen", l.tomorrow); 62 } 63 64 public void test_cs_CZ() throws Exception { 65 LocaleData l = LocaleData.get(new Locale("cs", "CZ")); 66 67 assertEquals("ledna", l.longMonthNames[0]); 68 assertEquals("led", l.shortMonthNames[0]); 69 assertEquals("1", l.tinyMonthNames[0]); 70 71 assertEquals("leden", l.longStandAloneMonthNames[0]); 72 assertEquals("led", l.shortStandAloneMonthNames[0]); 73 assertEquals("l", l.tinyStandAloneMonthNames[0]); 74 } 75 76 public void test_ru_RU() throws Exception { 77 LocaleData l = LocaleData.get(new Locale("ru", "RU")); 78 79 assertEquals("", l.longWeekdayNames[1]); 80 assertEquals("", l.shortWeekdayNames[1]); 81 assertEquals("", l.tinyWeekdayNames[1]); 82 83 // Russian stand-alone weekday names get an initial capital. 84 assertEquals("", l.longStandAloneWeekdayNames[1]); 85 assertEquals("", l.shortStandAloneWeekdayNames[1]); 86 assertEquals("", l.tinyStandAloneWeekdayNames[1]); 87 } 88 89 // http://code.google.com/p/android/issues/detail?id=38844 90 public void testDecimalFormatSymbols_es() throws Exception { 91 LocaleData es = LocaleData.get(new Locale("es")); 92 assertEquals(',', es.decimalSeparator); 93 assertEquals('.', es.groupingSeparator); 94 95 LocaleData es_419 = LocaleData.get(new Locale("es", "419")); 96 assertEquals('.', es_419.decimalSeparator); 97 assertEquals(',', es_419.groupingSeparator); 98 99 LocaleData es_US = LocaleData.get(new Locale("es", "US")); 100 assertEquals('.', es_US.decimalSeparator); 101 assertEquals(',', es_US.groupingSeparator); 102 103 LocaleData es_MX = LocaleData.get(new Locale("es", "MX")); 104 assertEquals('.', es_MX.decimalSeparator); 105 assertEquals(',', es_MX.groupingSeparator); 106 107 LocaleData es_AR = LocaleData.get(new Locale("es", "AR")); 108 assertEquals(',', es_AR.decimalSeparator); 109 assertEquals('.', es_AR.groupingSeparator); 110 } 111 112 // http://b/7924970 113 public void testTimeFormat12And24() throws Exception { 114 LocaleData en_US = LocaleData.get(Locale.US); 115 assertEquals("h:mm a", en_US.timeFormat12); 116 assertEquals("HH:mm", en_US.timeFormat24); 117 118 LocaleData ja_JP = LocaleData.get(Locale.JAPAN); 119 assertEquals("aK:mm", ja_JP.timeFormat12); 120 assertEquals("H:mm", ja_JP.timeFormat24); 121 } 122 } 123