Home | History | Annotate | Download | only in telephony
      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