| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Eclipse Public License, Version 1.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.eclipse.org/org/documents/epl-v10.php |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.android.ide.eclipse.adt.internal.editors.layout.gre; |
| |
| import com.android.ide.common.api.IViewMetadata.FillPreference; |
| import com.android.ide.eclipse.adt.internal.editors.layout.gre.ViewMetadataRepository.RenderMode; |
| |
| import java.util.Arrays; |
| |
| import junit.framework.TestCase; |
| |
| public class ViewMetadataRepositoryTest extends TestCase { |
| public void testSingleton() throws Exception { |
| assertSame(ViewMetadataRepository.get(), ViewMetadataRepository.get()); |
| } |
| |
| public void testBasic() throws Exception { |
| ViewMetadataRepository repository = ViewMetadataRepository.get(); |
| |
| assertEquals(FillPreference.WIDTH_IN_VERTICAL, |
| repository.getFillPreference("android.widget.Spinner")); |
| assertEquals(FillPreference.NONE, |
| repository.getFillPreference("foo.bar")); |
| } |
| |
| // Ensure that all basenames referenced in the metadata refer to other views in the file |
| // (e.g. no typos) |
| public void testRelatedTo() throws Exception { |
| // Make sure unit tests are run with assertions on |
| boolean assertionsEnabled = false; |
| assert assertionsEnabled = true; // Intentional assignment |
| assertTrue("This unit test must be run with assertions enabled (-ea)", assertionsEnabled); |
| |
| ViewMetadataRepository repository = ViewMetadataRepository.get(); |
| for (String fqcn : repository.getAllFqcns()) { |
| repository.getRelatedTo(fqcn); |
| } |
| } |
| |
| public void testSkip() throws Exception { |
| ViewMetadataRepository repository = ViewMetadataRepository.get(); |
| assertTrue(repository.getSkip("merge")); |
| assertFalse(repository.getSkip("android.widget.Button")); |
| } |
| |
| public void testRenderMode() throws Exception { |
| ViewMetadataRepository repository = ViewMetadataRepository.get(); |
| assertEquals(RenderMode.NORMAL, repository.getRenderMode("android.widget.Button")); |
| assertEquals(RenderMode.SKIP, repository.getRenderMode("android.widget.LinearLayout")); |
| assertEquals(RenderMode.ALONE, repository.getRenderMode("android.widget.TabHost")); |
| } |
| |
| public void testGetTopAttributes() throws Exception { |
| ViewMetadataRepository repository = ViewMetadataRepository.get(); |
| assertEquals(Arrays.asList("id", "text", "style"), |
| repository.getTopAttributes("android.widget.RadioButton")); |
| assertEquals(Arrays.asList("id", "gravity", "paddingLeft", "paddingRight", "checkMark", |
| "textAppearance"), |
| repository.getTopAttributes("android.widget.CheckedTextView")); |
| assertEquals(Arrays.asList("id"), |
| repository.getTopAttributes("android.widget.NonExistent")); |
| } |
| |
| } |