1 /* 2 * Copyright (C) 2012 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 17 package com.android.internal.telephony; 18 19 import static com.android.internal.telephony.SmsUsageMonitor.CATEGORY_FREE_SHORT_CODE; 20 import static com.android.internal.telephony.SmsUsageMonitor.CATEGORY_NOT_SHORT_CODE; 21 import static com.android.internal.telephony.SmsUsageMonitor.CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE; 22 import static com.android.internal.telephony.SmsUsageMonitor.CATEGORY_PREMIUM_SHORT_CODE; 23 import static com.android.internal.telephony.SmsUsageMonitor.CATEGORY_STANDARD_SHORT_CODE; 24 25 import static org.junit.Assert.assertEquals; 26 27 import android.os.Looper; 28 import android.support.test.filters.FlakyTest; 29 30 import org.junit.Ignore; 31 32 /** 33 * Test cases for SMS short code pattern matching in SmsUsageMonitor. 34 */ 35 @Ignore 36 public class SmsUsageMonitorShortCodeTest { 37 38 private static final class ShortCodeTest { 39 final String countryIso; 40 final String address; 41 final int category; 42 43 ShortCodeTest(String countryIso, String destAddress, int category) { 44 this.countryIso = countryIso; 45 this.address = destAddress; 46 this.category = category; 47 } 48 } 49 50 /** 51 * List of short code test cases. 52 */ 53 private static final ShortCodeTest[] sShortCodeTests = new ShortCodeTest[] { 54 new ShortCodeTest("al", "112", CATEGORY_NOT_SHORT_CODE), 55 new ShortCodeTest("al", "4321", CATEGORY_NOT_SHORT_CODE), 56 new ShortCodeTest("al", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 57 new ShortCodeTest("al", "15191", CATEGORY_PREMIUM_SHORT_CODE), 58 new ShortCodeTest("al", "55500", CATEGORY_PREMIUM_SHORT_CODE), 59 new ShortCodeTest("al", "55600", CATEGORY_PREMIUM_SHORT_CODE), 60 new ShortCodeTest("al", "654321", CATEGORY_NOT_SHORT_CODE), 61 62 new ShortCodeTest("am", "112", CATEGORY_NOT_SHORT_CODE), 63 new ShortCodeTest("am", "101", CATEGORY_FREE_SHORT_CODE), 64 new ShortCodeTest("am", "102", CATEGORY_FREE_SHORT_CODE), 65 new ShortCodeTest("am", "103", CATEGORY_FREE_SHORT_CODE), 66 new ShortCodeTest("am", "222", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 67 new ShortCodeTest("am", "1111", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 68 new ShortCodeTest("am", "9999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 69 new ShortCodeTest("am", "1121", CATEGORY_PREMIUM_SHORT_CODE), 70 new ShortCodeTest("am", "1141", CATEGORY_PREMIUM_SHORT_CODE), 71 new ShortCodeTest("am", "1161", CATEGORY_PREMIUM_SHORT_CODE), 72 new ShortCodeTest("am", "3024", CATEGORY_PREMIUM_SHORT_CODE), 73 74 new ShortCodeTest("at", "112", CATEGORY_NOT_SHORT_CODE), 75 new ShortCodeTest("at", "116117", CATEGORY_FREE_SHORT_CODE), 76 new ShortCodeTest("at", "0901234", CATEGORY_PREMIUM_SHORT_CODE), 77 new ShortCodeTest("at", "0900666266", CATEGORY_PREMIUM_SHORT_CODE), 78 79 new ShortCodeTest("au", "112", CATEGORY_NOT_SHORT_CODE), 80 new ShortCodeTest("au", "180000", CATEGORY_NOT_SHORT_CODE), 81 new ShortCodeTest("au", "190000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 82 new ShortCodeTest("au", "1900000", CATEGORY_NOT_SHORT_CODE), 83 new ShortCodeTest("au", "19000000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 84 new ShortCodeTest("au", "19998882", CATEGORY_PREMIUM_SHORT_CODE), 85 86 new ShortCodeTest("az", "112", CATEGORY_NOT_SHORT_CODE), 87 new ShortCodeTest("az", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 88 new ShortCodeTest("az", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 89 new ShortCodeTest("az", "87744", CATEGORY_PREMIUM_SHORT_CODE), 90 new ShortCodeTest("az", "3301", CATEGORY_PREMIUM_SHORT_CODE), 91 new ShortCodeTest("az", "3302", CATEGORY_PREMIUM_SHORT_CODE), 92 new ShortCodeTest("az", "9012", CATEGORY_PREMIUM_SHORT_CODE), 93 new ShortCodeTest("az", "9014", CATEGORY_PREMIUM_SHORT_CODE), 94 new ShortCodeTest("az", "9394", CATEGORY_PREMIUM_SHORT_CODE), 95 new ShortCodeTest("az", "87744", CATEGORY_PREMIUM_SHORT_CODE), 96 new ShortCodeTest("az", "93101", CATEGORY_PREMIUM_SHORT_CODE), 97 new ShortCodeTest("az", "123456", CATEGORY_NOT_SHORT_CODE), 98 99 new ShortCodeTest("be", "112", CATEGORY_NOT_SHORT_CODE), 100 new ShortCodeTest("be", "116117", CATEGORY_FREE_SHORT_CODE), 101 new ShortCodeTest("be", "567890", CATEGORY_NOT_SHORT_CODE), 102 new ShortCodeTest("be", "8000", CATEGORY_FREE_SHORT_CODE), 103 new ShortCodeTest("be", "6566", CATEGORY_PREMIUM_SHORT_CODE), 104 new ShortCodeTest("be", "7777", CATEGORY_PREMIUM_SHORT_CODE), 105 106 new ShortCodeTest("bg", "112", CATEGORY_NOT_SHORT_CODE), 107 new ShortCodeTest("bg", "116117", CATEGORY_FREE_SHORT_CODE), 108 new ShortCodeTest("bg", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 109 new ShortCodeTest("bg", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 110 new ShortCodeTest("bg", "1816", CATEGORY_PREMIUM_SHORT_CODE), 111 new ShortCodeTest("bg", "1915", CATEGORY_PREMIUM_SHORT_CODE), 112 new ShortCodeTest("bg", "1916", CATEGORY_PREMIUM_SHORT_CODE), 113 new ShortCodeTest("bg", "1935", CATEGORY_PREMIUM_SHORT_CODE), 114 new ShortCodeTest("bg", "18423", CATEGORY_PREMIUM_SHORT_CODE), 115 116 new ShortCodeTest("by", "112", CATEGORY_NOT_SHORT_CODE), 117 new ShortCodeTest("by", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 118 new ShortCodeTest("by", "3336", CATEGORY_PREMIUM_SHORT_CODE), 119 new ShortCodeTest("by", "5013", CATEGORY_PREMIUM_SHORT_CODE), 120 new ShortCodeTest("by", "5014", CATEGORY_PREMIUM_SHORT_CODE), 121 new ShortCodeTest("by", "7781", CATEGORY_PREMIUM_SHORT_CODE), 122 123 new ShortCodeTest("ca", "911", CATEGORY_NOT_SHORT_CODE), 124 new ShortCodeTest("ca", "+18005551234", CATEGORY_NOT_SHORT_CODE), 125 new ShortCodeTest("ca", "8005551234", CATEGORY_NOT_SHORT_CODE), 126 new ShortCodeTest("ca", "20000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 127 new ShortCodeTest("ca", "200000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 128 new ShortCodeTest("ca", "2000000", CATEGORY_NOT_SHORT_CODE), 129 new ShortCodeTest("ca", "60999", CATEGORY_PREMIUM_SHORT_CODE), 130 new ShortCodeTest("ca", "88188", CATEGORY_PREMIUM_SHORT_CODE), 131 132 new ShortCodeTest("ch", "112", CATEGORY_NOT_SHORT_CODE), 133 new ShortCodeTest("ch", "123", CATEGORY_NOT_SHORT_CODE), 134 new ShortCodeTest("ch", "234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 135 new ShortCodeTest("ch", "3456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 136 new ShortCodeTest("ch", "98765", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 137 new ShortCodeTest("ch", "543", CATEGORY_PREMIUM_SHORT_CODE), 138 new ShortCodeTest("ch", "83111", CATEGORY_PREMIUM_SHORT_CODE), 139 new ShortCodeTest("ch", "234567", CATEGORY_NOT_SHORT_CODE), 140 new ShortCodeTest("ch", "87654321", CATEGORY_NOT_SHORT_CODE), 141 142 new ShortCodeTest("cn", "120", CATEGORY_NOT_SHORT_CODE), 143 new ShortCodeTest("cn", "1062503000", CATEGORY_NOT_SHORT_CODE), 144 new ShortCodeTest("cn", "1065123456", CATEGORY_FREE_SHORT_CODE), 145 new ShortCodeTest("cn", "1066335588", CATEGORY_PREMIUM_SHORT_CODE), 146 147 new ShortCodeTest("cy", "112", CATEGORY_NOT_SHORT_CODE), 148 new ShortCodeTest("cy", "116117", CATEGORY_FREE_SHORT_CODE), 149 new ShortCodeTest("cy", "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 150 new ShortCodeTest("cy", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 151 new ShortCodeTest("cy", "654321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 152 new ShortCodeTest("cy", "7510", CATEGORY_PREMIUM_SHORT_CODE), 153 new ShortCodeTest("cy", "987654321", CATEGORY_NOT_SHORT_CODE), 154 155 new ShortCodeTest("cz", "112", CATEGORY_NOT_SHORT_CODE), 156 new ShortCodeTest("cz", "116117", CATEGORY_FREE_SHORT_CODE), 157 new ShortCodeTest("cz", "9090150", CATEGORY_PREMIUM_SHORT_CODE), 158 new ShortCodeTest("cz", "90901599", CATEGORY_PREMIUM_SHORT_CODE), 159 new ShortCodeTest("cz", "987654321", CATEGORY_NOT_SHORT_CODE), 160 161 new ShortCodeTest("de", "112", CATEGORY_NOT_SHORT_CODE), 162 new ShortCodeTest("de", "116117", CATEGORY_FREE_SHORT_CODE), 163 new ShortCodeTest("de", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 164 new ShortCodeTest("de", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 165 new ShortCodeTest("de", "8888", CATEGORY_PREMIUM_SHORT_CODE), 166 new ShortCodeTest("de", "11111", CATEGORY_PREMIUM_SHORT_CODE), 167 new ShortCodeTest("de", "11886", CATEGORY_PREMIUM_SHORT_CODE), 168 new ShortCodeTest("de", "22022", CATEGORY_PREMIUM_SHORT_CODE), 169 new ShortCodeTest("de", "23300", CATEGORY_PREMIUM_SHORT_CODE), 170 new ShortCodeTest("de", "3434", CATEGORY_PREMIUM_SHORT_CODE), 171 new ShortCodeTest("de", "34567", CATEGORY_PREMIUM_SHORT_CODE), 172 new ShortCodeTest("de", "41414", CATEGORY_PREMIUM_SHORT_CODE), 173 new ShortCodeTest("de", "55655", CATEGORY_PREMIUM_SHORT_CODE), 174 new ShortCodeTest("de", "66766", CATEGORY_PREMIUM_SHORT_CODE), 175 new ShortCodeTest("de", "66777", CATEGORY_PREMIUM_SHORT_CODE), 176 new ShortCodeTest("de", "77677", CATEGORY_PREMIUM_SHORT_CODE), 177 new ShortCodeTest("de", "80888", CATEGORY_PREMIUM_SHORT_CODE), 178 new ShortCodeTest("de", "1232286", CATEGORY_PREMIUM_SHORT_CODE), 179 new ShortCodeTest("de", "987654321", CATEGORY_NOT_SHORT_CODE), 180 181 new ShortCodeTest("dk", "112", CATEGORY_NOT_SHORT_CODE), 182 new ShortCodeTest("dk", "116117", CATEGORY_FREE_SHORT_CODE), 183 new ShortCodeTest("dk", "1259", CATEGORY_PREMIUM_SHORT_CODE), 184 new ShortCodeTest("dk", "16123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 185 new ShortCodeTest("dk", "987654321", CATEGORY_NOT_SHORT_CODE), 186 187 new ShortCodeTest("ee", "112", CATEGORY_NOT_SHORT_CODE), 188 new ShortCodeTest("ee", "116117", CATEGORY_FREE_SHORT_CODE), 189 new ShortCodeTest("ee", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 190 new ShortCodeTest("ee", "1259", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 191 new ShortCodeTest("ee", "15330", CATEGORY_PREMIUM_SHORT_CODE), 192 new ShortCodeTest("ee", "17999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 193 new ShortCodeTest("ee", "17010", CATEGORY_PREMIUM_SHORT_CODE), 194 new ShortCodeTest("ee", "17013", CATEGORY_PREMIUM_SHORT_CODE), 195 new ShortCodeTest("ee", "9034567", CATEGORY_PREMIUM_SHORT_CODE), 196 new ShortCodeTest("ee", "34567890", CATEGORY_NOT_SHORT_CODE), 197 198 new ShortCodeTest("es", "112", CATEGORY_NOT_SHORT_CODE), 199 new ShortCodeTest("es", "116117", CATEGORY_FREE_SHORT_CODE), 200 new ShortCodeTest("es", "25165", CATEGORY_PREMIUM_SHORT_CODE), 201 new ShortCodeTest("es", "27333", CATEGORY_PREMIUM_SHORT_CODE), 202 new ShortCodeTest("es", "995399", CATEGORY_PREMIUM_SHORT_CODE), 203 new ShortCodeTest("es", "87654321", CATEGORY_NOT_SHORT_CODE), 204 205 new ShortCodeTest("fi", "112", CATEGORY_NOT_SHORT_CODE), 206 new ShortCodeTest("fi", "116117", CATEGORY_FREE_SHORT_CODE), 207 new ShortCodeTest("fi", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 208 new ShortCodeTest("fi", "123456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 209 new ShortCodeTest("fi", "17159", CATEGORY_PREMIUM_SHORT_CODE), 210 new ShortCodeTest("fi", "17163", CATEGORY_PREMIUM_SHORT_CODE), 211 new ShortCodeTest("fi", "0600123", CATEGORY_PREMIUM_SHORT_CODE), 212 new ShortCodeTest("fi", "070012345", CATEGORY_PREMIUM_SHORT_CODE), 213 new ShortCodeTest("fi", "987654321", CATEGORY_NOT_SHORT_CODE), 214 215 new ShortCodeTest("fr", "112", CATEGORY_NOT_SHORT_CODE), 216 new ShortCodeTest("fr", "116117", CATEGORY_FREE_SHORT_CODE), 217 new ShortCodeTest("fr", "34567", CATEGORY_FREE_SHORT_CODE), 218 new ShortCodeTest("fr", "45678", CATEGORY_PREMIUM_SHORT_CODE), 219 new ShortCodeTest("fr", "81185", CATEGORY_PREMIUM_SHORT_CODE), 220 new ShortCodeTest("fr", "87654321", CATEGORY_NOT_SHORT_CODE), 221 222 new ShortCodeTest("gb", "112", CATEGORY_NOT_SHORT_CODE), 223 new ShortCodeTest("gb", "999", CATEGORY_NOT_SHORT_CODE), 224 new ShortCodeTest("gb", "116117", CATEGORY_FREE_SHORT_CODE), 225 new ShortCodeTest("gb", "4567", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 226 new ShortCodeTest("gb", "45678", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 227 new ShortCodeTest("gb", "56789", CATEGORY_PREMIUM_SHORT_CODE), 228 new ShortCodeTest("gb", "79067", CATEGORY_PREMIUM_SHORT_CODE), 229 new ShortCodeTest("gb", "80079", CATEGORY_PREMIUM_SHORT_CODE), 230 new ShortCodeTest("gb", "654321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 231 new ShortCodeTest("gb", "7654321", CATEGORY_NOT_SHORT_CODE), 232 233 new ShortCodeTest("ge", "112", CATEGORY_NOT_SHORT_CODE), 234 new ShortCodeTest("ge", "8765", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 235 new ShortCodeTest("ge", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 236 new ShortCodeTest("ge", "8012", CATEGORY_PREMIUM_SHORT_CODE), 237 new ShortCodeTest("ge", "8013", CATEGORY_PREMIUM_SHORT_CODE), 238 new ShortCodeTest("ge", "8014", CATEGORY_PREMIUM_SHORT_CODE), 239 new ShortCodeTest("ge", "8889", CATEGORY_PREMIUM_SHORT_CODE), 240 241 new ShortCodeTest("gr", "112", CATEGORY_NOT_SHORT_CODE), 242 new ShortCodeTest("gr", "116117", CATEGORY_FREE_SHORT_CODE), 243 new ShortCodeTest("gr", "54321", CATEGORY_PREMIUM_SHORT_CODE), 244 new ShortCodeTest("gr", "19567", CATEGORY_PREMIUM_SHORT_CODE), 245 new ShortCodeTest("gr", "19678", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 246 new ShortCodeTest("gr", "87654321", CATEGORY_NOT_SHORT_CODE), 247 248 new ShortCodeTest("hu", "112", CATEGORY_NOT_SHORT_CODE), 249 new ShortCodeTest("hu", "116117", CATEGORY_FREE_SHORT_CODE), 250 new ShortCodeTest("hu", "012", CATEGORY_NOT_SHORT_CODE), 251 new ShortCodeTest("hu", "0123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 252 new ShortCodeTest("hu", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 253 new ShortCodeTest("hu", "1784", CATEGORY_PREMIUM_SHORT_CODE), 254 new ShortCodeTest("hu", "2345", CATEGORY_NOT_SHORT_CODE), 255 new ShortCodeTest("hu", "01234", CATEGORY_NOT_SHORT_CODE), 256 new ShortCodeTest("hu", "012345678", CATEGORY_NOT_SHORT_CODE), 257 new ShortCodeTest("hu", "0123456789", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 258 new ShortCodeTest("hu", "1234567890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 259 new ShortCodeTest("hu", "0691227910", CATEGORY_PREMIUM_SHORT_CODE), 260 new ShortCodeTest("hu", "2345678901", CATEGORY_NOT_SHORT_CODE), 261 new ShortCodeTest("hu", "01234567890", CATEGORY_NOT_SHORT_CODE), 262 263 new ShortCodeTest("ie", "112", CATEGORY_NOT_SHORT_CODE), 264 new ShortCodeTest("ie", "116117", CATEGORY_FREE_SHORT_CODE), 265 new ShortCodeTest("ie", "50123", CATEGORY_FREE_SHORT_CODE), 266 new ShortCodeTest("ie", "51234", CATEGORY_STANDARD_SHORT_CODE), 267 new ShortCodeTest("ie", "52345", CATEGORY_STANDARD_SHORT_CODE), 268 new ShortCodeTest("ie", "57890", CATEGORY_PREMIUM_SHORT_CODE), 269 new ShortCodeTest("ie", "67890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 270 new ShortCodeTest("ie", "87654321", CATEGORY_NOT_SHORT_CODE), 271 272 new ShortCodeTest("il", "112", CATEGORY_NOT_SHORT_CODE), 273 new ShortCodeTest("il", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 274 new ShortCodeTest("il", "4422", CATEGORY_PREMIUM_SHORT_CODE), 275 new ShortCodeTest("il", "4545", CATEGORY_PREMIUM_SHORT_CODE), 276 new ShortCodeTest("il", "98765", CATEGORY_NOT_SHORT_CODE), 277 278 new ShortCodeTest("it", "112", CATEGORY_NOT_SHORT_CODE), 279 new ShortCodeTest("it", "116117", CATEGORY_FREE_SHORT_CODE), 280 new ShortCodeTest("it", "4567", CATEGORY_NOT_SHORT_CODE), 281 new ShortCodeTest("it", "48000", CATEGORY_PREMIUM_SHORT_CODE), 282 new ShortCodeTest("it", "45678", CATEGORY_PREMIUM_SHORT_CODE), 283 new ShortCodeTest("it", "56789", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 284 new ShortCodeTest("it", "456789", CATEGORY_NOT_SHORT_CODE), 285 286 new ShortCodeTest("kg", "112", CATEGORY_NOT_SHORT_CODE), 287 new ShortCodeTest("kg", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 288 new ShortCodeTest("kg", "4152", CATEGORY_PREMIUM_SHORT_CODE), 289 new ShortCodeTest("kg", "4157", CATEGORY_PREMIUM_SHORT_CODE), 290 new ShortCodeTest("kg", "4449", CATEGORY_PREMIUM_SHORT_CODE), 291 new ShortCodeTest("kg", "98765", CATEGORY_NOT_SHORT_CODE), 292 293 new ShortCodeTest("kz", "112", CATEGORY_NOT_SHORT_CODE), 294 new ShortCodeTest("kz", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 295 new ShortCodeTest("kz", "9194", CATEGORY_PREMIUM_SHORT_CODE), 296 new ShortCodeTest("kz", "7790", CATEGORY_PREMIUM_SHORT_CODE), 297 new ShortCodeTest("kz", "98765", CATEGORY_NOT_SHORT_CODE), 298 299 new ShortCodeTest("lt", "112", CATEGORY_NOT_SHORT_CODE), 300 new ShortCodeTest("lt", "116117", CATEGORY_FREE_SHORT_CODE), 301 new ShortCodeTest("lt", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 302 new ShortCodeTest("lt", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 303 new ShortCodeTest("lt", "1381", CATEGORY_PREMIUM_SHORT_CODE), 304 new ShortCodeTest("lt", "1394", CATEGORY_PREMIUM_SHORT_CODE), 305 new ShortCodeTest("lt", "1645", CATEGORY_PREMIUM_SHORT_CODE), 306 new ShortCodeTest("lt", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 307 new ShortCodeTest("lt", "123456", CATEGORY_NOT_SHORT_CODE), 308 309 new ShortCodeTest("lu", "112", CATEGORY_NOT_SHORT_CODE), 310 new ShortCodeTest("lu", "116117", CATEGORY_FREE_SHORT_CODE), 311 new ShortCodeTest("lu", "1234", CATEGORY_NOT_SHORT_CODE), 312 new ShortCodeTest("lu", "12345", CATEGORY_NOT_SHORT_CODE), 313 new ShortCodeTest("lu", "64747", CATEGORY_PREMIUM_SHORT_CODE), 314 new ShortCodeTest("lu", "678901", CATEGORY_NOT_SHORT_CODE), 315 316 new ShortCodeTest("lv", "112", CATEGORY_NOT_SHORT_CODE), 317 new ShortCodeTest("lv", "116117", CATEGORY_FREE_SHORT_CODE), 318 new ShortCodeTest("lv", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 319 new ShortCodeTest("lv", "1819", CATEGORY_PREMIUM_SHORT_CODE), 320 new ShortCodeTest("lv", "1863", CATEGORY_PREMIUM_SHORT_CODE), 321 new ShortCodeTest("lv", "1874", CATEGORY_PREMIUM_SHORT_CODE), 322 new ShortCodeTest("lv", "98765", CATEGORY_NOT_SHORT_CODE), 323 324 new ShortCodeTest("mx", "112", CATEGORY_NOT_SHORT_CODE), 325 new ShortCodeTest("mx", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 326 new ShortCodeTest("mx", "7766", CATEGORY_PREMIUM_SHORT_CODE), 327 new ShortCodeTest("mx", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 328 new ShortCodeTest("mx", "53035", CATEGORY_PREMIUM_SHORT_CODE), 329 330 new ShortCodeTest("my", "112", CATEGORY_NOT_SHORT_CODE), 331 new ShortCodeTest("my", "1234", CATEGORY_NOT_SHORT_CODE), 332 new ShortCodeTest("my", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 333 new ShortCodeTest("my", "32298", CATEGORY_PREMIUM_SHORT_CODE), 334 new ShortCodeTest("my", "33776", CATEGORY_PREMIUM_SHORT_CODE), 335 new ShortCodeTest("my", "345678", CATEGORY_NOT_SHORT_CODE), 336 337 new ShortCodeTest("nl", "112", CATEGORY_NOT_SHORT_CODE), 338 new ShortCodeTest("nl", "116117", CATEGORY_FREE_SHORT_CODE), 339 new ShortCodeTest("nl", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 340 new ShortCodeTest("nl", "4466", CATEGORY_PREMIUM_SHORT_CODE), 341 new ShortCodeTest("nl", "5040", CATEGORY_PREMIUM_SHORT_CODE), 342 new ShortCodeTest("nl", "23456", CATEGORY_NOT_SHORT_CODE), 343 344 new ShortCodeTest("no", "112", CATEGORY_NOT_SHORT_CODE), 345 new ShortCodeTest("no", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 346 new ShortCodeTest("no", "2201", CATEGORY_PREMIUM_SHORT_CODE), 347 new ShortCodeTest("no", "2226", CATEGORY_PREMIUM_SHORT_CODE), 348 new ShortCodeTest("no", "2227", CATEGORY_PREMIUM_SHORT_CODE), 349 new ShortCodeTest("no", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 350 new ShortCodeTest("no", "234567", CATEGORY_NOT_SHORT_CODE), 351 352 new ShortCodeTest("nz", "112", CATEGORY_NOT_SHORT_CODE), 353 new ShortCodeTest("nz", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 354 new ShortCodeTest("nz", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 355 new ShortCodeTest("nz", "3903", CATEGORY_PREMIUM_SHORT_CODE), 356 new ShortCodeTest("nz", "8995", CATEGORY_PREMIUM_SHORT_CODE), 357 new ShortCodeTest("nz", "23456", CATEGORY_NOT_SHORT_CODE), 358 359 new ShortCodeTest("pl", "112", CATEGORY_NOT_SHORT_CODE), 360 new ShortCodeTest("pl", "116117", CATEGORY_FREE_SHORT_CODE), 361 new ShortCodeTest("pl", "7890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 362 new ShortCodeTest("pl", "34567", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 363 new ShortCodeTest("pl", "7910", CATEGORY_PREMIUM_SHORT_CODE), 364 new ShortCodeTest("pl", "74240", CATEGORY_PREMIUM_SHORT_CODE), 365 new ShortCodeTest("pl", "79866", CATEGORY_PREMIUM_SHORT_CODE), 366 new ShortCodeTest("pl", "92525", CATEGORY_PREMIUM_SHORT_CODE), 367 new ShortCodeTest("pl", "87654321", CATEGORY_NOT_SHORT_CODE), 368 369 new ShortCodeTest("pt", "112", CATEGORY_NOT_SHORT_CODE), 370 new ShortCodeTest("pt", "116117", CATEGORY_FREE_SHORT_CODE), 371 new ShortCodeTest("pt", "61000", CATEGORY_PREMIUM_SHORT_CODE), 372 new ShortCodeTest("pt", "62345", CATEGORY_PREMIUM_SHORT_CODE), 373 new ShortCodeTest("pt", "68304", CATEGORY_PREMIUM_SHORT_CODE), 374 new ShortCodeTest("pt", "69876", CATEGORY_PREMIUM_SHORT_CODE), 375 new ShortCodeTest("pt", "87654321", CATEGORY_NOT_SHORT_CODE), 376 377 new ShortCodeTest("ro", "112", CATEGORY_NOT_SHORT_CODE), 378 new ShortCodeTest("ro", "116117", CATEGORY_FREE_SHORT_CODE), 379 new ShortCodeTest("ro", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 380 new ShortCodeTest("ro", "1263", CATEGORY_PREMIUM_SHORT_CODE), 381 new ShortCodeTest("ro", "1288", CATEGORY_PREMIUM_SHORT_CODE), 382 new ShortCodeTest("ro", "1314", CATEGORY_PREMIUM_SHORT_CODE), 383 new ShortCodeTest("ro", "1380", CATEGORY_PREMIUM_SHORT_CODE), 384 new ShortCodeTest("ro", "7890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 385 new ShortCodeTest("ro", "12345", CATEGORY_NOT_SHORT_CODE), 386 387 new ShortCodeTest("ru", "112", CATEGORY_NOT_SHORT_CODE), 388 new ShortCodeTest("ru", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 389 new ShortCodeTest("ru", "1161", CATEGORY_PREMIUM_SHORT_CODE), 390 new ShortCodeTest("ru", "2097", CATEGORY_PREMIUM_SHORT_CODE), 391 new ShortCodeTest("ru", "3933", CATEGORY_PREMIUM_SHORT_CODE), 392 new ShortCodeTest("ru", "7781", CATEGORY_PREMIUM_SHORT_CODE), 393 new ShortCodeTest("ru", "98765", CATEGORY_NOT_SHORT_CODE), 394 395 new ShortCodeTest("se", "112", CATEGORY_NOT_SHORT_CODE), 396 new ShortCodeTest("se", "116117", CATEGORY_FREE_SHORT_CODE), 397 new ShortCodeTest("se", "1234", CATEGORY_NOT_SHORT_CODE), 398 new ShortCodeTest("se", "72345", CATEGORY_PREMIUM_SHORT_CODE), 399 new ShortCodeTest("se", "72999", CATEGORY_PREMIUM_SHORT_CODE), 400 new ShortCodeTest("se", "123456", CATEGORY_NOT_SHORT_CODE), 401 new ShortCodeTest("se", "87654321", CATEGORY_NOT_SHORT_CODE), 402 403 new ShortCodeTest("sg", "112", CATEGORY_NOT_SHORT_CODE), 404 new ShortCodeTest("sg", "1234", CATEGORY_NOT_SHORT_CODE), 405 new ShortCodeTest("sg", "70000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 406 new ShortCodeTest("sg", "79999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 407 new ShortCodeTest("sg", "73800", CATEGORY_PREMIUM_SHORT_CODE), 408 new ShortCodeTest("sg", "74688", CATEGORY_STANDARD_SHORT_CODE), 409 new ShortCodeTest("sg", "987654", CATEGORY_NOT_SHORT_CODE), 410 411 new ShortCodeTest("si", "112", CATEGORY_NOT_SHORT_CODE), 412 new ShortCodeTest("si", "116117", CATEGORY_FREE_SHORT_CODE), 413 new ShortCodeTest("si", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 414 new ShortCodeTest("si", "3838", CATEGORY_PREMIUM_SHORT_CODE), 415 new ShortCodeTest("si", "72999", CATEGORY_NOT_SHORT_CODE), 416 417 new ShortCodeTest("sk", "112", CATEGORY_NOT_SHORT_CODE), 418 new ShortCodeTest("sk", "116117", CATEGORY_FREE_SHORT_CODE), 419 new ShortCodeTest("sk", "1234", CATEGORY_PREMIUM_SHORT_CODE), 420 new ShortCodeTest("sk", "6674", CATEGORY_PREMIUM_SHORT_CODE), 421 new ShortCodeTest("sk", "7604", CATEGORY_PREMIUM_SHORT_CODE), 422 new ShortCodeTest("sk", "72999", CATEGORY_NOT_SHORT_CODE), 423 424 new ShortCodeTest("tj", "112", CATEGORY_NOT_SHORT_CODE), 425 new ShortCodeTest("tj", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 426 new ShortCodeTest("tj", "1161", CATEGORY_PREMIUM_SHORT_CODE), 427 new ShortCodeTest("tj", "1171", CATEGORY_PREMIUM_SHORT_CODE), 428 new ShortCodeTest("tj", "4161", CATEGORY_PREMIUM_SHORT_CODE), 429 new ShortCodeTest("tj", "4449", CATEGORY_PREMIUM_SHORT_CODE), 430 new ShortCodeTest("tj", "98765", CATEGORY_NOT_SHORT_CODE), 431 432 new ShortCodeTest("ua", "112", CATEGORY_NOT_SHORT_CODE), 433 new ShortCodeTest("ua", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 434 new ShortCodeTest("ua", "4448", CATEGORY_PREMIUM_SHORT_CODE), 435 new ShortCodeTest("ua", "7094", CATEGORY_PREMIUM_SHORT_CODE), 436 new ShortCodeTest("ua", "7540", CATEGORY_PREMIUM_SHORT_CODE), 437 new ShortCodeTest("ua", "98765", CATEGORY_NOT_SHORT_CODE), 438 439 new ShortCodeTest("us", "911", CATEGORY_NOT_SHORT_CODE), 440 new ShortCodeTest("us", "+18005551234", CATEGORY_NOT_SHORT_CODE), 441 new ShortCodeTest("us", "8005551234", CATEGORY_NOT_SHORT_CODE), 442 new ShortCodeTest("us", "20000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 443 new ShortCodeTest("us", "200000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 444 new ShortCodeTest("us", "2000000", CATEGORY_NOT_SHORT_CODE), 445 new ShortCodeTest("us", "20433", CATEGORY_PREMIUM_SHORT_CODE), 446 new ShortCodeTest("us", "21472", CATEGORY_PREMIUM_SHORT_CODE), 447 new ShortCodeTest("us", "23333", CATEGORY_PREMIUM_SHORT_CODE), 448 new ShortCodeTest("us", "99807", CATEGORY_PREMIUM_SHORT_CODE), 449 450 // generic rules for other countries: 5 digits or less considered potential short code 451 new ShortCodeTest("zz", "2000000", CATEGORY_NOT_SHORT_CODE), 452 new ShortCodeTest("zz", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 453 new ShortCodeTest("zz", "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 454 new ShortCodeTest("zz", "321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 455 new ShortCodeTest("zz", "112", CATEGORY_NOT_SHORT_CODE), 456 new ShortCodeTest(null, "2000000", CATEGORY_NOT_SHORT_CODE), 457 new ShortCodeTest(null, "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 458 new ShortCodeTest(null, "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 459 new ShortCodeTest(null, "321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE), 460 new ShortCodeTest(null, "112", CATEGORY_NOT_SHORT_CODE), 461 }; 462 463 @FlakyTest 464 public void testSmsUsageMonitor() { 465 // InstrumentationTestRunner prepares a looper, but AndroidJUnitRunner does not. 466 // http://b/25897652 . 467 if (Looper.myLooper() == null) { 468 Looper.prepare(); 469 } 470 SmsUsageMonitor monitor = new SmsUsageMonitor(TestApplication.getAppContext()); 471 for (ShortCodeTest test : sShortCodeTests) { 472 assertEquals("country: " + test.countryIso + " number: " + test.address, 473 test.category, monitor.checkDestination(test.address, test.countryIso)); 474 } 475 } 476 } 477