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