• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 {
testFindConstantForKeyValuePairsSimple()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 
testFindConstantForKeyValuePairsCombined()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 
testFindConstantForKeyValuePairsRegexp()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