ConfigTest.java revision 532d77f22fc86721f319e9bd20e9767e936622e4
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 34ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubachimport com.android.cts.stub.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, 49ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach WIDTH, 50ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach HEIGHT, 519e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn DENSITY, 52544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn SCREENLAYOUT, 53544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn SWIDTH_DP, 54544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn WIDTH_DP, 55544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn HEIGHT_DP 56ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 57ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 58ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach private static void checkValue(final Resources res, final int resId, 59ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final String expectedValue) { 60ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach try { 61ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final String actual = res.getString(resId); 62ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assertNotNull("Returned wrong configuration-based simple value: expected <nothing>, " 63ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + "got '" + actual + "' from resource 0x" + Integer.toHexString(resId), 64ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach expectedValue); 65ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assertEquals("Returned wrong configuration-based simple value: expected '" 66ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + expectedValue + "', got '" + actual + "' from resource 0x" 67ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + Integer.toHexString(resId), expectedValue, actual); 68ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } catch (NotFoundException e) { 69ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assertNull("Resource not found for configuration-based simple value: expecting \"" 70ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + expectedValue + "\"", expectedValue); 71ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 72ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 73ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 74ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach private static void checkValue(final Resources res, final int resId, 75ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final int[] styleable, final String[] expectedValues) { 76ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final Resources.Theme theme = res.newTheme(); 77ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final TypedArray sa = theme.obtainStyledAttributes(resId, styleable); 78ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach for (int i = 0; i < styleable.length; i++) { 79ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final String actual = sa.getString(i); 80ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assertEquals("Returned wrong configuration-based style value: expected '" 81ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + expectedValues[i] + "', got '" + actual + "' from attr " 82ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach + i + " of resource 0x" + Integer.toHexString(resId), 83ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach actual, expectedValues[i]); 84ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 85ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach sa.recycle(); 86ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 87ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 88ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach private class TotalConfig { 89544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn final Configuration mConfig; 90544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn final DisplayMetrics mMetrics; 91ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 92ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach public TotalConfig() { 93ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig = new Configuration(); 94ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mMetrics = new DisplayMetrics(); 9582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath mConfig.locale = Locale.ROOT; 96ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 97ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 98ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach public void setProperty(final Properties p, final int value) { 99ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach switch(p) { 100ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case MCC: 101ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.mcc = value; 102ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 103ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case MNC: 104ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.mnc = value; 105ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 106ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case TOUCHSCREEN: 107ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.touchscreen = value; 108ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 109ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case KEYBOARD: 110ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.keyboard = value; 111ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 112ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case KEYBOARDHIDDEN: 113ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.keyboardHidden = value; 114ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 115ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case NAVIGATION: 116ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.navigation = value; 117ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 118ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case ORIENTATION: 119ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mConfig.orientation = value; 120ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 121ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case WIDTH: 122ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mMetrics.widthPixels = value; 123fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski mMetrics.noncompatWidthPixels = value; 124ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 125ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case HEIGHT: 126ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach mMetrics.heightPixels = value; 127fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski mMetrics.noncompatHeightPixels = value; 128ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 129ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case DENSITY: 130e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // this is the ratio from the standard 131e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot mMetrics.density = (((float)value)/((float)DisplayMetrics.DENSITY_DEFAULT)); 132fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski mMetrics.noncompatDensity = mMetrics.density; 13322c10fd575ab9eaf2f8f7a8b2a3e1569b041ded9Dianne Hackborn mConfig.densityDpi = value; 134ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 1359e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn case SCREENLAYOUT: 1369e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn mConfig.screenLayout = value; 1379e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn break; 138544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn case SWIDTH_DP: 139544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn mConfig.smallestScreenWidthDp = value; 140544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn break; 141544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn case WIDTH_DP: 142544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn mConfig.screenWidthDp = value; 143544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn break; 144544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn case HEIGHT_DP: 145544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn mConfig.screenHeightDp = value; 146544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn break; 147ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach default: 148ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assert(false); 149ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 150ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 151ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 152ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 153ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach public void setProperty(final Properties p, final String value) { 154ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach switch(p) { 155ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case LANGUAGE: 15682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath mConfig.locale = new Locale.Builder() 15782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setLocale(mConfig.locale) 15882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setLanguage(value) 15982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .build(); 160ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 161ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach case COUNTRY: 16282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath mConfig.locale = new Locale.Builder() 16382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setLocale(mConfig.locale) 16482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setRegion(value) 16582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .build(); 16682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath break; 16782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath case SCRIPT: 16882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath mConfig.locale = new Locale.Builder() 16982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setLocale(mConfig.locale) 17082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setScript(value) 17182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .build(); 17282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath break; 17382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath case VARIANT: 17482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath mConfig.locale = new Locale.Builder() 17582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setLocale(mConfig.locale) 17682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .setVariant(value) 17782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath .build(); 178ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 179ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach default: 180ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assert(false); 181ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach break; 182ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 183ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 184ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 185ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach public Resources getResources() { 186ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach final AssetManager assmgr = new AssetManager(); 187ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach assmgr.addAssetPath(mContext.getPackageResourcePath()); 188ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach return new Resources(assmgr, mMetrics, mConfig); 189ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 190ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 191ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 192544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public TotalConfig makeEmptyConfig() { 193544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn return new TotalConfig(); 194544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn } 195544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 196544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public TotalConfig makeClassicConfig() { 197544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = new TotalConfig(); 198fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.LANGUAGE, "en"); 199fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.COUNTRY, "US"); 200fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.MCC, 310); 201fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.MNC, 001); // unused 202fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_FINGER); 203fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_QWERTY); 204fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_YES); 205fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_TRACKBALL); 206fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT); 207fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.SWIDTH_DP, 320); 208fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.WIDTH_DP, 320); 209fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.HEIGHT_DP, 480); 210fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.DENSITY, 160); 211fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.WIDTH, 200); 212fadb6e50259673cbdca4bd2279b005d799c4112dAdam Lesinski config.setProperty(Properties.HEIGHT, 320); 213544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn return config; 214544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn } 215544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 216e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot private static void checkPair(Resources res, int[] notResIds, 217e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot int simpleRes, String simpleString, 218e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot int bagRes, String bagString) { 219e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot boolean willHave = true; 220e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot if (notResIds != null) { 221e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot for (int i : notResIds) { 222e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot if (i == simpleRes) { 223e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot willHave = false; 224e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot break; 225e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot } 226e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot } 227e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot } 228e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, simpleRes, willHave ? simpleString : null); 229e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, bagRes, R.styleable.TestConfig, 230e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot new String[]{willHave ? bagString : null}); 231e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot } 232e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 233ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach @SmallTest 234544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public void testAllEmptyConfigs() { 235ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach /** 236ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * Test a resource that contains a value for each possible single 237ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * configuration value. 238ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach */ 239544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeEmptyConfig(); 240ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach Resources res = config.getResources(); 241e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple default"); 242e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 243e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag default"}); 244ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 245544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 246ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 247ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 248e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple xx"); 249e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 250e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag xx"}); 251ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 252544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 253ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 254ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.COUNTRY, "YY"); 255ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 256ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple xx-rYY"); 257e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 258e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag xx-rYY"}); 259ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 260544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 261ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.MCC, 111); 262ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 263ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple mcc111"); 264e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 265e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag mcc111"}); 266ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 267544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 268ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.MNC, 222); 269ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 270ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple mnc222"); 271e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 272e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag mnc222"}); 273ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 274544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 275ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH); 276ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 277e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple notouch"); 278e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 279e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag notouch"}); 280ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 281544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 282e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_STYLUS); 283ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 284e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple stylus"); 285e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 286e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag stylus"}); 287ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 288544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 289e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS); 290ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 291e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple nokeys"); 292e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 293e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag nokeys"}); 294ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 295544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 296e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY); 297ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 298e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 12key"); 299e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 300e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 12key"}); 301ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 302544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 303e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO); 304ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 305e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple keysexposed"); 306e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 307e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag keysexposed"}); 308ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 309544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 310e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV); 311ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 312e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple nonav"); 313e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 314e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag nonav"}); 315ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 316544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 317e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_DPAD); 318ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 319e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple dpad"); 320e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 321e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag dpad"}); 322ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 323544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 324e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_WHEEL); 325ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 326e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple wheel"); 327e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 328e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag wheel"}); 329ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 330544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 331e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.HEIGHT, 480); 332e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.WIDTH, 320); 333ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 334e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 480x320"); 335e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 336e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 480x320"}); 337ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 338544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 339e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 240); 340ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 341e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 240dpi"); 342e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 343e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 240dpi"}); 344ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 345544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 346e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 347ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 348e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple landscape"); 349e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 350e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag landscape"}); 351ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 352544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 353e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_SQUARE); 354ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 355e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple square"); 356e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 357e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag square"}); 3589e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 359544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 3609e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL); 3619e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 3629e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple small"); 3639e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.bag, 3649e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn R.styleable.TestConfig, new String[]{"bag small"}); 3659e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 366544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 3679e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL); 3689e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 3699e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple normal"); 3709e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.bag, 3719e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn R.styleable.TestConfig, new String[]{"bag normal"}); 3729e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 373544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 3749e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 3759e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 3769e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple large"); 3779e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.bag, 3789e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn R.styleable.TestConfig, new String[]{"bag large"}); 3799e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 380544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 3819e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 3829e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 3839e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple xlarge"); 3849e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.bag, 3859e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn R.styleable.TestConfig, new String[]{"bag xlarge"}); 386544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 387544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 388544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 389544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 390544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600"); 391544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 392544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw600"}); 393544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 394544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 395544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 396544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 397544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600"); 398544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 399544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw600"}); 400544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 401544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 402544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 720); 403544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 404544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw720"); 405544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 406544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw720"}); 407544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 408544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 409544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 600); 410544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 411544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple w600"); 412544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 413544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag w600"}); 414544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 415544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 416544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 720); 417544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 418544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple w720"); 419544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 420544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag w720"}); 421544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 422544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 423544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 550); 424544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 425544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple h550"); 426544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 427544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag h550"}); 428544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 429544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeEmptyConfig(); 430544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 670); 431544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 432544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple h670"); 433544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 434544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag h670"}); 435544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn } 436544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 437544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn @SmallTest 438544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public void testAllClassicConfigs() { 439544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn /** 440544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * Test a resource that contains a value for each possible single 441544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * configuration value. 442544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn */ 443544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeClassicConfig(); 444544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn Resources res = config.getResources(); 445544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple default"); 446544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 447544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag default"}); 448544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 449544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 450544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.LANGUAGE, "xx"); 451544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 452544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple xx"); 453544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 454544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag xx"}); 455544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 456544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 457544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.LANGUAGE, "xx"); 458544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.COUNTRY, "YY"); 459544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 460544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple xx-rYY"); 461544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 462544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag xx-rYY"}); 463544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 464544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 465544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MCC, 111); 466544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 467544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple mcc111"); 468544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 469544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag mcc111"}); 470544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 471544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 472544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MNC, 222); 473544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 474544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple mnc222"); 475544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 476544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag mnc222"}); 477544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 478544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 479544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH); 480544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 481544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple notouch"); 482544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 483544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag notouch"}); 484544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 485544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 486544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_STYLUS); 487544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 488544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple stylus"); 489544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 490544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag stylus"}); 491544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 492544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 493544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS); 494544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 495544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple nokeys"); 496544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 497544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag nokeys"}); 498544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 499544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 500544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY); 501544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 502544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 12key 63x57"); 503544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 504544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 12key 63x57"}); 505544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 506544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 507544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO); 508544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 509544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple keysexposed"); 510544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 511544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag keysexposed"}); 512544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 513544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 514544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV); 515544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 516544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple nonav"); 517544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 518544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag nonav"}); 519544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 520544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 521544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_DPAD); 522544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 523544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple dpad 63x57"); 524544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 525544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag dpad 63x57"}); 526544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 527544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 528544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_WHEEL); 529544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 530544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple wheel"); 531544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 532544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag wheel"}); 533544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 534544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 535544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT, 480); 536544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH, 320); 537544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 538544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 480x320"); 539544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 540544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 480x320"}); 541544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 542544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 543544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.DENSITY, 240); 544544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 545544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 240dpi"); 546544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 547544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 240dpi"}); 548544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 549544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 550544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 551544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 552544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple landscape"); 553544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 554544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag landscape"}); 555544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 556544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 557544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_SQUARE); 558544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 559544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple square"); 560544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 561544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag square"}); 562544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 563544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 564544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL); 565544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 566544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple small"); 567544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 568544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag small"}); 569544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 570544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 571544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL); 572544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 573544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple normal"); 574544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 575544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag normal"}); 576544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 577544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 578544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 579544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 580544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple large"); 581544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 582544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag large"}); 583544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 584544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 585544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 586544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 587544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple xlarge"); 588544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 589544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag xlarge"}); 590544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 591544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 592544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 593544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 594544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600"); 595544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 596544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw600"}); 597544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 598544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 599544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 600544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 601544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 602544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600 land"); 603544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 604544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw600 land"}); 605544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 606544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 607544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 720); 608544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 609544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw720"); 610544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 611544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw720"}); 612544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 613544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 614544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 600); 615544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 616544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple w600"); 617544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 618544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag w600"}); 619544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 620544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 621544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 720); 622544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 623544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple w720"); 624544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 625544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag w720"}); 626544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 627544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 628544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 550); 629544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 630544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple h550"); 631544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 632544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag h550"}); 633544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 634544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 635544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 670); 636544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 637544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple h670"); 638544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 639544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag h670"}); 640e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot } 641e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 642e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot @MediumTest 643e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot public void testDensity() throws Exception { 644e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // have 32, 240 and the default 160 content. 645e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // rule is that closest wins, with down scaling (larger content) 646e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // being twice as nice as upscaling. 647e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // transition at H/2 * (-1 +/- sqrt(1+8L/H)) 648e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // SO, X < 49 goes to 32 649e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // 49 >= X < 182 goes to 160 650e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot // X >= 182 goes to 240 651544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeClassicConfig(); 652e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 2); 653e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Resources res = config.getResources(); 654e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 32dpi"); 655e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 656e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 32dpi"}); 657ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 658544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 659e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 32); 660ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 661e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 32dpi"); 662e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 663e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 32dpi"}); 664ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 665544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 666e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 48); 667ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 668e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 32dpi"); 669e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 670e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 32dpi"}); 671ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 672544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 673e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 49); 674ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 675e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple default"); 676e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 677e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag default"}); 678ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 679544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 680e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 150); 681ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 682e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple default"); 683e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 684e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag default"}); 685ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 686544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 687e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 181); 688ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 689e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple default"); 690e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 691e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag default"}); 692ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 693544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 694e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 182); 695ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 696e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 240dpi"); 697e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 698e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 240dpi"}); 699ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 700544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 701e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 239); 702e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot res = config.getResources(); 703e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 240dpi"); 704e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 705e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 240dpi"}); 706e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 707544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 708e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.DENSITY, 490); 709ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 710e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 240dpi"); 711e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 712e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 240dpi"}); 713ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 714ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 7159e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn @MediumTest 7169e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn public void testScreenSize() throws Exception { 7179e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn // ensure that we fall back to the best available screen size 7189e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn // for a given configuration. 719544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeClassicConfig(); 7209e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_SMALL); 7219e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn Resources res = config.getResources(); 7229e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple small"); 7239e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.small, "small"); 7249e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.normal, "default"); 7259e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.large, "default"); 7269e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.xlarge, "default"); 7279e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 728544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 7299e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_NORMAL); 7309e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 7319e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple normal"); 7329e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.small, "default"); 7339e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.normal, "normal"); 7349e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.large, "default"); 7359e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.xlarge, "default"); 7369e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 737544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 7389e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 7399e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 7409e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple large"); 7419e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.small, "default"); 7429e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.normal, "normal"); 7439e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.large, "large"); 7449e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.xlarge, "default"); 7459e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 746544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 7479e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 7489e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn res = config.getResources(); 7499e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.simple, "simple xlarge"); 7509e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.small, "default"); 7519e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.normal, "normal"); 7529e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.large, "large"); 7539e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn checkValue(res, R.configVarying.xlarge, "xlarge"); 7549e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn } 7559e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn 756544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn @MediumTest 757544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public void testNewScreenSize() throws Exception { 758544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn // ensure that swNNNdp, wNNNdp, and hNNNdp are working correctly 759544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn // for various common screen configurations. 760544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeClassicConfig(); 76163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 589); 76263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.WIDTH_DP, 589); 76363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 500); 764544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 765544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 766544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn Resources res = config.getResources(); 767544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple large"); 768544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "default"); 769544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "default"); 770544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "default"); 771544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "default"); 772544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 773544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 77463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 590); 77563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.WIDTH_DP, 590); 77663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 500); 77763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 77863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 77963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_MEDIUM); 78063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 78163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw590 mdpi"); 78263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "590 mdpi"); 78363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 78463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_HIGH); 78563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 78663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw590 hdpi"); 78763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "590 hdpi"); 78863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 78963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_XHIGH); 79063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 79163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw590 xhdpi"); 79263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "590 xhdpi"); 79363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 79463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 591); 79563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.WIDTH_DP, 591); 79663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_MEDIUM); 79763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 79863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw591"); 79963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "591"); 80063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 80163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_HIGH); 80263d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 80363d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw591 hdpi"); 80463d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "591 hdpi"); 80563d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 80663d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config.setProperty(Properties.DENSITY, DisplayMetrics.DENSITY_XHIGH); 80763d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn res = config.getResources(); 80863d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw591 hdpi"); 80963d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn checkValue(res, R.configVarying.sw, "591 hdpi"); 81063d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn 81163d85b57e49feb83fd91ed027b4893a0e47415aeDianne Hackborn config = makeClassicConfig(); 812544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 480); 813544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 800); 814544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 480); 815544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 816544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 817544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 818544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple w720"); 819544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "default"); 820544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "720"); 821544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "default"); 822544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "600"); 823544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 824544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 825544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 826544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 1024); 827544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 552); 828544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 829544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 830544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 831544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600 land"); 832544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "600 land"); 833544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "720"); 834544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "550"); 835544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "600-550"); 836544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 837544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 838544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 600); 839544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 600); 840544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 974); 841544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT); 842544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 843544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 844544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600"); 845544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "600"); 846544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "600"); 847544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "670"); 848544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "600-550"); 849544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 850544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 851544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 719); 852544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 1279); 853544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 669); 854544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 855544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_LARGE); 856544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 857544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw600 land"); 858544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "600 land"); 859544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "720"); 860544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "550"); 861544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "600-550"); 862544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 863544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 864544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 800); 865544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 1280); 866544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 672); 867544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 868544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 869544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 870544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw720"); 871544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "720"); 872544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "720"); 873544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "670"); 874544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "720-670"); 875544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 876544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 877544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 800); 878544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 720); 879544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 1230); 880544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_PORTRAIT); 881544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 882544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 883544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw720"); 884544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.sw, "720"); 885544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.w, "720"); 886544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.h, "670"); 887544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.wh, "720-670"); 888544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn } 889544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 890e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot// TODO - add tests for special cases - ie, other key params seem ignored if 891e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot// nokeys is set 892e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 893ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach @MediumTest 894544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public void testPrecidence() { 895ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach /** 896544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * Check for precidence of resources selected when there are multiple 897544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * options matching the current config. 898ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach */ 899544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeEmptyConfig(); 900544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT, 640); 901544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH, 400); 902ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach Resources res = config.getResources(); 903544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 640x400"); 904544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 905544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 640x400"}); 906544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 907544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.NAVIGATION, Configuration.NAVIGATION_NONAV); 908544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 909544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple nonav"); 910544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 911544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag nonav"}); 912544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 913544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_NOKEYS); 914544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 915544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple nokeys"); 916544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 917544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag nokeys"}); 918544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 919544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.KEYBOARDHIDDEN, Configuration.KEYBOARDHIDDEN_NO); 920544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 921544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple keysexposed"); 922544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 923544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag keysexposed"}); 924544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 925544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.TOUCHSCREEN, Configuration.TOUCHSCREEN_NOTOUCH); 926544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 927544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple notouch"); 928544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 929544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag notouch"}); 930544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 931544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.DENSITY, 240); 932544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 933544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 240dpi"); 934544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 935544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 240dpi"}); 936544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 937544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.ORIENTATION, Configuration.ORIENTATION_LANDSCAPE); 938544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 939544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple landscape"); 940544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 941544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag landscape"}); 942544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 943544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SCREENLAYOUT, Configuration.SCREENLAYOUT_SIZE_XLARGE); 944544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 945544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple xlarge"); 946544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 947544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag xlarge"}); 948544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 949544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.HEIGHT_DP, 670); 950544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 951544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple h670"); 952544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 953544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag h670"}); 954544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 955544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.WIDTH_DP, 720); 956544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 957544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple 720-670"); 958544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 959544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag 720-670"}); 960544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 961544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.SWIDTH_DP, 720); 962544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 963544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple sw720"); 964544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 965544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag sw720"}); 966ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 967ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 968ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.COUNTRY, "YY"); 969ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 970ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple xx-rYY"); 971ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.bag, 972544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag xx-rYY"}); 973ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 974544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MCC, 111); 975ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 976544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple mcc111 xx-rYY"); 977e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 978544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag mcc111 xx-rYY"}); 979544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 980544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MNC, 222); 981544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 982544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple mcc111 mnc222"); 983544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 984544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag mcc111 mnc222"}); 985ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 986ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 987ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach @MediumTest 988544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn public void testCombinations() { 989ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach /** 990ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach * Verify that in cases of ties, the specific ordering is followed 991ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach */ 992ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 993e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot /** 994544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * Precidence order: mcc, mnc, locale, swdp, wdp, hdp, screenlayout-size, 9959e357fa63f60e01c61fc11ce304398233b779558Dianne Hackborn * screenlayout-long, orientation, density, 996e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot * touchscreen, hidden, keyboard, navigation, width-height 997e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot */ 998e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 999e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot /** 1000e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot * verify mcc trumps mnc. Have 110-xx, 220-xx but no 110-220 1001544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * so which is selected? Should be mcc110-xx. 1002ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach */ 1003544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn TotalConfig config = makeClassicConfig(); 1004e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.MCC, 110); 1005e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.MNC, 220); 1006e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.LANGUAGE, "xx"); 1007e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Resources res = config.getResources(); 1008e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple mcc110 xx"); 1009e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1010e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag mcc110 xx"}); 1011e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 1012e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot /* full A + B + C doesn't exist. Do we get A + C or B + C? 1013e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot */ 1014544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1015ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.MCC, 111); 1016ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.MNC, 222); 1017ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 1018e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot res = config.getResources(); 1019ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple mcc111 mnc222"); 1020e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1021e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag mcc111 mnc222"}); 1022ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1023544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1024ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.MNC, 222); 1025ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 1026e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.ORIENTATION, 1027e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.ORIENTATION_SQUARE); 1028ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1029ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple mnc222 xx"); 1030e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1031e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag mnc222 xx"}); 1032ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1033544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1034ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.LANGUAGE, "xx"); 1035e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.ORIENTATION, 1036e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.ORIENTATION_SQUARE); 1037ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.DENSITY, 32); 1038ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1039e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple xx square"); 1040e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1041e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag xx square"}); 1042ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1043544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn /** 1044544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * Verify that proper strings are found for multiple-selectivity case 1045544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * (ie, a string set for locale and mcc is found only when both are 1046544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn * true). 1047544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn */ 1048544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1049544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.LANGUAGE, "xx"); 1050544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.COUNTRY, "YY"); 1051544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MCC, 111); 1052544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 1053544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple mcc111 xx-rYY"); 1054544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, R.styleable.TestConfig, 1055544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn new String[] { "bag mcc111 xx-rYY" }); 1056544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 1057544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1058544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.LANGUAGE, "xx"); 1059544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.COUNTRY, "YY"); 1060544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MCC, 333); 1061544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 1062544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple xx-rYY"); 1063544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 1064544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[] { "bag xx-rYY" }); 1065544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 1066544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1067544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config.setProperty(Properties.MNC, 333); 1068544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn res = config.getResources(); 1069544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple default"); 1070544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.bag, 1071544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag default"}); 1072544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn 1073544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1074e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.ORIENTATION, 1075e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.ORIENTATION_SQUARE); 1076ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.DENSITY, 32); 1077e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.TOUCHSCREEN, 1078e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.TOUCHSCREEN_STYLUS); 1079ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1080e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple square 32dpi"); 1081e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1082e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag square 32dpi"}); 1083ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1084544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1085ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.DENSITY, 32); 1086e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.TOUCHSCREEN, 1087e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.TOUCHSCREEN_STYLUS); 1088e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARDHIDDEN, 1089e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.KEYBOARDHIDDEN_NO); 1090ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1091ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach checkValue(res, R.configVarying.simple, "simple 32dpi stylus"); 1092e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1093e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 32dpi stylus"}); 1094ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1095544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1096e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.TOUCHSCREEN, 1097e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.TOUCHSCREEN_STYLUS); 1098e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARDHIDDEN, 1099e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.KEYBOARDHIDDEN_NO); 1100ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY); 1101ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1102e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple stylus keysexposed"); 1103e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1104e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag stylus keysexposed"}); 1105ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1106544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1107e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.KEYBOARDHIDDEN, 1108e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.KEYBOARDHIDDEN_NO); 1109ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY); 1110e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, 1111e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.NAVIGATION_DPAD); 1112ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1113e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple keysexposed 12key"); 1114e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1115e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag keysexposed 12key"}); 1116ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach 1117544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1118ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.KEYBOARD, Configuration.KEYBOARD_12KEY); 1119e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, 1120e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.NAVIGATION_DPAD); 1121ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.HEIGHT, 63); 1122ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach config.setProperty(Properties.WIDTH, 57); 1123ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach res = config.getResources(); 1124e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.simple, "simple 12key dpad"); 1125e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1126e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot R.styleable.TestConfig, new String[]{"bag 12key dpad"}); 1127e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot 1128544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn config = makeClassicConfig(); 1129e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.NAVIGATION, 1130e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot Configuration.NAVIGATION_DPAD); 1131e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.HEIGHT, 640); 1132e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot config.setProperty(Properties.WIDTH, 400); 1133e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot res = config.getResources(); 1134544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn checkValue(res, R.configVarying.simple, "simple dpad 63x57"); 1135e947cdc06f481293bbd4466c5e73860ea34fcb87Brett Chabot checkValue(res, R.configVarying.bag, 1136544d272e5901ed193dd9c55a9ef791a38ffef91eDianne Hackborn R.styleable.TestConfig, new String[]{"bag dpad 63x57"}); 1137ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach } 1138c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn 1139c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn @MediumTest 1140c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn public void testVersions() { 1141c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn // Check that we get the most recent resources that are <= our 1142c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn // current version. Note the special version adjustment, so that 1143c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn // during development the resource version is incremented to the 1144c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn // next one. 1145c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn int vers = android.os.Build.VERSION.SDK_INT; 1146c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn if (!"REL".equals(android.os.Build.VERSION.CODENAME)) { 1147c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn vers++; 1148c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn } 1149c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn String expected = "v" + vers + "cur"; 1150c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn assertEquals(expected, mContext.getResources().getString(R.string.version_cur)); 1151c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn assertEquals("base", mContext.getResources().getString(R.string.version_old)); 1152c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn assertEquals("v3", mContext.getResources().getString(R.string.version_v3)); 1153c6dd74ed84f79a31b2be4ce52a61fef8e16b54b9Dianne Hackborn } 115482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 115582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath @MediumTest 115682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath public void testExtendedLocales() { 115782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath TotalConfig config = makeClassicConfig(); 115882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok 115982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.LANGUAGE, "kok"); 116082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath Resources res = config.getResources(); 116182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok"); 116282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 116382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok"}); 116482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 116582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-IN 116682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.COUNTRY, "IN"); 116782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 116882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok IN"); 116982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 117082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok IN"}); 117182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 117282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-419 117382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.COUNTRY, "419"); 117482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 117582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok 419"); 117682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 117782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok 419"}); 117882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 117982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 118082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-419-VARIANT 118182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.VARIANT, "VARIANT"); 118282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 118382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok 419 VARIANT"); 118482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 118582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok 419 VARIANT"}); 118682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 118782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-Knda 118882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config = makeClassicConfig(); 118982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.LANGUAGE, "kok"); 119082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.SCRIPT, "Knda"); 119182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 119282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok Knda"); 119382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 119482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok Knda"}); 119582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 119682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-Knda-419 119782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.COUNTRY, "419"); 119882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 119982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok Knda 419"); 120082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 120182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok Knda 419"}); 120282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 120382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-Knda-419-VARIANT 120482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.VARIANT, "VARIANT"); 120582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 120682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok Knda 419 VARIANT"); 120782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 120882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok Knda 419 VARIANT"}); 120982ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath 121082ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath // BCP 47 Locale kok-VARIANT 121182ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config = makeClassicConfig(); 121282ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.LANGUAGE, "kok"); 121382ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath config.setProperty(Properties.VARIANT, "VARIANT"); 121482ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath res = config.getResources(); 121582ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.simple, "simple kok VARIANT"); 121682ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath checkValue(res, R.configVarying.bag, 121782ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath R.styleable.TestConfig, new String[]{"bag kok VARIANT"}); 121882ee2e50f63c00c3a57ce4f76f1843a58b176e09Narayan Kamath } 1219532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1220532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath @MediumTest 1221532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath public void testTlAndFilConversion() { 1222532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath TotalConfig config = makeClassicConfig(); 1223532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1224532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath // Ensure that "fil" is mapped to "tl" correctly. 1225532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.LANGUAGE, "fil"); 1226532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.COUNTRY, "US"); 1227532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath Resources res = config.getResources(); 1228532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.simple, "simple tl"); 1229532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.bag, 1230532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath R.styleable.TestConfig, new String[] { "bag tl" }); 1231532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1232532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath // Ensure that "fil-PH" is mapped to "tl-PH" correctly. 1233532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config = makeClassicConfig(); 1234532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.LANGUAGE, "fil"); 1235532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.COUNTRY, "PH"); 1236532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath res = config.getResources(); 1237532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.simple, "simple tl PH"); 1238532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.bag, 1239532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath R.styleable.TestConfig, new String[] { "bag tl PH" }); 1240532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1241532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config = makeClassicConfig(); 1242532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.LANGUAGE, "tgl"); 1243532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath res = config.getResources(); 1244532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.simple, "simple tgl"); 1245532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.bag, 1246532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath R.styleable.TestConfig, new String[] { "bag tgl" }); 1247532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1248532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config = makeClassicConfig(); 1249532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.LANGUAGE, "tgl"); 1250532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath config.setProperty(Properties.COUNTRY, "PH"); 1251532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath res = config.getResources(); 1252532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.simple, "simple tgl PH"); 1253532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath checkValue(res, R.configVarying.bag, 1254532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath R.styleable.TestConfig, new String[] { "bag tgl PH" }); 1255532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath } 1256532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1257532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath @MediumTest 1258532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath public void testGetLocalesConvertsTlToFil() { 1259532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath TotalConfig config = makeClassicConfig(); 1260532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1261532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath // Check that the list of locales doesn't contain any of the 1262532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath // "tl" variants. They should've been converted to "fil" 1263532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath // locales. 1264532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath AssetManager am = config.getResources().getAssets(); 1265532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath String[] locales = am.getLocales(); 1266532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath final List<String> tlLocales = new ArrayList<String>(4); 1267532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath final List<String> filLocales = new ArrayList<String>(4); 1268532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath for (String locale : locales) { 1269532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath if (locale.startsWith("tl-") || locale.equals("tl")) { 1270532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath tlLocales.add(locale); 1271532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath } 1272532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1273532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath if (locale.startsWith("fil-") || locale.equals("fil")) { 1274532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath filLocales.add(locale); 1275532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath } 1276532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath } 1277532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath 1278532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath assertEquals(0, tlLocales.size()); 1279532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath assertEquals(2, filLocales.size()); 1280532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath assertTrue(filLocales.contains("fil")); 1281532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath assertTrue(filLocales.contains("fil-PH")); 1282532d77f22fc86721f319e9bd20e9767e936622e4Narayan Kamath } 1283ea99ab0ba2830711b1f074f34f647e075da1c38dPhil Dubach} 1284