1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php 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 package com.android.ide.eclipse.adt.internal.editors.layout.gre; 17 18 import com.android.ide.common.api.IViewMetadata.FillPreference; 19 import com.android.ide.eclipse.adt.internal.editors.layout.gre.ViewMetadataRepository.RenderMode; 20 21 import java.util.Arrays; 22 23 import junit.framework.TestCase; 24 25 public class ViewMetadataRepositoryTest extends TestCase { testSingleton()26 public void testSingleton() throws Exception { 27 assertSame(ViewMetadataRepository.get(), ViewMetadataRepository.get()); 28 } 29 testBasic()30 public void testBasic() throws Exception { 31 ViewMetadataRepository repository = ViewMetadataRepository.get(); 32 33 assertEquals(FillPreference.WIDTH_IN_VERTICAL, 34 repository.getFillPreference("android.widget.Spinner")); 35 assertEquals(FillPreference.NONE, 36 repository.getFillPreference("foo.bar")); 37 } 38 39 // Ensure that all basenames referenced in the metadata refer to other views in the file 40 // (e.g. no typos) testRelatedTo()41 public void testRelatedTo() throws Exception { 42 // Make sure unit tests are run with assertions on 43 boolean assertionsEnabled = false; 44 assert assertionsEnabled = true; // Intentional assignment 45 assertTrue("This unit test must be run with assertions enabled (-ea)", assertionsEnabled); 46 47 ViewMetadataRepository repository = ViewMetadataRepository.get(); 48 for (String fqcn : repository.getAllFqcns()) { 49 repository.getRelatedTo(fqcn); 50 } 51 } 52 testSkip()53 public void testSkip() throws Exception { 54 ViewMetadataRepository repository = ViewMetadataRepository.get(); 55 assertTrue(repository.getSkip("merge")); 56 assertFalse(repository.getSkip("android.widget.Button")); 57 } 58 testRenderMode()59 public void testRenderMode() throws Exception { 60 ViewMetadataRepository repository = ViewMetadataRepository.get(); 61 assertEquals(RenderMode.NORMAL, repository.getRenderMode("android.widget.Button")); 62 assertEquals(RenderMode.SKIP, repository.getRenderMode("android.widget.LinearLayout")); 63 assertEquals(RenderMode.ALONE, repository.getRenderMode("android.widget.TabHost")); 64 } 65 testGetTopAttributes()66 public void testGetTopAttributes() throws Exception { 67 ViewMetadataRepository repository = ViewMetadataRepository.get(); 68 assertEquals(Arrays.asList("id", "text", "style"), 69 repository.getTopAttributes("android.widget.RadioButton")); 70 assertEquals(Arrays.asList("id", "gravity", "paddingLeft", "paddingRight", "checkMark", 71 "textAppearance"), 72 repository.getTopAttributes("android.widget.CheckedTextView")); 73 assertEquals(Arrays.asList("id"), 74 repository.getTopAttributes("android.widget.NonExistent")); 75 } 76 77 } 78