1ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/* 2ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Copyright (C) 2011 The Libphonenumber Authors 3ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 4ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Licensed under the Apache License, Version 2.0 (the "License"); 5ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * you may not use this file except in compliance with the License. 6ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * You may obtain a copy of the License at 7ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 8ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * http://www.apache.org/licenses/LICENSE-2.0 9ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * 10ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Unless required by applicable law or agreed to in writing, software 11ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * distributed under the License is distributed on an "AS IS" BASIS, 12ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * See the License for the specific language governing permissions and 14ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * limitations under the License. 15ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */ 16ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 17ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jiapackage com.android.i18n.phonenumbers; 18ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 19ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/** 20a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * Unit tests for ShortNumberUtil.java 21a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia * 22ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @author Shaopeng Jia 23ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */ 24b0e21c22b1ca6b9aeb1426924cdf42a221c3d416Shaopeng Jiapublic class ShortNumberUtilTest extends TestMetadataTestCase { 25ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia private ShortNumberUtil shortUtil; 26ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 27ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public ShortNumberUtilTest() { 28ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia shortUtil = new ShortNumberUtil(phoneUtil); 29ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 30ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 31ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumber_US() { 32ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("911", RegionCode.US)); 33ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("119", RegionCode.US)); 34ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("999", RegionCode.US)); 35ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 36ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 37ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumberLongNumber_US() { 38ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("9116666666", RegionCode.US)); 39ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("1196666666", RegionCode.US)); 40ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("9996666666", RegionCode.US)); 41ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 42ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 43ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumberWithFormatting_US() { 44ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("9-1-1", RegionCode.US)); 45ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("1-1-9", RegionCode.US)); 46ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("9-9-9", RegionCode.US)); 47ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 48ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 49ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumberWithPlusSign_US() { 50ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("+911", RegionCode.US)); 51ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("\uFF0B911", RegionCode.US)); 52ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber(" +911", RegionCode.US)); 53ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("+119", RegionCode.US)); 54ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("+999", RegionCode.US)); 55ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 56ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 57ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumber_BR() { 58ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("911", RegionCode.BR)); 59ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertTrue(shortUtil.connectsToEmergencyNumber("190", RegionCode.BR)); 60ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("999", RegionCode.BR)); 61ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 62ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 63ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia public void testConnectsToEmergencyNumberLongNumber_BR() { 64ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia // Brazilian emergency numbers don't work when additional digits are appended. 65ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("9111", RegionCode.BR)); 66ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("1900", RegionCode.BR)); 67ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("9996", RegionCode.BR)); 68ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 69a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 70a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testConnectsToEmergencyNumber_AO() { 71a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia // Angola doesn't have any metadata for emergency numbers in the test metadata. 72a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("911", RegionCode.AO)); 73a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("222123456", RegionCode.AO)); 74a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("923123456", RegionCode.AO)); 75a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 76a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 77a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testConnectsToEmergencyNumber_ZW() { 78a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia // Zimbabwe doesn't have any metadata in the test metadata. 79a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("911", RegionCode.ZW)); 80a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("01312345", RegionCode.ZW)); 81a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.connectsToEmergencyNumber("0711234567", RegionCode.ZW)); 82a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 83a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 84a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumber_US() { 85a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("911", RegionCode.US)); 86a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("119", RegionCode.US)); 87a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("999", RegionCode.US)); 88a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 89a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 90a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumberLongNumber_US() { 91a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("9116666666", RegionCode.US)); 92a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("1196666666", RegionCode.US)); 93a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("9996666666", RegionCode.US)); 94a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 95a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 96a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumberWithFormatting_US() { 97a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("9-1-1", RegionCode.US)); 98a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("*911", RegionCode.US)); 99a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("1-1-9", RegionCode.US)); 100a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("*119", RegionCode.US)); 101a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("9-9-9", RegionCode.US)); 102a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("*999", RegionCode.US)); 103a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 104a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 105a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumberWithPlusSign_US() { 106a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("+911", RegionCode.US)); 107a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("\uFF0B911", RegionCode.US)); 108a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber(" +911", RegionCode.US)); 109a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("+119", RegionCode.US)); 110a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("+999", RegionCode.US)); 111a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 112a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 113a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumber_BR() { 114a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("911", RegionCode.BR)); 115a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertTrue(shortUtil.isEmergencyNumber("190", RegionCode.BR)); 116a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("999", RegionCode.BR)); 117a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 118a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 119a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumberLongNumber_BR() { 120a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("9111", RegionCode.BR)); 121a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("1900", RegionCode.BR)); 122a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("9996", RegionCode.BR)); 123a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 124a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 125a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumber_AO() { 126a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia // Angola doesn't have any metadata for emergency numbers in the test metadata. 127a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("911", RegionCode.AO)); 128a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("222123456", RegionCode.AO)); 129a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("923123456", RegionCode.AO)); 130a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 131a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 132a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public void testIsEmergencyNumber_ZW() { 133a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia // Zimbabwe doesn't have any metadata in the test metadata. 134a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("911", RegionCode.ZW)); 135a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("01312345", RegionCode.ZW)); 136a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia assertFalse(shortUtil.isEmergencyNumber("0711234567", RegionCode.ZW)); 137a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 138ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia} 139