Home | History | Annotate | Download | only in utils
      1 /*
      2  * Copyright (C) 2013 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.inputmethod.latin.utils;
     18 
     19 import android.test.AndroidTestCase;
     20 import android.test.suitebuilder.annotation.SmallTest;
     21 
     22 import java.util.HashMap;
     23 
     24 @SmallTest
     25 public class ResourceUtilsTests extends AndroidTestCase {
     26     public void testFindConstantForKeyValuePairsSimple() {
     27         final HashMap<String,String> anyKeyValue = new HashMap<>();
     28         anyKeyValue.put("anyKey", "anyValue");
     29         final HashMap<String,String> nullKeyValue = null;
     30         final HashMap<String,String> emptyKeyValue = new HashMap<>();
     31 
     32         final String[] nullArray = null;
     33         assertNull(ResourceUtils.findConstantForKeyValuePairs(anyKeyValue, nullArray));
     34         assertNull(ResourceUtils.findConstantForKeyValuePairs(emptyKeyValue, nullArray));
     35         assertNull(ResourceUtils.findConstantForKeyValuePairs(nullKeyValue, nullArray));
     36 
     37         final String[] emptyArray = {};
     38         assertNull(ResourceUtils.findConstantForKeyValuePairs(anyKeyValue, emptyArray));
     39         assertNull(ResourceUtils.findConstantForKeyValuePairs(emptyKeyValue, emptyArray));
     40         assertNull(ResourceUtils.findConstantForKeyValuePairs(nullKeyValue, emptyArray));
     41 
     42         final String HARDWARE_KEY = "HARDWARE";
     43         final String[] array = {
     44             ",defaultValue",
     45             "HARDWARE=grouper,0.3",
     46             "HARDWARE=mako,0.4",
     47             "HARDWARE=manta,0.2",
     48             "HARDWARE=mako,0.5",
     49         };
     50 
     51         final HashMap<String,String> keyValues = new HashMap<>();
     52         keyValues.put(HARDWARE_KEY, "grouper");
     53         assertEquals("0.3", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     54         keyValues.put(HARDWARE_KEY, "mako");
     55         assertEquals("0.4", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     56         keyValues.put(HARDWARE_KEY, "manta");
     57         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     58 
     59         keyValues.clear();
     60         keyValues.put("hardware", "grouper");
     61         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     62 
     63         keyValues.clear();
     64         keyValues.put(HARDWARE_KEY, "MAKO");
     65         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     66         keyValues.put(HARDWARE_KEY, "mantaray");
     67         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     68 
     69         assertNull(ResourceUtils.findConstantForKeyValuePairs(emptyKeyValue, array));
     70     }
     71 
     72     public void testFindConstantForKeyValuePairsCombined() {
     73         final String HARDWARE_KEY = "HARDWARE";
     74         final String MODEL_KEY = "MODEL";
     75         final String MANUFACTURER_KEY = "MANUFACTURER";
     76         final String[] array = {
     77             ",defaultValue",
     78             "no_comma",
     79             "error_pattern,0.1",
     80             "HARDWARE=grouper:MANUFACTURER=asus,0.3",
     81             "HARDWARE=mako:MODEL=Nexus 4,0.4",
     82             "HARDWARE=manta:MODEL=Nexus 10:MANUFACTURER=samsung,0.2"
     83         };
     84         final String[] failArray = {
     85             ",defaultValue",
     86             "HARDWARE=grouper:MANUFACTURER=ASUS,0.3",
     87             "HARDWARE=mako:MODEL=Nexus_4,0.4",
     88             "HARDWARE=mantaray:MODEL=Nexus 10:MANUFACTURER=samsung,0.2"
     89         };
     90 
     91         final HashMap<String,String> keyValues = new HashMap<>();
     92         keyValues.put(HARDWARE_KEY, "grouper");
     93         keyValues.put(MODEL_KEY, "Nexus 7");
     94         keyValues.put(MANUFACTURER_KEY, "asus");
     95         assertEquals("0.3", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
     96         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, failArray));
     97 
     98         keyValues.clear();
     99         keyValues.put(HARDWARE_KEY, "mako");
    100         keyValues.put(MODEL_KEY, "Nexus 4");
    101         keyValues.put(MANUFACTURER_KEY, "LGE");
    102         assertEquals("0.4", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    103         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, failArray));
    104 
    105         keyValues.clear();
    106         keyValues.put(HARDWARE_KEY, "manta");
    107         keyValues.put(MODEL_KEY, "Nexus 10");
    108         keyValues.put(MANUFACTURER_KEY, "samsung");
    109         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    110         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, failArray));
    111         keyValues.put(HARDWARE_KEY, "mantaray");
    112         assertNull(ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    113         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, failArray));
    114     }
    115 
    116     public void testFindConstantForKeyValuePairsRegexp() {
    117         final String HARDWARE_KEY = "HARDWARE";
    118         final String MODEL_KEY = "MODEL";
    119         final String MANUFACTURER_KEY = "MANUFACTURER";
    120         final String[] array = {
    121             ",defaultValue",
    122             "no_comma",
    123             "HARDWARE=error_regexp:MANUFACTURER=error[regexp,0.1",
    124             "HARDWARE=grouper|tilapia:MANUFACTURER=asus,0.3",
    125             "HARDWARE=[mM][aA][kK][oO]:MODEL=Nexus 4,0.4",
    126             "HARDWARE=manta.*:MODEL=Nexus 10:MANUFACTURER=samsung,0.2"
    127         };
    128 
    129         final HashMap<String,String> keyValues = new HashMap<>();
    130         keyValues.put(HARDWARE_KEY, "grouper");
    131         keyValues.put(MODEL_KEY, "Nexus 7");
    132         keyValues.put(MANUFACTURER_KEY, "asus");
    133         assertEquals("0.3", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    134         keyValues.put(HARDWARE_KEY, "tilapia");
    135         assertEquals("0.3", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    136 
    137         keyValues.clear();
    138         keyValues.put(HARDWARE_KEY, "mako");
    139         keyValues.put(MODEL_KEY, "Nexus 4");
    140         keyValues.put(MANUFACTURER_KEY, "LGE");
    141         assertEquals("0.4", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    142         keyValues.put(HARDWARE_KEY, "MAKO");
    143         assertEquals("0.4", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    144 
    145         keyValues.clear();
    146         keyValues.put(HARDWARE_KEY, "manta");
    147         keyValues.put(MODEL_KEY, "Nexus 10");
    148         keyValues.put(MANUFACTURER_KEY, "samsung");
    149         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    150         keyValues.put(HARDWARE_KEY, "mantaray");
    151         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, array));
    152     }
    153 }
    154