• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
17 package com.google.i18n.phonenumbers;
18 
19 import junit.framework.TestCase;
20 
21 /**
22  * Unit tests for ShortNumberUtil.java
23  *
24  * @author Shaopeng Jia
25  */
26 public class ShortNumberUtilTest extends TestCase {
27   private ShortNumberUtil shortUtil;
28 
ShortNumberUtilTest()29   public ShortNumberUtilTest() {
30     shortUtil = new ShortNumberUtil();
31   }
32 
testConnectsToEmergencyNumber_US()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 
testConnectsToEmergencyNumberLongNumber_US()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 
testConnectsToEmergencyNumberWithFormatting_US()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 
testConnectsToEmergencyNumberWithPlusSign_US()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 
testConnectsToEmergencyNumber_BR()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 
testConnectsToEmergencyNumberLongNumber_BR()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 
testConnectsToEmergencyNumber_AO()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 
testConnectsToEmergencyNumber_ZW()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 
testIsEmergencyNumber_US()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 
testIsEmergencyNumberLongNumber_US()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 
testIsEmergencyNumberWithFormatting_US()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 
testIsEmergencyNumberWithPlusSign_US()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 
testIsEmergencyNumber_BR()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 
testIsEmergencyNumberLongNumber_BR()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 
testIsEmergencyNumber_AO()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 
testIsEmergencyNumber_ZW()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