1/* 2 * Copyright (C) 2006 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 17package com.android.internal.telephony; 18 19import android.test.AndroidTestCase; 20import android.test.suitebuilder.annotation.SmallTest; 21 22import java.util.Locale; 23 24public class MccTableTest extends AndroidTestCase { 25 private final static String LOG_TAG = "GSM"; 26 27 @SmallTest 28 public void testTimeZone() throws Exception { 29 assertEquals("Europe/Paris", MccTable.defaultTimeZoneForMcc(208)); 30 assertEquals("Europe/Vienna", MccTable.defaultTimeZoneForMcc(232)); 31 assertEquals("Africa/Johannesburg", MccTable.defaultTimeZoneForMcc(655)); 32 assertEquals("Asia/Tokyo", MccTable.defaultTimeZoneForMcc(440)); 33 assertEquals("Asia/Tokyo", MccTable.defaultTimeZoneForMcc(441)); 34 assertEquals("Asia/Singapore", MccTable.defaultTimeZoneForMcc(525)); 35 assertEquals("Europe/Stockholm", MccTable.defaultTimeZoneForMcc(240)); 36 37 /* A test for the special handling for MCC 505. http://b/33228250. */ 38 assertEquals("Australia/Sydney", MccTable.defaultTimeZoneForMcc(505)); 39 assertEquals(null, MccTable.defaultTimeZoneForMcc(0)); // mcc not defined, hence default 40 assertEquals(null, MccTable.defaultTimeZoneForMcc(2000)); // mcc not defined, hence default 41 } 42 43 @SmallTest 44 public void testCountryCode() throws Exception { 45 assertEquals("lu", MccTable.countryCodeForMcc(270)); 46 assertEquals("gr", MccTable.countryCodeForMcc(202)); 47 assertEquals("fk", MccTable.countryCodeForMcc(750)); 48 assertEquals("mg", MccTable.countryCodeForMcc(646)); 49 assertEquals("us", MccTable.countryCodeForMcc(314)); 50 assertEquals("", MccTable.countryCodeForMcc(300)); // mcc not defined, hence default 51 assertEquals("", MccTable.countryCodeForMcc(0)); // mcc not defined, hence default 52 assertEquals("", MccTable.countryCodeForMcc(2000)); // mcc not defined, hence default 53 } 54 55 @SmallTest 56 public void testLang() throws Exception { 57 assertEquals("en", MccTable.defaultLanguageForMcc(311)); 58 assertEquals("de", MccTable.defaultLanguageForMcc(232)); 59 assertEquals("cs", MccTable.defaultLanguageForMcc(230)); 60 assertEquals("nl", MccTable.defaultLanguageForMcc(204)); 61 assertEquals("is", MccTable.defaultLanguageForMcc(274)); 62 assertEquals(null, MccTable.defaultLanguageForMcc(0)); // mcc not defined, hence default 63 assertEquals(null, MccTable.defaultLanguageForMcc(2000)); // mcc not defined, hence default 64 } 65 66 @SmallTest 67 public void testLang_India() throws Exception { 68 assertEquals("en", MccTable.defaultLanguageForMcc(404)); 69 assertEquals("en", MccTable.defaultLanguageForMcc(405)); 70 assertEquals("en", MccTable.defaultLanguageForMcc(406)); 71 } 72 73 @SmallTest 74 public void testLocale() throws Exception { 75 assertEquals(Locale.forLanguageTag("en-CA"), 76 MccTable.getLocaleFromMcc(getContext(), 302, null)); 77 assertEquals(Locale.forLanguageTag("en-GB"), 78 MccTable.getLocaleFromMcc(getContext(), 234, null)); 79 assertEquals(Locale.forLanguageTag("en-US"), 80 MccTable.getLocaleFromMcc(getContext(), 0, "en")); 81 assertEquals(Locale.forLanguageTag("zh-HK"), 82 MccTable.getLocaleFromMcc(getContext(), 454, null)); 83 assertEquals(Locale.forLanguageTag("en-HK"), 84 MccTable.getLocaleFromMcc(getContext(), 454, "en")); 85 assertEquals(Locale.forLanguageTag("zh-TW"), 86 MccTable.getLocaleFromMcc(getContext(), 466, null)); 87 } 88 89 @SmallTest 90 public void testSmDigits() throws Exception { 91 assertEquals(3, MccTable.smallestDigitsMccForMnc(312)); 92 assertEquals(2, MccTable.smallestDigitsMccForMnc(430)); 93 assertEquals(3, MccTable.smallestDigitsMccForMnc(365)); 94 assertEquals(2, MccTable.smallestDigitsMccForMnc(536)); 95 assertEquals(2, MccTable.smallestDigitsMccForMnc(352)); // sd not defined, hence default 96 assertEquals(2, MccTable.smallestDigitsMccForMnc(0)); // mcc not defined, hence default 97 assertEquals(2, MccTable.smallestDigitsMccForMnc(2000)); // mcc not defined, hence default 98 } 99} 100