1 /* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.ide.common.resources.configuration; 18 19 import com.android.resources.Density; 20 21 import junit.framework.TestCase; 22 23 public class PixelDensityQualifierTest extends TestCase { 24 25 private DensityQualifier pdq; 26 private FolderConfiguration config; 27 28 @Override 29 protected void setUp() throws Exception { 30 super.setUp(); 31 pdq = new DensityQualifier(); 32 config = new FolderConfiguration(); 33 } 34 35 @Override 36 protected void tearDown() throws Exception { 37 super.tearDown(); 38 pdq = null; 39 config = null; 40 } 41 42 public void testCheckAndSet() { 43 assertEquals(true, pdq.checkAndSet("ldpi", config));//$NON-NLS-1$ 44 assertTrue(config.getDensityQualifier() != null); 45 assertEquals(Density.LOW, config.getDensityQualifier().getValue()); 46 assertEquals("ldpi", config.getDensityQualifier().toString()); //$NON-NLS-1$ 47 } 48 49 public void testFailures() { 50 assertEquals(false, pdq.checkAndSet("", config));//$NON-NLS-1$ 51 assertEquals(false, pdq.checkAndSet("dpi", config));//$NON-NLS-1$ 52 assertEquals(false, pdq.checkAndSet("123dpi", config));//$NON-NLS-1$ 53 assertEquals(false, pdq.checkAndSet("123", config));//$NON-NLS-1$ 54 assertEquals(false, pdq.checkAndSet("sdfdpi", config));//$NON-NLS-1$ 55 } 56 57 public void testIsBetterMatchThan() { 58 DensityQualifier ldpi = new DensityQualifier(Density.LOW); 59 DensityQualifier mdpi = new DensityQualifier(Density.MEDIUM); 60 DensityQualifier hdpi = new DensityQualifier(Density.HIGH); 61 DensityQualifier xhdpi = new DensityQualifier(Density.XHIGH); 62 63 // first test that each Q is a better match than all other Qs when the ref is the same Q. 64 assertTrue(ldpi.isBetterMatchThan(mdpi, ldpi)); 65 assertTrue(ldpi.isBetterMatchThan(hdpi, ldpi)); 66 assertTrue(ldpi.isBetterMatchThan(xhdpi, ldpi)); 67 68 assertTrue(mdpi.isBetterMatchThan(ldpi, mdpi)); 69 assertTrue(mdpi.isBetterMatchThan(hdpi, mdpi)); 70 assertTrue(mdpi.isBetterMatchThan(xhdpi, mdpi)); 71 72 assertTrue(hdpi.isBetterMatchThan(ldpi, hdpi)); 73 assertTrue(hdpi.isBetterMatchThan(mdpi, hdpi)); 74 assertTrue(hdpi.isBetterMatchThan(xhdpi, hdpi)); 75 76 assertTrue(xhdpi.isBetterMatchThan(ldpi, xhdpi)); 77 assertTrue(xhdpi.isBetterMatchThan(mdpi, xhdpi)); 78 assertTrue(xhdpi.isBetterMatchThan(hdpi, xhdpi)); 79 80 // now test that the highest dpi is always preferable if there's no exact match 81 82 // looking for ldpi: 83 assertTrue(hdpi.isBetterMatchThan(mdpi, ldpi)); 84 assertTrue(xhdpi.isBetterMatchThan(mdpi, ldpi)); 85 assertTrue(xhdpi.isBetterMatchThan(hdpi, ldpi)); 86 // the other way around 87 assertFalse(mdpi.isBetterMatchThan(hdpi, ldpi)); 88 assertFalse(mdpi.isBetterMatchThan(xhdpi, ldpi)); 89 assertFalse(hdpi.isBetterMatchThan(xhdpi, ldpi)); 90 91 // looking for mdpi 92 assertTrue(hdpi.isBetterMatchThan(ldpi, mdpi)); 93 assertTrue(xhdpi.isBetterMatchThan(ldpi, mdpi)); 94 assertTrue(xhdpi.isBetterMatchThan(hdpi, mdpi)); 95 // the other way around 96 assertFalse(ldpi.isBetterMatchThan(hdpi, mdpi)); 97 assertFalse(ldpi.isBetterMatchThan(xhdpi, mdpi)); 98 assertFalse(hdpi.isBetterMatchThan(xhdpi, mdpi)); 99 100 // looking for hdpi 101 assertTrue(mdpi.isBetterMatchThan(ldpi, hdpi)); 102 assertTrue(xhdpi.isBetterMatchThan(ldpi, hdpi)); 103 assertTrue(xhdpi.isBetterMatchThan(mdpi, hdpi)); 104 // the other way around 105 assertFalse(ldpi.isBetterMatchThan(mdpi, hdpi)); 106 assertFalse(ldpi.isBetterMatchThan(xhdpi, hdpi)); 107 assertFalse(mdpi.isBetterMatchThan(xhdpi, hdpi)); 108 109 // looking for xhdpi 110 assertTrue(mdpi.isBetterMatchThan(ldpi, xhdpi)); 111 assertTrue(hdpi.isBetterMatchThan(ldpi, xhdpi)); 112 assertTrue(hdpi.isBetterMatchThan(mdpi, xhdpi)); 113 // the other way around 114 assertFalse(ldpi.isBetterMatchThan(mdpi, xhdpi)); 115 assertFalse(ldpi.isBetterMatchThan(hdpi, xhdpi)); 116 assertFalse(mdpi.isBetterMatchThan(hdpi, xhdpi)); 117 } 118 } 119