summaryrefslogtreecommitdiffstats
path: root/tests/CoreTests/android/core/LocaleTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/CoreTests/android/core/LocaleTest.java')
-rw-r--r--tests/CoreTests/android/core/LocaleTest.java243
1 files changed, 0 insertions, 243 deletions
diff --git a/tests/CoreTests/android/core/LocaleTest.java b/tests/CoreTests/android/core/LocaleTest.java
deleted file mode 100644
index 72489c6..0000000
--- a/tests/CoreTests/android/core/LocaleTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.nio.charset.Charset;
-import java.text.DateFormatSymbols;
-import java.util.Calendar;
-import java.util.Currency;
-import java.util.Locale;
-import java.util.Set;
-import java.util.TimeZone;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Test some locale-dependent stuff for Android. This test mainly ensures that
- * our ICU configuration is correct and contains all the needed locales and
- * resource bundles.
- */
-public class LocaleTest extends TestCase {
-
- // Test basic Locale infrastructure.
- @SmallTest
- public void testLocale() throws Exception {
- Locale locale = new Locale("en");
- assertEquals("en", locale.toString());
-
- locale = new Locale("en", "US");
- assertEquals("en_US", locale.toString());
-
- locale = new Locale("en", "", "POSIX");
- assertEquals("en__POSIX", locale.toString());
-
- locale = new Locale("en", "US", "POSIX");
- assertEquals("en_US_POSIX", locale.toString());
- }
-
- /*
- * Tests some must-have locales. TODO: Add back "de". See discussion
- * immediately below this method.
- */
- @LargeTest
- public void testResourceBundles() throws Exception {
- Locale eng = new Locale("en", "US");
- DateFormatSymbols engSymbols = new DateFormatSymbols(eng);
-
- //Locale deu = new Locale("de", "DE");
- //DateFormatSymbols deuSymbols = new DateFormatSymbols(deu);
-
- TimeZone berlin = TimeZone.getTimeZone("Europe/Berlin");
-
- assertEquals("January", engSymbols.getMonths()[0]);
- //assertEquals("Januar", deuSymbols.getMonths()[0]);
-
- assertEquals("Sunday", engSymbols.getWeekdays()[Calendar.SUNDAY]);
- //assertEquals("Sonntag", deuSymbols.getWeekdays()[Calendar.SUNDAY]);
-
- assertEquals("Central European Time",
- berlin.getDisplayName(false, TimeZone.LONG, eng));
- assertEquals("Central European Summer Time",
- berlin.getDisplayName(true, TimeZone.LONG, eng));
-
- //assertEquals("Mitteleurop\u00E4ische Zeit",
- // berlin.getDisplayName(false, TimeZone.LONG, deu));
- //assertEquals("Mitteleurop\u00E4ische Sommerzeit",
- // berlin.getDisplayName(true, TimeZone.LONG, deu));
-
- assertTrue(engSymbols.getZoneStrings().length > 100);
- }
-
- /*
- * Disabled version of the above test. The version above omits
- * checks for stuff in the "de" locale, because we stripped that
- * out as part of the flash reduction effort (so that we could
- * still ship on Dream). We expect to have a baseline target that
- * includes a large enough system partition to include "de"
- * immediately after the last official release for Dream (whenever
- * that may be).
- *
- // Test some must-have locales.
- @LargeTest
- public void testResourceBundles() throws Exception {
- Locale eng = new Locale("en", "US");
- DateFormatSymbols engSymbols = new DateFormatSymbols(eng);
-
- Locale deu = new Locale("de", "DE");
- DateFormatSymbols deuSymbols = new DateFormatSymbols(deu);
-
- TimeZone berlin = TimeZone.getTimeZone("Europe/Berlin");
-
- assertEquals("January", engSymbols.getMonths()[0]);
- assertEquals("Januar", deuSymbols.getMonths()[0]);
-
- assertEquals("Sunday", engSymbols.getWeekdays()[Calendar.SUNDAY]);
- assertEquals("Sonntag", deuSymbols.getWeekdays()[Calendar.SUNDAY]);
-
- assertEquals("Central European Time",
- berlin.getDisplayName(false, TimeZone.LONG, eng));
- assertEquals("Central European Summer Time",
- berlin.getDisplayName(true, TimeZone.LONG, eng));
-
- assertEquals("Mitteleurop\u00E4ische Zeit",
- berlin.getDisplayName(false, TimeZone.LONG, deu));
- assertEquals("Mitteleurop\u00E4ische Sommerzeit",
- berlin.getDisplayName(true, TimeZone.LONG, deu));
-
- assertTrue(engSymbols.getZoneStrings().length > 100);
- }
- */
-
- // This one makes sure we have all necessary locales installed.
- // Suppress this flaky test for now.
- @Suppress
- public void testICULocales() {
- String[] locales = new String[] {
- // List of locales currently required for Android.
- "en_US", "es_US", "en_GB", "fr_FR", "de_DE", "de_AT", "cs_CZ", "nl_NL" };
-
- String[] mondays = new String[] {
- "Monday", "lunes", "Monday", "lundi", "Montag", "Montag", "pond\u011bl\u00ed", "maandag" };
-
- String[] currencies = new String[] {
- "USD", "USD", "GBP", "EUR", "EUR", "EUR", "CZK", "EUR"};
-
- for (int i = 0; i < locales.length; i++) {
- Locale l = new Locale(locales[i].substring(0, 2), locales[i].substring(3));
-
- // Check language part of locale.
- DateFormatSymbols d = new DateFormatSymbols(l);
- assertEquals("Monday name for " + locales[i] + " must match",
- mondays[i], d.getWeekdays()[2]);
-
- // Check country part of locale.
- Currency c = Currency.getInstance(l);
- assertEquals("Currency code for " + locales[i] + " must match",
- currencies[i], c.getCurrencyCode());
- }
- }
-
- // Regression test for 1118570: Create test cases for tracking ICU config
- // changes. This one makes sure we have the necessary converters installed
- // and don't lose the changes to the converter alias table.
- @MediumTest
- public void testICUConverters() {
- // List of encodings currently required for Android.
- String[] encodings = new String[] {
- // Encoding required by the language specification.
- "US-ASCII",
- "UTF-8",
- "UTF-16",
- "UTF-16BE",
- "UTF-16LE",
- "ISO-8859-1",
-
- // Additional encodings included in standard ICU
- "ISO-8859-2",
- "ISO-8859-3",
- "ISO-8859-4",
- "ISO-8859-5",
- "ISO-8859-6",
- "ISO-8859-7",
- "ISO-8859-8",
- "ISO-8859-8-I",
- "ISO-8859-9",
- "ISO-8859-10",
- "ISO-8859-11",
- "ISO-8859-13",
- "ISO-8859-14",
- "ISO-8859-15",
- "ISO-8859-16",
- "ISO-2022-JP",
- "Windows-950",
- "Windows-1250",
- "Windows-1251",
- "Windows-1252",
- "Windows-1253",
- "Windows-1254",
- "Windows-1255",
- "Windows-1256",
- "Windows-1257",
- "Windows-1258",
- "Big5",
- "CP864",
- "CP874",
- "EUC-CN",
- "EUC-JP",
- "KOI8-R",
- "Macintosh",
- "GBK",
- "GB2312",
- "EUC-KR",
-
- // Additional encoding not included in standard ICU.
- "GSM0338" };
-
- for (int i = 0; i < encodings.length; i++) {
- assertTrue("Charset " + encodings[i] + " must be supported",
- Charset.isSupported(encodings[i]));
-
- Charset cs = Charset.forName(encodings[i]);
- android.util.Log.d("LocaleTest", cs.name());
-
- Set<String> aliases = cs.aliases();
- for (String s: aliases) {
- android.util.Log.d("LocaleTest", " - " + s);
- }
- }
-
- // Test for valid encoding that is not included in Android. IBM-37 is
- // a perfect candidate for this, as it is being used for mainframes and
- // thus somewhat out of the scope of Android.
- assertFalse("Charset IBM-37 must not be supported",
- Charset.isSupported("IBM-37"));
-
- // Test for a bogus encoding.
- assertFalse("Charset KLINGON must not be supported",
- Charset.isSupported("KLINGON"));
-
- // Make sure our local change to the real translation table used for
- // EUC-JP doesn't get lost.
- Charset cs = Charset.forName("EUC-JP");
- assertTrue("EUC-JP must use 'ibm-954_P101-2007'", cs.aliases().contains("ibm-954_P101-2007"));
- }
-
-}