1ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach/*
2ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * Copyright (C) 2009 The Android Open Source Project
3ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach *
4ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * Licensed under the Apache License, Version 2.0 (the "License");
5ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * you may not use this file except in compliance with the License.
6ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * You may obtain a copy of the License at
7ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach *
8ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach *      http://www.apache.org/licenses/LICENSE-2.0
9ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach *
10ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * Unless required by applicable law or agreed to in writing, software
11ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * distributed under the License is distributed on an "AS IS" BASIS,
12ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * See the License for the specific language governing permissions and
14ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * limitations under the License.
15ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach */
16ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
17ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachpackage android.content.res.cts;
18ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
19532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamathimport java.util.ArrayList;
20532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamathimport java.util.List;
21ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport java.util.Locale;
22ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
23ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.content.res.AssetManager;
24ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.content.res.Configuration;
25ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.content.res.Resources;
26ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.content.res.TypedArray;
27ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.content.res.Resources.NotFoundException;
28ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.test.AndroidTestCase;
29ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.test.suitebuilder.annotation.MediumTest;
30ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.test.suitebuilder.annotation.SmallTest;
31ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport android.util.DisplayMetrics;
32544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackbornimport android.util.Log;
33ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
34c83e6c76c6d21f12521085f40b66d1e62ee9ed45Nash Lincolnimport android.content.cts.R;
35ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
36ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachpublic class ConfigTest extends AndroidTestCase {
37ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    enum Properties {
38ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        LANGUAGE,
39ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        COUNTRY,
4082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        SCRIPT,
4182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        VARIANT,
42ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        MCC,
43ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        MNC,
44ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        TOUCHSCREEN,
45ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        KEYBOARD,
46ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        KEYBOARDHIDDEN,
47ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        NAVIGATION,
48ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        ORIENTATION,
49d6e53944e560f77d785f239349530c1906587054Romain Guy        COLOR_MODE,
50ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        WIDTH,
51ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        HEIGHT,
529e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        DENSITY,
53544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        SCREENLAYOUT,
54544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        SWIDTH_DP,
55544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        WIDTH_DP,
56544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        HEIGHT_DP
57ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
58ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
59ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    private static void checkValue(final Resources res, final int resId,
60ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            final String expectedValue) {
61ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        try {
62ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            final String actual = res.getString(resId);
63ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            assertNotNull("Returned wrong configuration-based simple value: expected <nothing>, "
64ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + "got '" + actual + "' from resource 0x" + Integer.toHexString(resId),
65ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    expectedValue);
66ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            assertEquals("Returned wrong configuration-based simple value: expected '"
67ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + expectedValue + "', got '" + actual + "' from resource 0x"
68ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + Integer.toHexString(resId), expectedValue, actual);
69ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        } catch (NotFoundException e) {
70ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            assertNull("Resource not found for configuration-based simple value: expecting \""
71ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + expectedValue + "\"", expectedValue);
72ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
73ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
74ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
75ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    private static void checkValue(final Resources res, final int resId,
76ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            final int[] styleable, final String[] expectedValues) {
77ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        final Resources.Theme theme = res.newTheme();
78ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        final TypedArray sa = theme.obtainStyledAttributes(resId, styleable);
79ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        for (int i = 0; i < styleable.length; i++) {
80ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            final String actual = sa.getString(i);
81ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            assertEquals("Returned wrong configuration-based style value: expected '"
82ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + expectedValues[i] + "', got '" + actual + "' from attr "
83ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    + i + " of resource 0x" + Integer.toHexString(resId),
84ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    actual, expectedValues[i]);
85ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
86ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        sa.recycle();
87ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
88ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
89ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    private class TotalConfig {
90544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        final Configuration mConfig;
91544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        final DisplayMetrics mMetrics;
92ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
93ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        public TotalConfig() {
94ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            mConfig = new Configuration();
95ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            mMetrics = new DisplayMetrics();
9682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath            mConfig.locale = Locale.ROOT;
97ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
98ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
99ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        public void setProperty(final Properties p, final int value) {
100ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            switch(p) {
101ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case MCC:
102ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.mcc = value;
103ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
104ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case MNC:
105ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.mnc = value;
106ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
107ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case TOUCHSCREEN:
108ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.touchscreen = value;
109ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
110ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case KEYBOARD:
111ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.keyboard = value;
112ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
113ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case KEYBOARDHIDDEN:
114ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.keyboardHidden = value;
115ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
116ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case NAVIGATION:
117ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.navigation = value;
118ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
119ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case ORIENTATION:
120ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mConfig.orientation = value;
121ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
122d6e53944e560f77d785f239349530c1906587054Romain Guy                case COLOR_MODE:
123d6e53944e560f77d785f239349530c1906587054Romain Guy                    mConfig.colorMode = value;
124d6e53944e560f77d785f239349530c1906587054Romain Guy                    break;
125ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case WIDTH:
126ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mMetrics.widthPixels = value;
127fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski                    mMetrics.noncompatWidthPixels = value;
128ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
129ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case HEIGHT:
130ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    mMetrics.heightPixels = value;
131fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski                    mMetrics.noncompatHeightPixels = value;
132ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
133ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case DENSITY:
134e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                    // this is the ratio from the standard
135e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                    mMetrics.density = (((float)value)/((float)DisplayMetrics.DENSITY_DEFAULT));
136fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski                    mMetrics.noncompatDensity = mMetrics.density;
13722c10fd575ab9eaf2f8f7a8b2a3e1569b041ded9Dianne Hackborn                    mConfig.densityDpi = value;
138ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
1399e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                case SCREENLAYOUT:
1409e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                    mConfig.screenLayout = value;
1419e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                    break;
142544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                case SWIDTH_DP:
143544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    mConfig.smallestScreenWidthDp = value;
144544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    break;
145544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                case WIDTH_DP:
146544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    mConfig.screenWidthDp = value;
147544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    break;
148544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                case HEIGHT_DP:
149544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    mConfig.screenHeightDp = value;
150544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                    break;
151ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                default:
152ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    assert(false);
153ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
154ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            }
155ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
156ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
157ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        public void setProperty(final Properties p, final String value) {
158ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            switch(p) {
159ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case LANGUAGE:
16082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    mConfig.locale = new Locale.Builder()
16182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setLocale(mConfig.locale)
16282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setLanguage(value)
16382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .build();
164ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
165ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                case COUNTRY:
16682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    mConfig.locale = new Locale.Builder()
16782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setLocale(mConfig.locale)
16882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setRegion(value)
16982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .build();
17082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    break;
17182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                case SCRIPT:
17282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    mConfig.locale = new Locale.Builder()
17382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setLocale(mConfig.locale)
17482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setScript(value)
17582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .build();
17682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    break;
17782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                case VARIANT:
17882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                    mConfig.locale = new Locale.Builder()
17982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setLocale(mConfig.locale)
18082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .setVariant(value)
18182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                            .build();
182ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
183ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                default:
184ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    assert(false);
185ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach                    break;
186ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            }
187ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
188ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
189ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        public Resources getResources() {
190ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            final AssetManager assmgr = new AssetManager();
191ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            assmgr.addAssetPath(mContext.getPackageResourcePath());
192ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach            return new Resources(assmgr, mMetrics, mConfig);
193ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        }
194ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
195ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
196544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public TotalConfig makeEmptyConfig() {
197544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        return new TotalConfig();
198544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    }
199544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
200544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public TotalConfig makeClassicConfig() {
201544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = new TotalConfig();
202fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.LANGUAGE, "en");
203fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.COUNTRY, "US");
204fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.MCC, 310);
205fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.MNC, 001); // unused
206fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_FINGER);
207fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_QWERTY);
208fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_YES);
209fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_TRACKBALL);
210fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT);
211fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.SWIDTH_DP, 320);
212fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.WIDTH_DP, 320);
213fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.HEIGHT_DP, 480);
214fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.DENSITY, 160);
215fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.WIDTH, 200);
216fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski        config.setProperty(Properties.HEIGHT, 320);
217544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        return config;
218544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    }
219544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
220e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot    private static void checkPair(Resources res, int[] notResIds,
221e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot            int simpleRes, String simpleString,
222e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot            int bagRes, String bagString) {
223e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        boolean willHave = true;
224e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        if (notResIds != null) {
225e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot            for (int i : notResIds) {
226e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                if (i == simpleRes) {
227e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                    willHave = false;
228e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                    break;
229e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                }
230e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot            }
231e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        }
232e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, simpleRes, willHave ? simpleString : null);
233e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, bagRes, R.styleable.TestConfig,
234e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                new String[]{willHave ? bagString : null});
235e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot    }
236e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
237ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    @SmallTest
238544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public void testAllEmptyConfigs() {
239ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        /**
240ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         * Test a resource that contains a value for each possible single
241ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         * configuration value.
242ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         */
243544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeEmptyConfig();
244ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        Resources res = config.getResources();
245e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple default");
246e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
247e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag default"});
248ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
249544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
250ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
251ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
252e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple xx");
253e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
254e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag xx"});
255ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
256544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
257ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
258ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.COUNTRY, "YY");
259ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
260ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple xx-rYY");
261e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
262e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag xx-rYY"});
263ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
264544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
265ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.MCC, 111);
266ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
267ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple mcc111");
268e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
269e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag mcc111"});
270ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
271544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
272ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.MNC, 222);
273ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
274ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple mnc222");
275e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
276e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag mnc222"});
277ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
278544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
279ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH);
280ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
281e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple notouch");
282e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
283e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag notouch"});
284ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
285544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
286e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_STYLUS);
287ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
288e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple stylus");
289e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
290e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag stylus"});
291ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
292544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
293e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS);
294ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
295e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple nokeys");
296e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
297e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag nokeys"});
298ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
299544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
300e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY);
301ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
302e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 12key");
303e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
304e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 12key"});
305ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
306544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
307e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO);
308ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
309e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple keysexposed");
310e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
311e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag keysexposed"});
312ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
313544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
314e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV);
315ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
316e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple nonav");
317e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
318e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag nonav"});
319ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
320544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
321e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_DPAD);
322ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
323e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple dpad");
324e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
325e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag dpad"});
326ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
327544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
328e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_WHEEL);
329ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
330e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple wheel");
331e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
332e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag wheel"});
333ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
334544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
335e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.HEIGHT, 480);
336e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.WIDTH, 320);
337ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
338e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 480x320");
339e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
340e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 480x320"});
341ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
342544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
343e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 240);
344ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
345e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 240dpi");
346e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
347e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 240dpi"});
348ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
349544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
350e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
351ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
352e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple landscape");
353e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
354e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag landscape"});
355ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
356544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
357e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_SQUARE);
358ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
359e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple square");
360e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
361e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag square"});
3629e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
363544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
364d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_HDR_YES);
365d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
366d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple hdr");
367d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
368d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag hdr"});
369d6e53944e560f77d785f239349530c1906587054Romain Guy
370d6e53944e560f77d785f239349530c1906587054Romain Guy        config = makeEmptyConfig();
371d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_HDR_NO);
372d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
373d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple ldr");
374d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
375d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag ldr"});
376d6e53944e560f77d785f239349530c1906587054Romain Guy
377d6e53944e560f77d785f239349530c1906587054Romain Guy        config = makeEmptyConfig();
378d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_YES);
379d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
380d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple widecg");
381d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
382d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag widecg"});
383d6e53944e560f77d785f239349530c1906587054Romain Guy
384d6e53944e560f77d785f239349530c1906587054Romain Guy        config = makeEmptyConfig();
385d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_NO);
386d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
387d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple nowidecg");
388d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
389d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag nowidecg"});
390d6e53944e560f77d785f239349530c1906587054Romain Guy
391d6e53944e560f77d785f239349530c1906587054Romain Guy        config = makeEmptyConfig();
3929e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL);
3939e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
3949e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple small");
3959e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.bag,
3969e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                R.styleable.TestConfig, new String[]{"bag small"});
3979e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
398544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
3999e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL);
4009e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
4019e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple normal");
4029e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.bag,
4039e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                R.styleable.TestConfig, new String[]{"bag normal"});
4049e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
405544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
4069e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
4079e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
4089e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple large");
4099e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.bag,
4109e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                R.styleable.TestConfig, new String[]{"bag large"});
4119e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
412544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
4139e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
4149e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
4159e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple xlarge");
4169e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.bag,
4179e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn                R.styleable.TestConfig, new String[]{"bag xlarge"});
418544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
419544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
420544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
421544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
422544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600");
423544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
424544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw600"});
425544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
426544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
427544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
428544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
429544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600");
430544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
431544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw600"});
432544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
433544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
434544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 720);
435544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
436544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw720");
437544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
438544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw720"});
439544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
440544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
441544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 600);
442544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
443544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple w600");
444544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
445544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag w600"});
446544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
447544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
448544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 720);
449544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
450544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple w720");
451544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
452544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag w720"});
453544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
454544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
455544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 550);
456544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
457544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple h550");
458544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
459544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag h550"});
460544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
461544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeEmptyConfig();
462544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 670);
463544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
464544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple h670");
465544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
466544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag h670"});
467544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    }
468544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
469544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    @SmallTest
470544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public void testAllClassicConfigs() {
471544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        /**
472544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * Test a resource that contains a value for each possible single
473544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * configuration value.
474544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         */
475544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeClassicConfig();
476544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        Resources res = config.getResources();
477544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple default");
478544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
479544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag default"});
480544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
481544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
482544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.LANGUAGE, "xx");
483544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
484544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple xx");
485544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
486544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag xx"});
487544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
488544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
489544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.LANGUAGE, "xx");
490544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.COUNTRY, "YY");
491544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
492544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple xx-rYY");
493544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
494544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag xx-rYY"});
495544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
496544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
497544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MCC, 111);
498544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
499544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple mcc111");
500544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
501544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag mcc111"});
502544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
503544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
504544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MNC, 222);
505544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
506544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple mnc222");
507544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
508544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag mnc222"});
509544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
510544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
511544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH);
512544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
513544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple notouch");
514544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
515544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag notouch"});
516544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
517544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
518544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_STYLUS);
519544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
520544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple stylus");
521544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
522544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag stylus"});
523544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
524544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
525544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS);
526544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
527544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple nokeys");
528544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
529544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag nokeys"});
530544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
531544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
532544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY);
533544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
534544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 12key 63x57");
535544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
536544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 12key 63x57"});
537544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
538544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
539544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO);
540544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
541544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple keysexposed");
542544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
543544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag keysexposed"});
544544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
545544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
546544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV);
547544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
548544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple nonav");
549544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
550544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag nonav"});
551544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
552544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
553544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_DPAD);
554544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
555544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple dpad 63x57");
556544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
557544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag dpad 63x57"});
558544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
559544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
560544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_WHEEL);
561544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
562544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple wheel");
563544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
564544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag wheel"});
565544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
566544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
567544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT, 480);
568544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH, 320);
569544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
570544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 480x320");
571544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
572544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 480x320"});
573544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
574544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
575544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.DENSITY, 240);
576544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
577544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 240dpi");
578544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
579544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 240dpi"});
580544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
581544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
582544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
583544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
584544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple landscape");
585544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
586544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag landscape"});
587544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
588544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
589544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_SQUARE);
590544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
591544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple square");
592544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
593544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag square"});
594544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
595544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
596544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL);
597544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
598544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple small");
599544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
600544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag small"});
601544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
602544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
603544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL);
604544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
605544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple normal");
606544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
607544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag normal"});
608544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
609544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
610544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
611544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
612544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple large");
613544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
614544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag large"});
615544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
616544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
617544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
618544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
619544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple xlarge");
620544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
621544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag xlarge"});
622544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
623544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
624544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
625544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
626544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600");
627544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
628544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw600"});
629544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
630544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
631544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
632544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
633544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
634544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600 land");
635544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
636544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw600 land"});
637544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
638544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
639544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 720);
640544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
641544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw720");
642544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
643544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw720"});
644544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
645544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
646544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 600);
647544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
648544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple w600");
649544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
650544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag w600"});
651544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
652544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
653544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 720);
654544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
655544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple w720");
656544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
657544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag w720"});
658544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
659544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
660544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 550);
661544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
662544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple h550");
663544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
664544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag h550"});
665544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
666544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
667544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 670);
668544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
669544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple h670");
670544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
671544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag h670"});
672e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot    }
673e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
674e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot    @MediumTest
675e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot    public void testDensity() throws Exception {
676e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // have 32, 240 and the default 160 content.
677e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // rule is that closest wins, with down scaling (larger content)
678e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // being twice as nice as upscaling.
679e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // transition at H/2 * (-1 +/- sqrt(1+8L/H))
680e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // SO, X < 49 goes to 32
681e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // 49 >= X < 182 goes to 160
682e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        // X >= 182 goes to 240
683544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeClassicConfig();
684e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 2);
685e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        Resources res = config.getResources();
686e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 32dpi");
687e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
688e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 32dpi"});
689ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
690544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
691e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 32);
692ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
693e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 32dpi");
694e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
695e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 32dpi"});
696ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
697544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
698e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 48);
699ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
700e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 32dpi");
701e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
702e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 32dpi"});
703ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
704544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
705e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 49);
706ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
707e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple default");
708e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
709e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag default"});
710ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
711544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
712e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 150);
713ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
714e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple default");
715e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
716e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag default"});
717ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
718544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
719e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 181);
720ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
721e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple default");
722e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
723e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag default"});
724ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
725544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
726e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 182);
727ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
728e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 240dpi");
729e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
730e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 240dpi"});
731ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
732544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
733e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 239);
734e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        res = config.getResources();
735e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 240dpi");
736e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
737e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 240dpi"});
738e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
739544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
740e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.DENSITY, 490);
741ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
742e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 240dpi");
743e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
744e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 240dpi"});
745ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
746ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
7479e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn    @MediumTest
7489e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn    public void testScreenSize() throws Exception {
7499e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        // ensure that we fall back to the best available screen size
7509e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        // for a given configuration.
751544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeClassicConfig();
7529e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL);
7539e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        Resources res = config.getResources();
7549e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple small");
7559e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.small, "small");
7569e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.normal, "default");
7579e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.large, "default");
7589e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.xlarge, "default");
7599e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
760544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
7619e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL);
7629e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
7639e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple normal");
7649e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.small, "default");
7659e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.normal, "normal");
7669e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.large, "default");
7679e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.xlarge, "default");
7689e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
769544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
7709e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
7719e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
7729e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple large");
7739e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.small, "default");
7749e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.normal, "normal");
7759e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.large, "large");
7769e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.xlarge, "default");
7779e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
778544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
7799e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
7809e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        res = config.getResources();
7819e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.simple, "simple xlarge");
7829e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.small, "default");
7839e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.normal, "normal");
7849e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.large, "large");
7859e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn        checkValue(res, R.configVarying.xlarge, "xlarge");
7869e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn    }
7879e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn
788544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    @MediumTest
789544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public void testNewScreenSize() throws Exception {
790544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        // ensure that swNNNdp, wNNNdp, and hNNNdp are working correctly
791544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        // for various common screen configurations.
792544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeClassicConfig();
79363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 589);
79463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 589);
79563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 500);
796544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
797544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
798544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        Resources res = config.getResources();
799544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple large");
800544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "default");
801544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "default");
802544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "default");
803544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "default");
804544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
805544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
80663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 590);
80763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 590);
80863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 500);
80963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
81063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
81163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_MEDIUM);
81263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
81363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw590 mdpi");
81463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "590 mdpi");
81563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
81663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_HIGH);
81763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
81863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw590 hdpi");
81963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "590 hdpi");
82063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
82163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_XHIGH);
82263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
82363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw590 xhdpi");
82463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "590 xhdpi");
82563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
82663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 591);
82763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 591);
82863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_MEDIUM);
82963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
83063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw591");
83163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "591");
83263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
83363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_HIGH);
83463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
83563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw591 hdpi");
83663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "591 hdpi");
83763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
83863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_XHIGH);
83963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        res = config.getResources();
84063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw591 hdpi");
84163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        checkValue(res, R.configVarying.sw, "591 hdpi");
84263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn
84363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn        config = makeClassicConfig();
844544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 480);
845544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 800);
846544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 480);
847544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
848544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
849544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
850544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple w720");
851544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "default");
852544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "720");
853544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "default");
854544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "600");
855544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
856544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
857544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
858544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 1024);
859544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 552);
860544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
861544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
862544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
863544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600 land");
864544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "600 land");
865544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "720");
866544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "550");
867544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "600-550");
868544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
869544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
870544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 600);
871544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 600);
872544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 974);
873544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT);
874544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
875544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
876544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600");
877544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "600");
878544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "600");
879544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "670");
880544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "600-550");
881544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
882544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
883544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 719);
884544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 1279);
885544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 669);
886544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
887544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE);
888544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
889544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw600 land");
890544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "600 land");
891544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "720");
892544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "550");
893544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "600-550");
894544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
895544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
896544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 800);
897544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 1280);
898544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 672);
899544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
900544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
901544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
902544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw720");
903544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "720");
904544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "720");
905544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "670");
906544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "720-670");
907544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
908544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
909544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 800);
910544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 720);
911544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 1230);
912544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT);
913544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
914544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
915544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw720");
916544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.sw, "720");
917544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.w, "720");
918544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.h, "670");
919544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.wh, "720-670");
920544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    }
921544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
922e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot// TODO - add tests for special cases - ie, other key params seem ignored if
923e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot// nokeys is set
924e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
925ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    @MediumTest
926d6e53944e560f77d785f239349530c1906587054Romain Guy    public void testPrecedence() {
927ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        /**
928d6e53944e560f77d785f239349530c1906587054Romain Guy         * Check for precedence of resources selected when there are multiple
929544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * options matching the current config.
930ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         */
931544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeEmptyConfig();
932544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT, 640);
933544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH, 400);
934ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        Resources res = config.getResources();
935544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 640x400");
936544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
937544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 640x400"});
938544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
939544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV);
940544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
941544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple nonav");
942544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
943544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag nonav"});
944544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
945544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS);
946544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
947544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple nokeys");
948544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
949544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag nokeys"});
950544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
951544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO);
952544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
953544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple keysexposed");
954544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
955544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag keysexposed"});
956544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
957544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH);
958544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
959544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple notouch");
960544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
961544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag notouch"});
962544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
963544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.DENSITY, 240);
964544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
965544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 240dpi");
966544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
967544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 240dpi"});
968544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
969544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE);
970544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
971544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple landscape");
972544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
973544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag landscape"});
974544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
975d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_HDR_YES);
976d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
977d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple hdr");
978d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
979d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag hdr"});
980d6e53944e560f77d785f239349530c1906587054Romain Guy
981d6e53944e560f77d785f239349530c1906587054Romain Guy        config.setProperty(Properties.COLOR_MODE, Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_YES);
982d6e53944e560f77d785f239349530c1906587054Romain Guy        res = config.getResources();
983d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.simple, "simple widecg");
984d6e53944e560f77d785f239349530c1906587054Romain Guy        checkValue(res, R.configVarying.bag,
985d6e53944e560f77d785f239349530c1906587054Romain Guy                R.styleable.TestConfig, new String[]{"bag widecg"});
986d6e53944e560f77d785f239349530c1906587054Romain Guy
987544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE);
988544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
989544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple xlarge");
990544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
991544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag xlarge"});
992544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
993544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.HEIGHT_DP, 670);
994544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
995544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple h670");
996544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
997544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag h670"});
998544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
999544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.WIDTH_DP, 720);
1000544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1001544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple 720-670");
1002544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
1003544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag 720-670"});
1004544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
1005544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.SWIDTH_DP, 720);
1006544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1007544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple sw720");
1008544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
1009544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag sw720"});
1010ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1011ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
1012ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.COUNTRY, "YY");
1013ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1014ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple xx-rYY");
1015ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.bag,
1016544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag xx-rYY"});
1017ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1018544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MCC, 111);
1019ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1020544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple mcc111 xx-rYY");
1021e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1022544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag mcc111 xx-rYY"});
1023544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
1024544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MNC, 222);
1025544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1026544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple mcc111 mnc222");
1027544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
1028544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag mcc111 mnc222"});
1029ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
1030ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1031ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    @MediumTest
1032544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn    public void testCombinations() {
1033ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        /**
1034ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         * Verify that in cases of ties, the specific ordering is followed
1035ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         */
1036ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1037e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        /**
1038544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * Precidence order: mcc, mnc, locale, swdp, wdp, hdp, screenlayout-size,
10399e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn         * screenlayout-long, orientation, density,
1040e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot         * touchscreen, hidden, keyboard, navigation, width-height
1041e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot         */
1042e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
1043e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        /**
1044e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot         * verify mcc trumps mnc.  Have 110-xx, 220-xx but no 110-220
1045544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * so which is selected?  Should be mcc110-xx.
1046ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach         */
1047544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        TotalConfig config = makeClassicConfig();
1048e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.MCC, 110);
1049e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.MNC, 220);
1050e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.LANGUAGE, "xx");
1051e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        Resources res = config.getResources();
1052e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple mcc110 xx");
1053e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1054e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag mcc110 xx"});
1055e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
1056e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        /* full A + B + C doesn't exist.  Do we get A + C or B + C?
1057e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot         */
1058544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1059ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.MCC, 111);
1060ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.MNC, 222);
1061ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
1062e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        res = config.getResources();
1063ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple mcc111 mnc222");
1064e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1065e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag mcc111 mnc222"});
1066ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1067544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1068ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.MNC, 222);
1069ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
1070e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.ORIENTATION,
1071e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.ORIENTATION_SQUARE);
1072ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1073ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple mnc222 xx");
1074e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1075e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag mnc222 xx"});
1076ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1077544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1078ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.LANGUAGE, "xx");
1079e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.ORIENTATION,
1080e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.ORIENTATION_SQUARE);
1081ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.DENSITY, 32);
1082ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1083e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple xx square");
1084e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1085e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag xx square"});
1086ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1087544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        /**
1088544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * Verify that proper strings are found for multiple-selectivity case
1089544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * (ie, a string set for locale and mcc is found only when both are
1090544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         * true).
1091544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn         */
1092544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1093544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.LANGUAGE, "xx");
1094544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.COUNTRY, "YY");
1095544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MCC, 111);
1096544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1097544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple mcc111 xx-rYY");
1098544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag, R.styleable.TestConfig,
1099544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                new String[] { "bag mcc111 xx-rYY" });
1100544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
1101544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1102544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.LANGUAGE, "xx");
1103544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.COUNTRY, "YY");
1104544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MCC, 333);
1105544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1106544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple xx-rYY");
1107544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
1108544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[] { "bag xx-rYY" });
1109544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
1110544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1111544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config.setProperty(Properties.MNC, 333);
1112544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        res = config.getResources();
1113544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple default");
1114544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.bag,
1115544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag default"});
1116544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn
1117544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1118e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.ORIENTATION,
1119e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.ORIENTATION_SQUARE);
1120ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.DENSITY, 32);
1121e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.TOUCHSCREEN,
1122e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.TOUCHSCREEN_STYLUS);
1123ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1124e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple square 32dpi");
1125e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1126e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag square 32dpi"});
1127ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1128544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1129ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.DENSITY, 32);
1130e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.TOUCHSCREEN,
1131e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.TOUCHSCREEN_STYLUS);
1132e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARDHIDDEN,
1133e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.KEYBOARDHIDDEN_NO);
1134ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1135ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        checkValue(res, R.configVarying.simple, "simple 32dpi stylus");
1136e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1137e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 32dpi stylus"});
1138ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1139544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1140e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.TOUCHSCREEN,
1141e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.TOUCHSCREEN_STYLUS);
1142e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARDHIDDEN,
1143e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.KEYBOARDHIDDEN_NO);
1144ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY);
1145ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1146e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple stylus keysexposed");
1147e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1148e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag stylus keysexposed"});
1149ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1150544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1151e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.KEYBOARDHIDDEN,
1152e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.KEYBOARDHIDDEN_NO);
1153ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY);
1154e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION,
1155e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.NAVIGATION_DPAD);
1156ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1157e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple keysexposed 12key");
1158e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1159e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag keysexposed 12key"});
1160ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach
1161544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1162ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY);
1163e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION,
1164e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.NAVIGATION_DPAD);
1165ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.HEIGHT, 63);
1166ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        config.setProperty(Properties.WIDTH, 57);
1167ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach        res = config.getResources();
1168e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.simple, "simple 12key dpad");
1169e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1170e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                R.styleable.TestConfig, new String[]{"bag 12key dpad"});
1171e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot
1172544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        config = makeClassicConfig();
1173e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.NAVIGATION,
1174e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot                Configuration.NAVIGATION_DPAD);
1175e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.HEIGHT, 640);
1176e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        config.setProperty(Properties.WIDTH, 400);
1177e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        res = config.getResources();
1178544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn        checkValue(res, R.configVarying.simple, "simple dpad 63x57");
1179e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot        checkValue(res, R.configVarying.bag,
1180544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn                R.styleable.TestConfig, new String[]{"bag dpad 63x57"});
1181ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach    }
1182c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn
1183c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn    @MediumTest
1184c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn    public void testVersions() {
1185c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        // Check that we get the most recent resources that are <= our
1186c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        // current version.  Note the special version adjustment, so that
1187c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        // during development the resource version is incremented to the
1188c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        // next one.
1189c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        int vers = android.os.Build.VERSION.SDK_INT;
1190c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        if (!"REL".equals(android.os.Build.VERSION.CODENAME)) {
1191c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn            vers++;
1192c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        }
1193c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        String expected = "v" + vers + "cur";
1194c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        assertEquals(expected, mContext.getResources().getString(R.string.version_cur));
1195c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        assertEquals("base",  mContext.getResources().getString(R.string.version_old));
1196c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn        assertEquals("v3",  mContext.getResources().getString(R.string.version_v3));
1197c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn    }
119882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
119982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath    @MediumTest
1200f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader    public void testNormalLocales() {
1201f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        Resources res;
1202f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        TotalConfig config = makeClassicConfig();
1203f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        // Hebrew
1204f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.LANGUAGE, "iw");
1205f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        res = config.getResources();
1206f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.simple, "simple iw");
1207f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.bag,
1208f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader                R.styleable.TestConfig, new String[]{"bag iw"});
1209f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader
1210f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        // Hebrew for Israel
1211f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.LANGUAGE, "iw");
1212f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.COUNTRY, "IL");
1213f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        res = config.getResources();
1214f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.simple, "simple iw IL");
1215f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.bag,
1216f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader                R.styleable.TestConfig, new String[]{"bag iw IL"});
1217f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader
1218f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config = makeClassicConfig();
1219f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        // Macedonian
1220f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.LANGUAGE, "mk");
1221f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        res = config.getResources();
1222f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.simple, "simple mk");
1223f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.bag,
1224f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader                R.styleable.TestConfig, new String[]{"bag mk"});
1225f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader
1226f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        // Macedonian for Macedonia
1227f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.LANGUAGE, "mk");
1228f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        config.setProperty(Properties.COUNTRY, "MK");
1229f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        res = config.getResources();
1230f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.simple, "simple mk MK");
1231f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader        checkValue(res, R.configVarying.bag,
1232f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader                R.styleable.TestConfig, new String[]{"bag mk MK"});
1233f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader    }
1234f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader
1235f9c04cb855c1ce0dafb3b6a5b52d9d61eb99e0fdRoozbeh Pournader    @MediumTest
123682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath    public void testExtendedLocales() {
123782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        TotalConfig config = makeClassicConfig();
123882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok
123982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.LANGUAGE, "kok");
124082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        Resources res = config.getResources();
124182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok");
124282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
124382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok"});
124482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
124582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-IN
124682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.COUNTRY, "IN");
124782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
124882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok IN");
124982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
125082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok IN"});
125182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
125282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-419
125382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.COUNTRY, "419");
125482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
125582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok 419");
125682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
125782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok 419"});
125882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
125982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
126082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-419-VARIANT
126182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.VARIANT, "VARIANT");
126282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
126382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok 419 VARIANT");
126482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
126582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok 419 VARIANT"});
126682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
126782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-Knda
126882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config = makeClassicConfig();
126982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.LANGUAGE, "kok");
127082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.SCRIPT, "Knda");
127182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
127282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok Knda");
127382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
127482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok Knda"});
127582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
127682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-Knda-419
127782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.COUNTRY, "419");
127882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
127982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok Knda 419");
128082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
128182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok Knda 419"});
128282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
128382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-Knda-419-VARIANT
128482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.VARIANT, "VARIANT");
128582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
128682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok Knda 419 VARIANT");
128782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
128882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok Knda 419 VARIANT"});
128982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath
129082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        // BCP 47 Locale kok-VARIANT
129182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config = makeClassicConfig();
129282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.LANGUAGE, "kok");
129382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        config.setProperty(Properties.VARIANT, "VARIANT");
129482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        res = config.getResources();
129582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.simple, "simple kok VARIANT");
129682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath        checkValue(res, R.configVarying.bag,
129782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath                R.styleable.TestConfig, new String[]{"bag kok VARIANT"});
129882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath    }
1299532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1300532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    @MediumTest
1301532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    public void testTlAndFilConversion() {
1302532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        TotalConfig config = makeClassicConfig();
1303532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1304532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        // Ensure that "fil" is mapped to "tl" correctly.
1305532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.LANGUAGE, "fil");
1306532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.COUNTRY, "US");
1307532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        Resources res = config.getResources();
130841758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        checkValue(res, R.configVarying.simple, "simple fil");  // We have this resource in 'fil'
1309532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.bag,
131041758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader                R.styleable.TestConfig, new String[] { "bag tl" });  // But this comes from 'tl'
1311532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1312532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        // Ensure that "fil-PH" is mapped to "tl-PH" correctly.
1313532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config = makeClassicConfig();
1314532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.LANGUAGE, "fil");
1315532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.COUNTRY, "PH");
1316532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        res = config.getResources();
1317532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.simple, "simple tl PH");
1318532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.bag,
1319532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath                R.styleable.TestConfig, new String[] { "bag tl PH" });
1320532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
132141758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        // Ensure that "fil-SA" works with no "tl" version.
132241758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config = makeClassicConfig();
132341758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config.setProperty(Properties.LANGUAGE, "fil");
132441758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config.setProperty(Properties.COUNTRY, "SA");
132541758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        res = config.getResources();
132641758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        checkValue(res, R.configVarying.simple, "simple fil");  // This comes from 'fil'
132741758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        checkValue(res, R.configVarying.bag,
132841758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader                R.styleable.TestConfig, new String[] { "bag fil SA" });  // And this from 'fil-SA'
132941758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader
133041758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        // Ensure that "tlh" is not mistakenly treated as a "tl" variant.
133141758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config = makeClassicConfig();
133241758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config.setProperty(Properties.LANGUAGE, "tlh");
133341758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        config.setProperty(Properties.COUNTRY, "US");
133441758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        res = config.getResources();
133541758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        checkValue(res, R.configVarying.simple, "simple tlh");
133641758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        checkValue(res, R.configVarying.bag,
133741758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader                R.styleable.TestConfig, new String[] { "bag tlh" });
133841758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader
1339532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config = makeClassicConfig();
1340532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.LANGUAGE, "tgl");
1341532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        res = config.getResources();
1342532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.simple, "simple tgl");
1343532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.bag,
1344532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath                R.styleable.TestConfig, new String[] { "bag tgl" });
1345532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1346532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config = makeClassicConfig();
1347532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.LANGUAGE, "tgl");
1348532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        config.setProperty(Properties.COUNTRY, "PH");
1349532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        res = config.getResources();
1350532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.simple, "simple tgl PH");
1351532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        checkValue(res, R.configVarying.bag,
1352532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath                R.styleable.TestConfig, new String[] { "bag tgl PH" });
1353532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    }
1354532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1355532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    @MediumTest
1356532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    public void testGetLocalesConvertsTlToFil() {
1357532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        TotalConfig config = makeClassicConfig();
1358532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1359532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        // Check that the list of locales doesn't contain any of the
1360532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        // "tl" variants. They should've been converted to "fil"
13615e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath        // locales.
1362532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        AssetManager am = config.getResources().getAssets();
1363532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        String[] locales = am.getLocales();
13645e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath        final List<String> tlLocales = new ArrayList<String>(4);
13655e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath        final List<String> filLocales = new ArrayList<String>(4);
1366532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        for (String locale : locales) {
1367532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath            if (locale.startsWith("tl-") || locale.equals("tl")) {
1368532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath                tlLocales.add(locale);
1369532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath            }
13705e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath
13715e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath            if (locale.startsWith("fil-") || locale.equals("fil")) {
13725e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath                filLocales.add(locale);
13735e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath            }
1374532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        }
1375532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath
1376532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath        assertEquals(0, tlLocales.size());
137741758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        assertEquals(3, filLocales.size());
13785e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath        assertTrue(filLocales.contains("fil"));
13795e1d8d9e873b1aad091c86c438a723942e221c87Narayan Kamath        assertTrue(filLocales.contains("fil-PH"));
138041758a720d19a64eda4082d37c95f06440b99064Roozbeh Pournader        assertTrue(filLocales.contains("fil-SA"));
1381532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath    }
1382ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach}
1383