1/* 2 * Copyright (C) 2011 The Libphonenumber Authors 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.i18n.phonenumbers; 18 19import junit.framework.TestCase; 20 21/** 22 * Unit tests for ShortNumberUtil.java 23 * 24 * @author Shaopeng Jia 25 */ 26public class ShortNumberUtilTest extends TestCase { 27 private ShortNumberUtil shortUtil; 28 29 public ShortNumberUtilTest() { 30 shortUtil = new ShortNumberUtil(); 31 } 32 33 public void testConnectsToEmergencyNumber_US() { 34 assertTrue(shortUtil.connectsToEmergencyNumber("911", RegionCode.US)); 35 assertTrue(shortUtil.connectsToEmergencyNumber("112", RegionCode.US)); 36 assertFalse(shortUtil.connectsToEmergencyNumber("999", RegionCode.US)); 37 } 38 39 public void testConnectsToEmergencyNumberLongNumber_US() { 40 assertTrue(shortUtil.connectsToEmergencyNumber("9116666666", RegionCode.US)); 41 assertTrue(shortUtil.connectsToEmergencyNumber("1126666666", RegionCode.US)); 42 assertFalse(shortUtil.connectsToEmergencyNumber("9996666666", RegionCode.US)); 43 } 44 45 public void testConnectsToEmergencyNumberWithFormatting_US() { 46 assertTrue(shortUtil.connectsToEmergencyNumber("9-1-1", RegionCode.US)); 47 assertTrue(shortUtil.connectsToEmergencyNumber("1-1-2", RegionCode.US)); 48 assertFalse(shortUtil.connectsToEmergencyNumber("9-9-9", RegionCode.US)); 49 } 50 51 public void testConnectsToEmergencyNumberWithPlusSign_US() { 52 assertFalse(shortUtil.connectsToEmergencyNumber("+911", RegionCode.US)); 53 assertFalse(shortUtil.connectsToEmergencyNumber("\uFF0B911", RegionCode.US)); 54 assertFalse(shortUtil.connectsToEmergencyNumber(" +911", RegionCode.US)); 55 assertFalse(shortUtil.connectsToEmergencyNumber("+112", RegionCode.US)); 56 assertFalse(shortUtil.connectsToEmergencyNumber("+999", RegionCode.US)); 57 } 58 59 public void testConnectsToEmergencyNumber_BR() { 60 assertTrue(shortUtil.connectsToEmergencyNumber("911", RegionCode.BR)); 61 assertTrue(shortUtil.connectsToEmergencyNumber("190", RegionCode.BR)); 62 assertFalse(shortUtil.connectsToEmergencyNumber("999", RegionCode.BR)); 63 } 64 65 public void testConnectsToEmergencyNumberLongNumber_BR() { 66 // Brazilian emergency numbers don't work when additional digits are appended. 67 assertFalse(shortUtil.connectsToEmergencyNumber("9111", RegionCode.BR)); 68 assertFalse(shortUtil.connectsToEmergencyNumber("1900", RegionCode.BR)); 69 assertFalse(shortUtil.connectsToEmergencyNumber("9996", RegionCode.BR)); 70 } 71 72 public void testConnectsToEmergencyNumber_AO() { 73 // Angola doesn't have any metadata for emergency numbers in the test metadata. 74 assertFalse(shortUtil.connectsToEmergencyNumber("911", RegionCode.AO)); 75 assertFalse(shortUtil.connectsToEmergencyNumber("222123456", RegionCode.AO)); 76 assertFalse(shortUtil.connectsToEmergencyNumber("923123456", RegionCode.AO)); 77 } 78 79 public void testConnectsToEmergencyNumber_ZW() { 80 // Zimbabwe doesn't have any metadata in the test metadata. 81 assertFalse(shortUtil.connectsToEmergencyNumber("911", RegionCode.ZW)); 82 assertFalse(shortUtil.connectsToEmergencyNumber("01312345", RegionCode.ZW)); 83 assertFalse(shortUtil.connectsToEmergencyNumber("0711234567", RegionCode.ZW)); 84 } 85 86 public void testIsEmergencyNumber_US() { 87 assertTrue(shortUtil.isEmergencyNumber("911", RegionCode.US)); 88 assertTrue(shortUtil.isEmergencyNumber("112", RegionCode.US)); 89 assertFalse(shortUtil.isEmergencyNumber("999", RegionCode.US)); 90 } 91 92 public void testIsEmergencyNumberLongNumber_US() { 93 assertFalse(shortUtil.isEmergencyNumber("9116666666", RegionCode.US)); 94 assertFalse(shortUtil.isEmergencyNumber("1126666666", RegionCode.US)); 95 assertFalse(shortUtil.isEmergencyNumber("9996666666", RegionCode.US)); 96 } 97 98 public void testIsEmergencyNumberWithFormatting_US() { 99 assertTrue(shortUtil.isEmergencyNumber("9-1-1", RegionCode.US)); 100 assertTrue(shortUtil.isEmergencyNumber("*911", RegionCode.US)); 101 assertTrue(shortUtil.isEmergencyNumber("1-1-2", RegionCode.US)); 102 assertTrue(shortUtil.isEmergencyNumber("*112", RegionCode.US)); 103 assertFalse(shortUtil.isEmergencyNumber("9-9-9", RegionCode.US)); 104 assertFalse(shortUtil.isEmergencyNumber("*999", RegionCode.US)); 105 } 106 107 public void testIsEmergencyNumberWithPlusSign_US() { 108 assertFalse(shortUtil.isEmergencyNumber("+911", RegionCode.US)); 109 assertFalse(shortUtil.isEmergencyNumber("\uFF0B911", RegionCode.US)); 110 assertFalse(shortUtil.isEmergencyNumber(" +911", RegionCode.US)); 111 assertFalse(shortUtil.isEmergencyNumber("+112", RegionCode.US)); 112 assertFalse(shortUtil.isEmergencyNumber("+999", RegionCode.US)); 113 } 114 115 public void testIsEmergencyNumber_BR() { 116 assertTrue(shortUtil.isEmergencyNumber("911", RegionCode.BR)); 117 assertTrue(shortUtil.isEmergencyNumber("190", RegionCode.BR)); 118 assertFalse(shortUtil.isEmergencyNumber("999", RegionCode.BR)); 119 } 120 121 public void testIsEmergencyNumberLongNumber_BR() { 122 assertFalse(shortUtil.isEmergencyNumber("9111", RegionCode.BR)); 123 assertFalse(shortUtil.isEmergencyNumber("1900", RegionCode.BR)); 124 assertFalse(shortUtil.isEmergencyNumber("9996", RegionCode.BR)); 125 } 126 127 public void testIsEmergencyNumber_AO() { 128 // Angola doesn't have any metadata for emergency numbers in the test metadata. 129 assertFalse(shortUtil.isEmergencyNumber("911", RegionCode.AO)); 130 assertFalse(shortUtil.isEmergencyNumber("222123456", RegionCode.AO)); 131 assertFalse(shortUtil.isEmergencyNumber("923123456", RegionCode.AO)); 132 } 133 134 public void testIsEmergencyNumber_ZW() { 135 // Zimbabwe doesn't have any metadata in the test metadata. 136 assertFalse(shortUtil.isEmergencyNumber("911", RegionCode.ZW)); 137 assertFalse(shortUtil.isEmergencyNumber("01312345", RegionCode.ZW)); 138 assertFalse(shortUtil.isEmergencyNumber("0711234567", RegionCode.ZW)); 139 } 140} 141