diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide')
32 files changed, 732 insertions, 1207 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/AbsoluteLayoutRuleTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/AbsoluteLayoutRuleTest.java index f4092eb..62725b8 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/AbsoluteLayoutRuleTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/AbsoluteLayoutRuleTest.java @@ -60,8 +60,8 @@ public class AbsoluteLayoutRuleTest extends LayoutTestBase { // Drop preview "useStyle(DROP_PREVIEW), drawRect(Rect[30,-10,105,80])"); - assertEquals("30dip", inserted.getStringAttr(ANDROID_URI, "layout_x")); - assertEquals("-10dip", inserted.getStringAttr(ANDROID_URI, "layout_y")); + assertEquals("30dp", inserted.getStringAttr(ANDROID_URI, "layout_x")); + assertEquals("-10dp", inserted.getStringAttr(ANDROID_URI, "layout_y")); // Without drag bounds we should just draw guide lines instead inserted = dragInto(new Rect(0, 0, 0, 0), new Point(30, -10), 4, -1, @@ -70,8 +70,8 @@ public class AbsoluteLayoutRuleTest extends LayoutTestBase { "useStyle(GUIDELINE), drawLine(30,0,30,480), drawLine(0,-10,240,-10)", // Drop preview "useStyle(DROP_PREVIEW), drawLine(30,-10,240,-10), drawLine(30,-10,30,480)"); - assertEquals("30dip", inserted.getStringAttr(ANDROID_URI, "layout_x")); - assertEquals("-10dip", inserted.getStringAttr(ANDROID_URI, "layout_y")); + assertEquals("30dp", inserted.getStringAttr(ANDROID_URI, "layout_x")); + assertEquals("-10dp", inserted.getStringAttr(ANDROID_URI, "layout_y")); } } diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/LayoutTestBase.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/LayoutTestBase.java index 5b79ac3..18d985e 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/LayoutTestBase.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/LayoutTestBase.java @@ -39,7 +39,7 @@ import junit.framework.TestCase; /** * Common layout helpers from LayoutRule tests */ -public abstract class LayoutTestBase extends TestCase { +public class LayoutTestBase extends TestCase { /** * Helper function used by tests to drag a button into a canvas containing * the given children. @@ -244,6 +244,15 @@ public abstract class LayoutTestBase extends TestCase { fail("Not supported in tests yet"); return null; } + + public String displayIncludeSourceInput() { + fail("Not supported in tests yet"); + return null; + } + + public void select(Collection<INode> nodes) { + fail("Not supported in tests yet"); + } } public void testDummy() { diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/TestNode.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/TestNode.java index 14430a5..d5f1ae9 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/TestNode.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/common/layout/TestNode.java @@ -154,6 +154,13 @@ public class TestNode implements INode { return child; } + public void removeChild(INode node) { + int index = mChildren.indexOf(node); + if (index != -1) { + removeChild(index); + } + } + public boolean setAttribute(String uri, String localName, String value) { mAttributes.put(uri + localName, new TestAttribute(uri, localName, value)); return true; @@ -164,4 +171,5 @@ public class TestNode implements INode { return "TestNode [fqn=" + mFqcn + ", infos=" + mAttributeInfos + ", attributes=" + mAttributes + ", bounds=" + mBounds + "]"; } + }
\ No newline at end of file diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtilsTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtilsTest.java index 5ccb494..580fbaa 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtilsTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtilsTest.java @@ -65,6 +65,7 @@ public class DescriptorsUtilsTest extends TestCase { assertEquals("Capital", DescriptorsUtils.capitalize("Capital")); assertEquals("CamelCase", DescriptorsUtils.capitalize("camelCase")); assertEquals("", DescriptorsUtils.capitalize("")); + assertSame("Foo", DescriptorsUtils.capitalize("Foo")); } public void testFormatTooltip() { @@ -240,15 +241,9 @@ public class DescriptorsUtilsTest extends TestCase { } } - public void testToXmlAttributeValue() throws Exception { - assertEquals("", DescriptorsUtils.toXmlAttributeValue("")); - assertEquals("foo", DescriptorsUtils.toXmlAttributeValue("foo")); - assertEquals("foo<bar", DescriptorsUtils.toXmlAttributeValue("foo<bar")); - - assertEquals(""", DescriptorsUtils.toXmlAttributeValue("\"")); - assertEquals("'", DescriptorsUtils.toXmlAttributeValue("'")); - assertEquals("foo"b''ar", - DescriptorsUtils.toXmlAttributeValue("foo\"b''ar")); + public void testGetBasename() { + assertEquals("Foo", DescriptorsUtils.getBasename("Foo")); + assertEquals("Foo", DescriptorsUtils.getBasename("foo.Foo")); + assertEquals("String", DescriptorsUtils.getBasename("java.util.String")); } - } diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasViewInfoTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasViewInfoTest.java index a240f90..2df472e 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasViewInfoTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/CanvasViewInfoTest.java @@ -17,6 +17,7 @@ package com.android.ide.eclipse.adt.internal.editors.layout.gle2; import com.android.ide.common.rendering.api.Capability; +import com.android.ide.common.rendering.api.DataBindingItem; import com.android.ide.common.rendering.api.MergeCookie; import com.android.ide.common.rendering.api.ViewInfo; import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor; @@ -40,7 +41,7 @@ import junit.framework.TestCase; public class CanvasViewInfoTest extends TestCase { - private static ViewElementDescriptor createDesc(String name, String fqn, boolean hasChildren) { + public static ViewElementDescriptor createDesc(String name, String fqn, boolean hasChildren) { if (hasChildren) { return new ViewElementDescriptor(name, name, fqn, "", "", new AttributeDescriptor[0], new AttributeDescriptor[0], new ElementDescriptor[1], false); @@ -49,7 +50,7 @@ public class CanvasViewInfoTest extends TestCase { } } - private static UiViewElementNode createNode(UiViewElementNode parent, String fqn, + public static UiViewElementNode createNode(UiViewElementNode parent, String fqn, boolean hasChildren) { String name = fqn.substring(fqn.lastIndexOf('.') + 1); ViewElementDescriptor descriptor = createDesc(name, fqn, hasChildren); @@ -60,11 +61,20 @@ public class CanvasViewInfoTest extends TestCase { return (UiViewElementNode) parent.appendNewUiChild(descriptor); } - private static UiViewElementNode createNode(String fqn, boolean hasChildren) { + public static UiViewElementNode createNode(String fqn, boolean hasChildren) { return createNode(null, fqn, hasChildren); } public void testNormalCreate() throws Exception { + normal(true); + } + + public void testNormalCreateLayoutLib5() throws Exception { + normal(false); + } + + private void normal(boolean layoutlib5) { + // Normal view hierarchy, no null keys anywhere UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); @@ -75,7 +85,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child2 = new ViewInfo("Button", child2Node, 0, 20, 70, 25); root.setChildren(Arrays.asList(child1, child2)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -100,6 +110,15 @@ public class CanvasViewInfoTest extends TestCase { } public void testShowIn() throws Exception { + showIn(false); + } + + public void testShowInLayoutLib5() throws Exception { + showIn(true); + } + + public void showIn(boolean layoutlib5) throws Exception { + // Test rendering of "Show Included In" (included content rendered // within an outer content that has null keys) @@ -112,7 +131,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child21 = new ViewInfo("RadioButton", child21Node, 0, 20, 70, 25); child2.setChildren(Arrays.asList(child21)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -137,6 +156,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testIncludeTag() throws Exception { + boolean layoutlib5 = true; + // Test rendering of included views on layoutlib 5+ (e.g. has <include> tag) UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); @@ -149,7 +170,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child21 = new ViewInfo("RadioButton", null, 0, 20, 70, 25); child2.setChildren(Arrays.asList(child21)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -176,9 +197,10 @@ public class CanvasViewInfoTest extends TestCase { } public void testNoIncludeTag() throws Exception { + boolean layoutlib5 = false; + // Test rendering of included views on layoutlib 4- (e.g. no <include> tag cookie - // in - // view info) + // in view info) UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("LinearLayout", rootNode, 10, 10, 100, 100); @@ -190,7 +212,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child21 = new ViewInfo("RadioButton", null, 0, 20, 70, 25); child2.setChildren(Arrays.asList(child21)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -217,6 +239,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testMergeMatching() throws Exception { + boolean layoutlib5 = false; + // Test rendering of MULTIPLE included views or when there is no simple match // between view info and ui element node children @@ -232,7 +256,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child21 = new ViewInfo("RadioButton", null, 0, 20, 70, 25); child2.setChildren(Arrays.asList(child21)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -272,6 +296,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testMerge() throws Exception { + boolean layoutlib5 = false; + // Test rendering of MULTIPLE included views or when there is no simple match // between view info and ui element node children @@ -286,7 +312,7 @@ public class CanvasViewInfoTest extends TestCase { ViewInfo child21 = new ViewInfo("RadioButton", null, 0, 20, 70, 25); child2.setChildren(Arrays.asList(child21)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); assertEquals(new Rectangle(10, 10, 89, 89), rootView.getAbsRect()); @@ -313,6 +339,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testInsertMerge() throws Exception { + boolean layoutlib5 = false; + // Test rendering of MULTIPLE included views or when there is no simple match // between view info and ui element node children @@ -320,7 +348,7 @@ public class CanvasViewInfoTest extends TestCase { UiViewElementNode rootNode = createNode(mergeNode, "android.widget.Button", false); ViewInfo root = new ViewInfo("Button", rootNode, 10, 10, 100, 100); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("merge", rootView.getName()); assertSame(rootView.getUiViewNode(), mergeNode); @@ -340,6 +368,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testUnmatchedMissing() throws Exception { + boolean layoutlib5 = false; + UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("LinearLayout", rootNode, 0, 0, 100, 100); List<ViewInfo> children = new ArrayList<ViewInfo>(); @@ -387,7 +417,7 @@ public class CanvasViewInfoTest extends TestCase { } root.setChildren(children); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); // dump(root, 0); @@ -412,6 +442,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testMergeCookies() throws Exception { + boolean layoutlib5 = true; + UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("LinearLayout", rootNode, 0, 0, 100, 100); @@ -431,7 +463,7 @@ public class CanvasViewInfoTest extends TestCase { } root.setChildren(children); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("LinearLayout", rootView.getName()); @@ -446,6 +478,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testMergeCookies2() throws Exception { + boolean layoutlib5 = true; + UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("LinearLayout", rootNode, 0, 0, 100, 100); @@ -460,12 +494,13 @@ public class CanvasViewInfoTest extends TestCase { ArrayList<ViewInfo> children = new ArrayList<ViewInfo>(); for (int i = 0; i < 10; i++) { Object cookie = (i % 2) == 0 ? cookie1 : cookie2; - ViewInfo childView = new ViewInfo("childView" + i, cookie, 0, i * 20, 50, (i + 1) * 20); + ViewInfo childView = new ViewInfo("childView" + i, cookie, 0, i * 20, 50, + (i + 1) * 20); children.add(childView); } root.setChildren(children); - Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root); + Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root, layoutlib5); CanvasViewInfo rootView = result.getFirst(); List<Rectangle> bounds = result.getSecond(); assertNull(bounds); @@ -495,6 +530,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testIncludeBounds() throws Exception { + boolean layoutlib5 = true; + UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("included", null, 0, 0, 100, 100); @@ -509,12 +546,13 @@ public class CanvasViewInfoTest extends TestCase { ArrayList<ViewInfo> children = new ArrayList<ViewInfo>(); for (int i = 0; i < 10; i++) { Object cookie = (i % 2) == 0 ? cookie1 : cookie2; - ViewInfo childView = new ViewInfo("childView" + i, cookie, 0, i * 20, 50, (i + 1) * 20); + ViewInfo childView = new ViewInfo("childView" + i, cookie, 0, i * 20, 50, + (i + 1) * 20); children.add(childView); } root.setChildren(children); - Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root); + Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root, layoutlib5); CanvasViewInfo rootView = result.getFirst(); List<Rectangle> bounds = result.getSecond(); assertNotNull(rootView); @@ -548,21 +586,27 @@ public class CanvasViewInfoTest extends TestCase { } public void testIncludeBounds2() throws Exception { + includeBounds2(false); + } + + public void testIncludeBounds2LayoutLib5() throws Exception { + includeBounds2(true); + } + + public void includeBounds2(boolean layoutlib5) throws Exception { + UiViewElementNode rootNode = createNode("android.widget.LinearLayout", true); ViewInfo root = new ViewInfo("included", null, 0, 0, 100, 100); UiViewElementNode node1 = createNode(rootNode, "childNode1", false); UiViewElementNode node2 = createNode(rootNode, "childNode2", false); - // Sets alternating merge cookies and checks whether the node sibling lists are - // okay and merged correctly - ViewInfo childView1 = new ViewInfo("childView1", node1, 0, 20, 50, 40); ViewInfo childView2 = new ViewInfo("childView2", node2, 0, 40, 50, 60); root.setChildren(Arrays.asList(childView1, childView2)); - Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root); + Pair<CanvasViewInfo, List<Rectangle>> result = CanvasViewInfo.create(root, layoutlib5); CanvasViewInfo rootView = result.getFirst(); List<Rectangle> bounds = result.getSecond(); assertNotNull(rootView); @@ -580,6 +624,8 @@ public class CanvasViewInfoTest extends TestCase { } public void testGestureOverlayView() throws Exception { + boolean layoutlib5 = true; + // Test rendering of included views on layoutlib 5+ (e.g. has <include> tag) UiViewElementNode rootNode = createNode("android.gesture.GestureOverlayView", true); @@ -590,7 +636,7 @@ public class CanvasViewInfoTest extends TestCase { root.setChildren(Collections.singletonList(child)); ViewInfo grandChild = new ViewInfo("Button", grandChildNode, 0, 20, 70, 25); child.setChildren(Collections.singletonList(grandChild)); - CanvasViewInfo rootView = CanvasViewInfo.create(root).getFirst(); + CanvasViewInfo rootView = CanvasViewInfo.create(root, layoutlib5).getFirst(); assertNotNull(rootView); assertEquals("GestureOverlayView", rootView.getName()); @@ -611,6 +657,46 @@ public class CanvasViewInfoTest extends TestCase { assertFalse(grandChildView.isRoot()); } + public void testListView() throws Exception { + // For ListViews we get AdapterItemReferences as cookies. Ensure that this + // works properly. + // + // android.widget.FrameLayout [0,50,320,480] <FrameLayout> + // android.widget.ListView [0,0,320,430] <ListView> + // android.widget.LinearLayout [0,0,320,17] SessionParams$AdapterItemReference + // android.widget.TextView [0,0,73,17] + // android.widget.LinearLayout [0,18,320,35] SessionParams$AdapterItemReference + // android.widget.TextView [0,0,73,17] + // android.widget.LinearLayout [0,36,320,53] SessionParams$AdapterItemReference + // android.widget.TextView [0,0,73,17] + // ... + + UiViewElementNode rootNode = createNode("FrameLayout", true); + UiViewElementNode childNode = createNode(rootNode, "ListView", false); + /*UiViewElementNode grandChildNode =*/ createNode(childNode, "LinearLayout", false); + /*UiViewElementNode greatGrandChildNode =*/ createNode(childNode, "TextView", false); + DataBindingItem dataBindingItem = new DataBindingItem("foo"); + + ViewInfo root = new ViewInfo("FrameLayout", rootNode, 0, 50, 320, 480); + ViewInfo child = new ViewInfo("ListView", childNode, 0, 0, 320, 430); + root.setChildren(Collections.singletonList(child)); + ViewInfo grandChild = new ViewInfo("LinearLayout", dataBindingItem, 0, 0, 320, 17); + child.setChildren(Collections.singletonList(grandChild)); + ViewInfo greatGrandChild = new ViewInfo("Button", null, 0, 0, 73, 17); + grandChild.setChildren(Collections.singletonList(greatGrandChild)); + CanvasViewInfo rootView = CanvasViewInfo.create(root, true /*layoutlib5*/).getFirst(); + assertNotNull(rootView); + + assertEquals("FrameLayout", rootView.getName()); + assertEquals(1, rootView.getChildren().size()); + assertSame(rootNode, rootView.getUiViewNode()); + + CanvasViewInfo childView = rootView.getChildren().get(0); + assertEquals("ListView", childView.getName()); + assertEquals(0, childView.getChildren().size()); + assertSame(childNode, childView.getUiViewNode()); + } + /** * Dumps out the given {@link ViewInfo} hierarchy to standard out. * Useful during development. diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilitiesTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilitiesTest.java new file mode 100644 index 0000000..049e1cc --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilitiesTest.java @@ -0,0 +1,119 @@ +/* + * 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.gle2; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.Arrays; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.TestCase; + +public class DomUtilitiesTest extends TestCase { + + public void testToXmlAttributeValue() throws Exception { + assertEquals("", DomUtilities.toXmlAttributeValue("")); + assertEquals("foo", DomUtilities.toXmlAttributeValue("foo")); + assertEquals("foo<bar", DomUtilities.toXmlAttributeValue("foo<bar")); + + assertEquals(""", DomUtilities.toXmlAttributeValue("\"")); + assertEquals("'", DomUtilities.toXmlAttributeValue("'")); + assertEquals("foo"b''ar", + DomUtilities.toXmlAttributeValue("foo\"b''ar")); + } + + public void testIsEquivalent() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + factory.setValidating(false); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document1 = builder.newDocument(); + Document document2 = builder.newDocument(); + document1.appendChild(document1.createElement("root")); + document2.appendChild(document2.createElement("root")); + + assertFalse(DomUtilities.isEquivalent(null, null)); + Element root1 = document1.getDocumentElement(); + assertFalse(DomUtilities.isEquivalent(null, root1)); + Element root2 = document2.getDocumentElement(); + assertFalse(DomUtilities.isEquivalent(root2, null)); + assertTrue(DomUtilities.isEquivalent(root1, root2)); + + root1.appendChild(document1.createTextNode(" ")); + // Differences in text are NOT significant! + assertTrue(DomUtilities.isEquivalent(root1, root2)); + root2.appendChild(document2.createTextNode(" ")); + assertTrue(DomUtilities.isEquivalent(root1, root2)); + + Element foo1 = document1.createElement("foo"); + Element foo2 = document2.createElement("foo"); + root1.appendChild(foo1); + assertFalse(DomUtilities.isEquivalent(root1, root2)); + root2.appendChild(foo2); + assertTrue(DomUtilities.isEquivalent(root1, root2)); + + root1.appendChild(document1.createElement("bar")); + assertFalse(DomUtilities.isEquivalent(root1, root2)); + root2.appendChild(document2.createElement("bar")); + assertTrue(DomUtilities.isEquivalent(root1, root2)); + + // Add attributes in opposite order + foo1.setAttribute("attribute1", "value1"); + foo1.setAttribute("attribute2", "value2"); + assertFalse(DomUtilities.isEquivalent(root1, root2)); + foo2.setAttribute("attribute2", "value2"); + foo2.setAttribute("attribute1", "valueWrong"); + assertFalse(DomUtilities.isEquivalent(root1, root2)); + foo2.setAttribute("attribute1", "value1"); + assertTrue(DomUtilities.isEquivalent(root1, root2)); + + // TODO - test different tag names + // TODO - test different name spaces! + } + + public void testIsContiguous() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + factory.setValidating(false); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + document.appendChild(document.createElement("root")); + Element root = document.getDocumentElement(); + root.appendChild(document.createTextNode(" ")); + Element foo = document.createElement("foo"); + root.appendChild(foo); + root.appendChild(document.createTextNode(" ")); + Element bar = document.createElement("bar"); + root.appendChild(bar); + Element baz = document.createElement("baz"); + root.appendChild(baz); + + assertTrue(DomUtilities.isContiguous(Arrays.asList(foo))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(foo, bar))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(foo, bar, baz))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(foo, bar, baz))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(bar, baz, foo))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(baz, bar, foo))); + assertTrue(DomUtilities.isContiguous(Arrays.asList(baz, foo, bar))); + + assertFalse(DomUtilities.isContiguous(Arrays.asList(foo, baz))); + assertFalse(DomUtilities.isContiguous(Arrays.asList(root, baz))); + } + +} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/PointTestCases.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/PointTestCases.java index 5e86d69..91d0e13 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/PointTestCases.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/PointTestCases.java @@ -29,7 +29,7 @@ import junit.framework.TestCase; * Common utilities for the point tests {@link LayoutPointTest} and * {@link ControlPointTest} */ -public abstract class PointTestCases extends TestCase { +public class PointTestCases extends TestCase { LayoutCanvas mCanvas = new TestLayoutCanvas(); protected MouseEvent canvasMouseEvent(int x, int y, int stateMask) { diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManagerTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManagerTest.java new file mode 100644 index 0000000..b29f9f3 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManagerTest.java @@ -0,0 +1,120 @@ +/* + * 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.gle2; + +import com.android.ide.common.rendering.api.ViewInfo; +import com.android.ide.eclipse.adt.internal.editors.layout.uimodel.UiViewElementNode; + +import org.eclipse.swt.widgets.Shell; + +import java.util.Arrays; + +import junit.framework.TestCase; + +public class SelectionManagerTest extends TestCase { + private SelectionManager createManager() { + LayoutCanvas canvas = new LayoutCanvas(null, null, new Shell(), 0); + return new SelectionManager(canvas); + } + + public void testEmpty() { + SelectionManager manager = createManager(); + + assertNotNull(manager.getSelections()); + assertEquals(0, manager.getSelections().size()); + assertFalse(manager.hasMultiSelection()); + assertTrue(manager.isEmpty()); + } + + public void testBasic() { + SelectionManager manager = createManager(); + assertTrue(manager.isEmpty()); + + UiViewElementNode rootNode = CanvasViewInfoTest.createNode("android.widget.LinearLayout", + true); + ViewInfo root = new ViewInfo("LinearLayout", rootNode, 10, 10, 100, 100); + UiViewElementNode child1Node = CanvasViewInfoTest.createNode(rootNode, + "android.widget.Button", false); + ViewInfo child1 = new ViewInfo("Button1", child1Node, 0, 0, 50, 20); + UiViewElementNode child2Node = CanvasViewInfoTest.createNode(rootNode, + "android.widget.Button", false); + ViewInfo child2 = new ViewInfo("Button2", child2Node, 0, 20, 70, 25); + root.setChildren(Arrays.asList(child1, child2)); + CanvasViewInfo rootView = CanvasViewInfo.create(root, true /* layoutlib5 */).getFirst(); + assertNotNull(rootView); + + manager.selectMultiple(Arrays.asList(rootView, rootView.getChildren().get(0), rootView + .getChildren().get(1))); + assertEquals(3, manager.getSelections().size()); + assertFalse(manager.isEmpty()); + assertTrue(manager.hasMultiSelection()); + + // Expect read-only result; ensure that's the case + try { + manager.getSelections().remove(0); + fail("Result should be read only collection"); + } catch (Exception e) { + ; //ok, what we expected + } + + manager.selectNone(); + assertEquals(0, manager.getSelections().size()); + assertTrue(manager.isEmpty()); + + manager.selectSingle(rootView); + assertEquals(1, manager.getSelections().size()); + assertFalse(manager.isEmpty()); + assertSame(rootView, manager.getSelections().get(0).getViewInfo()); + + manager.selectMultiple(Arrays.asList(rootView, rootView.getChildren().get(0), rootView + .getChildren().get(1))); + assertEquals(3, manager.getSelections().size()); + + manager.deselect(rootView.getChildren().get(0)); + assertEquals(2, manager.getSelections().size()); + manager.deselect(rootView); + assertEquals(1, manager.getSelections().size()); + assertSame(rootView.getChildren().get(1), manager.getSelections().get(0).getViewInfo()); + } + + public void testSelectParent() { + SelectionManager manager = createManager(); + assertTrue(manager.isEmpty()); + + UiViewElementNode rootNode = CanvasViewInfoTest.createNode("android.widget.LinearLayout", + true); + ViewInfo root = new ViewInfo("LinearLayout", rootNode, 10, 10, 100, 100); + UiViewElementNode child1Node = CanvasViewInfoTest.createNode(rootNode, + "android.widget.Button", false); + ViewInfo child1 = new ViewInfo("Button1", child1Node, 0, 0, 50, 20); + UiViewElementNode child2Node = CanvasViewInfoTest.createNode(rootNode, + "android.widget.Button", false); + ViewInfo child2 = new ViewInfo("Button2", child2Node, 0, 20, 70, 25); + root.setChildren(Arrays.asList(child1, child2)); + CanvasViewInfo rootView = CanvasViewInfo.create(root, true /* layoutlib5 */).getFirst(); + assertNotNull(rootView); + + manager.selectMultiple(Arrays.asList(rootView.getChildren().get(0))); + assertEquals(1, manager.getSelections().size()); + assertFalse(manager.isEmpty()); + assertSame(rootView.getChildren().get(0), manager.getSelections().get(0).getViewInfo()); + + manager.selectParent(); + assertEquals(1, manager.getSelections().size()); + assertFalse(manager.isEmpty()); + assertSame(rootView, manager.getSelections().get(0).getViewInfo()); + } +} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SwtUtilsTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SwtUtilsTest.java index 5561e52..de7999c 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SwtUtilsTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SwtUtilsTest.java @@ -240,18 +240,27 @@ public class SwtUtilsTest extends TestCase { scale, alpha); assertNotNull(result); - ImageData data = result.getImageData(); - byte[] alphaData = data.alphaData; - assertNotNull(alphaData); - assertEquals(20, data.width); - assertEquals(20, data.height); + ImageData outData = result.getImageData(); + assertEquals(20, outData.width); + assertEquals(20, outData.height); + + PaletteData outPalette = outData.palette; + assertNotNull(outPalette); + + byte[] outAlphaData = outData.alphaData; + assertNotNull(outAlphaData); + for (int y = 0; y < 20; y++) { for (int x = 0; x < 20; x++) { int r = y + 60; int g = x + 30; - int expected = r << 16 | g << 8; - assertEquals(expected, data.getPixel(x, y)); - assertEquals(alpha, alphaData[y*20+x]); + + RGB expected = new RGB(r, g, 0); + RGB actual = outPalette.getRGB(outData.getPixel(x, y)); + assertEquals(expected, actual); + + byte actualAlpha = outAlphaData[y*20+x]; + assertEquals(alpha, actualAlpha); } } } @@ -270,30 +279,41 @@ public class SwtUtilsTest extends TestCase { scale, alpha); assertNotNull(result); - ImageData data = result.getImageData(); - byte[] alphaData = data.alphaData; - assertNotNull(alphaData); - assertEquals(120, data.width); - assertEquals(90, data.height); + ImageData outData = result.getImageData(); + assertEquals(120, outData.width); + assertEquals(90, outData.height); + + PaletteData outPalette = outData.palette; + assertNotNull(outPalette); + + byte[] outAlphaData = outData.alphaData; + assertNotNull(outAlphaData); + for (int y = 0; y < 20; y++) { for (int x = 0; x < 20; x++) { int r = y + 10; int g = x + 10; - int expected = r << 16 | g << 8; - assertEquals(expected, data.getPixel(x, y)); - assertEquals(alpha, alphaData[y*120+x]); + + RGB expected = new RGB(r, g, 0); + RGB actual = outPalette.getRGB(outData.getPixel(x, y)); + assertEquals(expected, actual); + + assertEquals(alpha, outAlphaData[y*120+x]); } } for (int y = 70; y < 90; y++) { for (int x = 100; x < 120; x++) { int r = y + 10; int g = x + 10; - int expected = r << 16 | g << 8; - assertEquals(expected, data.getPixel(x, y)); - assertEquals(alpha, alphaData[y*120+x]); + + RGB expected = new RGB(r, g, 0); + RGB actual = outPalette.getRGB(outData.getPixel(x, y)); + assertEquals(expected, actual); + + assertEquals(alpha, outAlphaData[y*120+x]); } } - assertEquals(0, alphaData[40]); + assertEquals(0, outAlphaData[40]); } /** diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/NodeFactoryTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/NodeFactoryTest.java index 277089f..9f670cc 100755 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/NodeFactoryTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/NodeFactoryTest.java @@ -48,7 +48,7 @@ public class NodeFactoryTest extends TestCase { ViewElementDescriptor ved = new ViewElementDescriptor("xml", "com.example.MyJavaClass"); UiViewElementNode uiv = new UiViewElementNode(ved); ViewInfo lvi = new ViewInfo("name", uiv, 10, 12, 110, 120); - CanvasViewInfo cvi = CanvasViewInfo.create(lvi).getFirst(); + CanvasViewInfo cvi = CanvasViewInfo.create(lvi, true /* layoutlib5 */).getFirst(); // Create a NodeProxy. NodeProxy proxy = m.create(cvi); @@ -95,7 +95,7 @@ public class NodeFactoryTest extends TestCase { ViewElementDescriptor ved = new ViewElementDescriptor("xml", "com.example.MyJavaClass"); UiViewElementNode uiv = new UiViewElementNode(ved); ViewInfo lvi = new ViewInfo("name", uiv, 10, 12, 110, 120); - CanvasViewInfo cvi = CanvasViewInfo.create(lvi).getFirst(); + CanvasViewInfo cvi = CanvasViewInfo.create(lvi, true /* layoutlib5 */).getFirst(); // NodeProxies are cached. Creating the same one twice returns the same proxy. NodeProxy proxy1 = m.create(cvi); @@ -107,7 +107,7 @@ public class NodeFactoryTest extends TestCase { ViewElementDescriptor ved = new ViewElementDescriptor("xml", "com.example.MyJavaClass"); UiViewElementNode uiv = new UiViewElementNode(ved); ViewInfo lvi = new ViewInfo("name", uiv, 10, 12, 110, 120); - CanvasViewInfo cvi = CanvasViewInfo.create(lvi).getFirst(); + CanvasViewInfo cvi = CanvasViewInfo.create(lvi, true /* layoutlib5 */).getFirst(); // NodeProxies are cached. Creating the same one twice returns the same proxy. NodeProxy proxy1 = m.create(cvi); diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepositoryTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepositoryTest.java index d18967d..5921e85 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepositoryTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepositoryTest.java @@ -16,6 +16,7 @@ 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 junit.framework.TestCase; @@ -32,4 +33,31 @@ public class ViewMetadataRepositoryTest extends TestCase { 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")); + } } diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiElementNodeTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiElementNodeTest.java index 30f709c..ccf4e83 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiElementNodeTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiElementNodeTest.java @@ -16,15 +16,24 @@ package com.android.ide.eclipse.adt.internal.editors.manifest.model; +import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI; + import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor; +import com.android.ide.eclipse.adt.internal.editors.descriptors.XmlnsAttributeDescriptor; import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor.Mandatory; import com.android.ide.eclipse.adt.internal.editors.mock.MockXmlNode; import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; import org.w3c.dom.Node; import java.util.Iterator; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + import junit.framework.TestCase; public class UiElementNodeTest extends TestCase { @@ -252,4 +261,30 @@ public class UiElementNodeTest extends TestCase { } + public void testlookupNamespacePrefix() throws Exception { + // Setup + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + factory.setValidating(false); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element rootElement = document.createElement("root"); + Attr attr = document.createAttributeNS(XmlnsAttributeDescriptor.XMLNS_URI, + "xmlns:customPrefix"); + attr.setValue(ANDROID_URI); + rootElement.getAttributes().setNamedItemNS(attr); + document.appendChild(rootElement); + Element root = document.getDocumentElement(); + root.appendChild(document.createTextNode(" ")); + Element foo = document.createElement("foo"); + root.appendChild(foo); + root.appendChild(document.createTextNode(" ")); + Element bar = document.createElement("bar"); + root.appendChild(bar); + Element baz = document.createElement("baz"); + root.appendChild(baz); + + String prefix = UiElementNode.lookupNamespacePrefix(baz, ANDROID_URI); + assertEquals("customPrefix", prefix); + } } diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/CountryCodeQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/CountryCodeQualifierTest.java deleted file mode 100644 index e0fe013..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/CountryCodeQualifierTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2008 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.CountryCodeQualifier; -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; - -import junit.framework.TestCase; - -public class CountryCodeQualifierTest extends TestCase { - - private CountryCodeQualifier mccq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - mccq = new CountryCodeQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - mccq = null; - config = null; - } - - public void testCheckAndSet() { - assertEquals(true, mccq.checkAndSet("mcc123", config));//$NON-NLS-1$ - assertTrue(config.getCountryCodeQualifier() != null); - assertEquals(123, config.getCountryCodeQualifier().getCode()); - assertEquals("mcc123", config.getCountryCodeQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, mccq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, mccq.checkAndSet("mcc", config));//$NON-NLS-1$ - assertEquals(false, mccq.checkAndSet("MCC123", config));//$NON-NLS-1$ - assertEquals(false, mccq.checkAndSet("123", config));//$NON-NLS-1$ - assertEquals(false, mccq.checkAndSet("mccsdf", config));//$NON-NLS-1$ - } - -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/DockModeQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/DockModeQualifierTest.java deleted file mode 100644 index de05f7e..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/DockModeQualifierTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2010 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.DockModeQualifier; -import com.android.resources.DockMode; - -import junit.framework.TestCase; - -public class DockModeQualifierTest extends TestCase { - - private DockModeQualifier mCarQualifier; - private DockModeQualifier mDeskQualifier; - private DockModeQualifier mNoneQualifier; - - @Override - protected void setUp() throws Exception { - super.setUp(); - mCarQualifier = new DockModeQualifier(DockMode.CAR); - mDeskQualifier = new DockModeQualifier(DockMode.DESK); - mNoneQualifier = new DockModeQualifier(DockMode.NONE); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - mCarQualifier = null; - mDeskQualifier = null; - mNoneQualifier = null; - } - - public void testIsBetterMatchThan() { - assertTrue(mNoneQualifier.isBetterMatchThan(mCarQualifier, mDeskQualifier)); - assertFalse(mNoneQualifier.isBetterMatchThan(mDeskQualifier, mDeskQualifier)); - assertTrue(mNoneQualifier.isBetterMatchThan(mDeskQualifier, mCarQualifier)); - assertFalse(mNoneQualifier.isBetterMatchThan(mCarQualifier, mCarQualifier)); - - assertTrue(mDeskQualifier.isBetterMatchThan(mCarQualifier, mDeskQualifier)); - assertFalse(mDeskQualifier.isBetterMatchThan(mCarQualifier, mCarQualifier)); - - assertTrue(mCarQualifier.isBetterMatchThan(mDeskQualifier, mCarQualifier)); - assertFalse(mCarQualifier.isBetterMatchThan(mDeskQualifier, mDeskQualifier)); - } - - public void testIsMatchFor() { - assertTrue(mNoneQualifier.isMatchFor(mCarQualifier)); - assertTrue(mNoneQualifier.isMatchFor(mDeskQualifier)); - assertTrue(mCarQualifier.isMatchFor(mCarQualifier)); - assertTrue(mDeskQualifier.isMatchFor(mDeskQualifier)); - - assertFalse(mCarQualifier.isMatchFor(mNoneQualifier)); - assertFalse(mCarQualifier.isMatchFor(mDeskQualifier)); - assertFalse(mDeskQualifier.isMatchFor(mCarQualifier)); - assertFalse(mDeskQualifier.isMatchFor(mNoneQualifier)); - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java deleted file mode 100644 index b97d1f8..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2008 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier; -import com.android.resources.KeyboardState; - -import junit.framework.TestCase; - -public class KeyboardStateQualifierTest extends TestCase { - - private KeyboardStateQualifier ksq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - ksq = new KeyboardStateQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - ksq = null; - config = null; - } - - public void testExposed() { - assertEquals(true, ksq.checkAndSet("keysexposed", config)); //$NON-NLS-1$ - assertTrue(config.getKeyboardStateQualifier() != null); - assertEquals(KeyboardState.EXPOSED, config.getKeyboardStateQualifier().getValue()); - assertEquals("keysexposed", config.getKeyboardStateQualifier().toString()); //$NON-NLS-1$ - } - - public void testHidden() { - assertEquals(true, ksq.checkAndSet("keyshidden", config)); //$NON-NLS-1$ - assertTrue(config.getKeyboardStateQualifier() != null); - assertEquals(KeyboardState.HIDDEN, config.getKeyboardStateQualifier().getValue()); - assertEquals("keyshidden", config.getKeyboardStateQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, ksq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, ksq.checkAndSet("KEYSEXPOSED", config));//$NON-NLS-1$ - assertEquals(false, ksq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/LanguageQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/LanguageQualifierTest.java deleted file mode 100644 index e4a9312..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/LanguageQualifierTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.LanguageQualifier; - -import junit.framework.TestCase; - -public class LanguageQualifierTest extends TestCase { - - private FolderConfiguration config; - private LanguageQualifier lq; - - @Override - public void setUp() throws Exception { - super.setUp(); - config = new FolderConfiguration(); - lq = new LanguageQualifier(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - config = null; - lq = null; - } - - public void testCheckAndSet() { - assertEquals(true, lq.checkAndSet("en", config)); //$NON-NLS-1$ - assertTrue(config.getLanguageQualifier() != null); - assertEquals("en", config.getLanguageQualifier().toString()); //$NON-NLS-1$ - - } - - public void testFailures() { - assertEquals(false, lq.checkAndSet("", config)); //$NON-NLS-1$ - assertEquals(false, lq.checkAndSet("EN", config)); //$NON-NLS-1$ - assertEquals(false, lq.checkAndSet("abc", config)); //$NON-NLS-1$ - } -} - diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java deleted file mode 100644 index ebc34ad..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier; -import com.android.resources.Navigation; - -import junit.framework.TestCase; - -public class NavigationMethodQualifierTest extends TestCase { - - private FolderConfiguration config; - private NavigationMethodQualifier nmq; - - @Override - public void setUp() throws Exception { - super.setUp(); - config = new FolderConfiguration(); - nmq = new NavigationMethodQualifier(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - config = null; - nmq = null; - } - - public void testDPad() { - assertEquals(true, nmq.checkAndSet("dpad", config)); //$NON-NLS-1$ - assertTrue(config.getNavigationMethodQualifier() != null); - assertEquals(Navigation.DPAD, config.getNavigationMethodQualifier().getValue()); - assertEquals("dpad", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void testTrackball() { - assertEquals(true, nmq.checkAndSet("trackball", config)); //$NON-NLS-1$ - assertTrue(config.getNavigationMethodQualifier() != null); - assertEquals(Navigation.TRACKBALL, config.getNavigationMethodQualifier().getValue()); - assertEquals("trackball", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void testWheel() { - assertEquals(true, nmq.checkAndSet("wheel", config)); //$NON-NLS-1$ - assertTrue(config.getNavigationMethodQualifier() != null); - assertEquals(Navigation.WHEEL, config.getNavigationMethodQualifier().getValue()); - assertEquals("wheel", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, nmq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, nmq.checkAndSet("WHEEL", config));//$NON-NLS-1$ - assertEquals(false, nmq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NetworkCodeQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NetworkCodeQualifierTest.java deleted file mode 100644 index 7512305..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NetworkCodeQualifierTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2008 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.NetworkCodeQualifier; - -import junit.framework.TestCase; - -public class NetworkCodeQualifierTest extends TestCase { - - private NetworkCodeQualifier mncq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - mncq = new NetworkCodeQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - mncq = null; - config = null; - } - - public void testCheckAndSet() { - assertEquals(true, mncq.checkAndSet("mnc123", config));//$NON-NLS-1$ - assertTrue(config.getNetworkCodeQualifier() != null); - assertEquals(123, config.getNetworkCodeQualifier().getCode()); - assertEquals("mnc123", config.getNetworkCodeQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, mncq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, mncq.checkAndSet("mnc", config));//$NON-NLS-1$ - assertEquals(false, mncq.checkAndSet("MNC123", config));//$NON-NLS-1$ - assertEquals(false, mncq.checkAndSet("123", config));//$NON-NLS-1$ - assertEquals(false, mncq.checkAndSet("mncsdf", config));//$NON-NLS-1$ - } - -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java deleted file mode 100644 index 747e6d7..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier; -import com.android.resources.Density; - -import junit.framework.TestCase; - -public class PixelDensityQualifierTest extends TestCase { - - private PixelDensityQualifier pdq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - pdq = new PixelDensityQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - pdq = null; - config = null; - } - - public void testCheckAndSet() { - assertEquals(true, pdq.checkAndSet("ldpi", config));//$NON-NLS-1$ - assertTrue(config.getPixelDensityQualifier() != null); - assertEquals(Density.LOW, config.getPixelDensityQualifier().getValue()); - assertEquals("ldpi", config.getPixelDensityQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, pdq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, pdq.checkAndSet("dpi", config));//$NON-NLS-1$ - assertEquals(false, pdq.checkAndSet("123dpi", config));//$NON-NLS-1$ - assertEquals(false, pdq.checkAndSet("123", config));//$NON-NLS-1$ - assertEquals(false, pdq.checkAndSet("sdfdpi", config));//$NON-NLS-1$ - } - - public void testIsBetterMatchThan() { - PixelDensityQualifier ldpi = new PixelDensityQualifier(Density.LOW); - PixelDensityQualifier mdpi = new PixelDensityQualifier(Density.MEDIUM); - PixelDensityQualifier hdpi = new PixelDensityQualifier(Density.HIGH); - PixelDensityQualifier xhdpi = new PixelDensityQualifier(Density.XHIGH); - - // first test that each Q is a better match than all other Qs when the ref is the same Q. - assertTrue(ldpi.isBetterMatchThan(mdpi, ldpi)); - assertTrue(ldpi.isBetterMatchThan(hdpi, ldpi)); - assertTrue(ldpi.isBetterMatchThan(xhdpi, ldpi)); - - assertTrue(mdpi.isBetterMatchThan(ldpi, mdpi)); - assertTrue(mdpi.isBetterMatchThan(hdpi, mdpi)); - assertTrue(mdpi.isBetterMatchThan(xhdpi, mdpi)); - - assertTrue(hdpi.isBetterMatchThan(ldpi, hdpi)); - assertTrue(hdpi.isBetterMatchThan(mdpi, hdpi)); - assertTrue(hdpi.isBetterMatchThan(xhdpi, hdpi)); - - assertTrue(xhdpi.isBetterMatchThan(ldpi, xhdpi)); - assertTrue(xhdpi.isBetterMatchThan(mdpi, xhdpi)); - assertTrue(xhdpi.isBetterMatchThan(hdpi, xhdpi)); - - // now test that the highest dpi is always preferable if there's no exact match - - // looking for ldpi: - assertTrue(hdpi.isBetterMatchThan(mdpi, ldpi)); - assertTrue(xhdpi.isBetterMatchThan(mdpi, ldpi)); - assertTrue(xhdpi.isBetterMatchThan(hdpi, ldpi)); - // the other way around - assertFalse(mdpi.isBetterMatchThan(hdpi, ldpi)); - assertFalse(mdpi.isBetterMatchThan(xhdpi, ldpi)); - assertFalse(hdpi.isBetterMatchThan(xhdpi, ldpi)); - - // looking for mdpi - assertTrue(hdpi.isBetterMatchThan(ldpi, mdpi)); - assertTrue(xhdpi.isBetterMatchThan(ldpi, mdpi)); - assertTrue(xhdpi.isBetterMatchThan(hdpi, mdpi)); - // the other way around - assertFalse(ldpi.isBetterMatchThan(hdpi, mdpi)); - assertFalse(ldpi.isBetterMatchThan(xhdpi, mdpi)); - assertFalse(hdpi.isBetterMatchThan(xhdpi, mdpi)); - - // looking for hdpi - assertTrue(mdpi.isBetterMatchThan(ldpi, hdpi)); - assertTrue(xhdpi.isBetterMatchThan(ldpi, hdpi)); - assertTrue(xhdpi.isBetterMatchThan(mdpi, hdpi)); - // the other way around - assertFalse(ldpi.isBetterMatchThan(mdpi, hdpi)); - assertFalse(ldpi.isBetterMatchThan(xhdpi, hdpi)); - assertFalse(mdpi.isBetterMatchThan(xhdpi, hdpi)); - - // looking for xhdpi - assertTrue(mdpi.isBetterMatchThan(ldpi, xhdpi)); - assertTrue(hdpi.isBetterMatchThan(ldpi, xhdpi)); - assertTrue(hdpi.isBetterMatchThan(mdpi, xhdpi)); - // the other way around - assertFalse(ldpi.isBetterMatchThan(mdpi, xhdpi)); - assertFalse(ldpi.isBetterMatchThan(hdpi, xhdpi)); - assertFalse(mdpi.isBetterMatchThan(hdpi, xhdpi)); - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/RegionQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/RegionQualifierTest.java deleted file mode 100644 index a70a04b..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/RegionQualifierTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.RegionQualifier; - -import junit.framework.TestCase; - -public class RegionQualifierTest extends TestCase { - - private RegionQualifier rq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - - rq = new RegionQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - rq = null; - config = null; - } - - public void testCheckAndSet() { - assertEquals(true, rq.checkAndSet("rUS", config));//$NON-NLS-1$ - assertTrue(config.getRegionQualifier() != null); - assertEquals("US", config.getRegionQualifier().getValue()); //$NON-NLS-1$ - assertEquals("rUS", config.getRegionQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, rq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, rq.checkAndSet("rus", config));//$NON-NLS-1$ - assertEquals(false, rq.checkAndSet("rUSA", config));//$NON-NLS-1$ - assertEquals(false, rq.checkAndSet("abc", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenDimensionQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenDimensionQualifierTest.java deleted file mode 100644 index b25fb76..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenDimensionQualifierTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenDimensionQualifier; - -import junit.framework.TestCase; - -public class ScreenDimensionQualifierTest extends TestCase { - - private ScreenDimensionQualifier sdq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - sdq = new ScreenDimensionQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - sdq = null; - config = null; - } - - public void testCheckAndSet() { - assertEquals(true, sdq.checkAndSet("400x200", config));//$NON-NLS-1$ - assertTrue(config.getScreenDimensionQualifier() != null); - assertEquals(400, config.getScreenDimensionQualifier().getValue1()); - assertEquals(200, config.getScreenDimensionQualifier().getValue2()); - assertEquals("400x200", config.getScreenDimensionQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, sdq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("400X200", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("x200", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("ax200", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("400x", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("400xa", config));//$NON-NLS-1$ - assertEquals(false, sdq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java deleted file mode 100644 index b960c97..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier; -import com.android.resources.ScreenOrientation; - -import junit.framework.TestCase; - -public class ScreenOrientationQualifierTest extends TestCase { - - private ScreenOrientationQualifier soq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - soq = new ScreenOrientationQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - soq = null; - config = null; - } - - public void testPortrait() { - assertEquals(true, soq.checkAndSet("port", config)); //$NON-NLS-1$ - assertTrue(config.getScreenOrientationQualifier() != null); - assertEquals(ScreenOrientation.PORTRAIT, config.getScreenOrientationQualifier().getValue()); - assertEquals("port", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$ - } - - public void testLanscape() { - assertEquals(true, soq.checkAndSet("land", config)); //$NON-NLS-1$ - assertTrue(config.getScreenOrientationQualifier() != null); - assertEquals(ScreenOrientation.LANDSCAPE, - config.getScreenOrientationQualifier().getValue()); - assertEquals("land", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$ - } - - public void testSquare() { - assertEquals(true, soq.checkAndSet("square", config)); //$NON-NLS-1$ - assertTrue(config.getScreenOrientationQualifier() != null); - assertEquals(ScreenOrientation.SQUARE, - config.getScreenOrientationQualifier().getValue()); - assertEquals("square", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, soq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, soq.checkAndSet("PORT", config));//$NON-NLS-1$ - assertEquals(false, soq.checkAndSet("landscape", config));//$NON-NLS-1$ - assertEquals(false, soq.checkAndSet("portrait", config));//$NON-NLS-1$ - assertEquals(false, soq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenSizeQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenSizeQualifierTest.java deleted file mode 100644 index 26cf1f3..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenSizeQualifierTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2010 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier; -import com.android.resources.ScreenSize; - -import junit.framework.TestCase; - -public class ScreenSizeQualifierTest extends TestCase { - - private ScreenSizeQualifier ssq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - ssq = new ScreenSizeQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - ssq = null; - config = null; - } - - public void testSmall() { - assertEquals(true, ssq.checkAndSet("small", config)); //$NON-NLS-1$ - assertTrue(config.getScreenSizeQualifier() != null); - assertEquals(ScreenSize.SMALL, config.getScreenSizeQualifier().getValue()); - assertEquals("small", config.getScreenSizeQualifier().toString()); //$NON-NLS-1$ - } - - public void testNormal() { - assertEquals(true, ssq.checkAndSet("normal", config)); //$NON-NLS-1$ - assertTrue(config.getScreenSizeQualifier() != null); - assertEquals(ScreenSize.NORMAL, config.getScreenSizeQualifier().getValue()); - assertEquals("normal", config.getScreenSizeQualifier().toString()); //$NON-NLS-1$ - } - - public void testLarge() { - assertEquals(true, ssq.checkAndSet("large", config)); //$NON-NLS-1$ - assertTrue(config.getScreenSizeQualifier() != null); - assertEquals(ScreenSize.LARGE, config.getScreenSizeQualifier().getValue()); - assertEquals("large", config.getScreenSizeQualifier().toString()); //$NON-NLS-1$ - } - - public void testXLarge() { - assertEquals(true, ssq.checkAndSet("xlarge", config)); //$NON-NLS-1$ - assertTrue(config.getScreenSizeQualifier() != null); - assertEquals(ScreenSize.XLARGE, config.getScreenSizeQualifier().getValue()); - assertEquals("xlarge", config.getScreenSizeQualifier().toString()); //$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java deleted file mode 100644 index f9ba80b..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier; -import com.android.resources.Keyboard; - -import junit.framework.TestCase; - -public class TextInputMethodQualifierTest extends TestCase { - - private TextInputMethodQualifier timq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - timq = new TextInputMethodQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - timq = null; - config = null; - } - - public void testQuerty() { - assertEquals(true, timq.checkAndSet("qwerty", config)); //$NON-NLS-1$ - assertTrue(config.getTextInputMethodQualifier() != null); - assertEquals(Keyboard.QWERTY, config.getTextInputMethodQualifier().getValue()); - assertEquals("qwerty", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void test12Key() { - assertEquals(true, timq.checkAndSet("12key", config)); //$NON-NLS-1$ - assertTrue(config.getTextInputMethodQualifier() != null); - assertEquals(Keyboard.TWELVEKEY, config.getTextInputMethodQualifier().getValue()); - assertEquals("12key", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void testNoKey() { - assertEquals(true, timq.checkAndSet("nokeys", config)); //$NON-NLS-1$ - assertTrue(config.getTextInputMethodQualifier() != null); - assertEquals(Keyboard.NOKEY, config.getTextInputMethodQualifier().getValue()); - assertEquals("nokeys", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, timq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, timq.checkAndSet("QWERTY", config));//$NON-NLS-1$ - assertEquals(false, timq.checkAndSet("12keys", config));//$NON-NLS-1$ - assertEquals(false, timq.checkAndSet("*12key", config));//$NON-NLS-1$ - assertEquals(false, timq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java deleted file mode 100644 index 1dafa8b..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.configurations; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier; -import com.android.resources.TouchScreen; - -import junit.framework.TestCase; - -public class TouchScreenQualifierTest extends TestCase { - - private TouchScreenQualifier tsq; - private FolderConfiguration config; - - @Override - protected void setUp() throws Exception { - super.setUp(); - tsq = new TouchScreenQualifier(); - config = new FolderConfiguration(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - tsq = null; - config = null; - } - - public void testNoTouch() { - assertEquals(true, tsq.checkAndSet("notouch", config)); //$NON-NLS-1$ - assertTrue(config.getTouchTypeQualifier() != null); - assertEquals(TouchScreen.NOTOUCH, config.getTouchTypeQualifier().getValue()); - assertEquals("notouch", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$ - } - - public void testFinger() { - assertEquals(true, tsq.checkAndSet("finger", config)); //$NON-NLS-1$ - assertTrue(config.getTouchTypeQualifier() != null); - assertEquals(TouchScreen.FINGER, config.getTouchTypeQualifier().getValue()); - assertEquals("finger", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$ - } - - public void testStylus() { - assertEquals(true, tsq.checkAndSet("stylus", config)); //$NON-NLS-1$ - assertTrue(config.getTouchTypeQualifier() != null); - assertEquals(TouchScreen.STYLUS, config.getTouchTypeQualifier().getValue()); - assertEquals("stylus", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$ - } - - public void testFailures() { - assertEquals(false, tsq.checkAndSet("", config));//$NON-NLS-1$ - assertEquals(false, tsq.checkAndSet("STYLUS", config));//$NON-NLS-1$ - assertEquals(false, tsq.checkAndSet("other", config));//$NON-NLS-1$ - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java index f8dc9fb..f2a6b54 100644 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java @@ -16,14 +16,12 @@ package com.android.ide.eclipse.adt.internal.editors.resources.manager; -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.ResourceQualifier; +import com.android.ide.common.resources.ResourceFile; +import com.android.ide.common.resources.ResourceFolder; +import com.android.ide.common.resources.ResourceRepository; +import com.android.ide.common.resources.SingleResourceFile; +import com.android.ide.common.resources.configuration.FolderConfiguration; import com.android.ide.eclipse.adt.internal.resources.manager.ProjectResources; -import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFile; -import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFolder; -import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFolderType; -import com.android.ide.eclipse.adt.internal.resources.manager.ResourceManager; -import com.android.ide.eclipse.adt.internal.resources.manager.SingleResourceFile; import com.android.ide.eclipse.adt.io.IFileWrapper; import com.android.ide.eclipse.adt.io.IFolderWrapper; import com.android.ide.eclipse.mock.Mocks; @@ -33,16 +31,13 @@ import com.android.resources.KeyboardState; import com.android.resources.Navigation; import com.android.resources.NavigationState; import com.android.resources.NightMode; +import com.android.resources.ResourceFolderType; import com.android.resources.ScreenOrientation; import com.android.resources.TouchScreen; -import com.android.sdklib.io.IAbstractFolder; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; -import java.lang.reflect.Field; -import java.lang.reflect.Method; - import junit.framework.TestCase; public class ConfigMatchTest extends TestCase { @@ -50,8 +45,8 @@ public class ConfigMatchTest extends TestCase { private static final String MISC1_FILENAME = "foo.xml"; //$NON-NLS-1$ private static final String MISC2_FILENAME = "bar.xml"; //$NON-NLS-1$ + private FolderConfiguration mDefaultConfig; private ProjectResources mResources; - private ResourceQualifier[] mQualifierList; private FolderConfiguration config4; private FolderConfiguration config3; private FolderConfiguration config2; @@ -61,15 +56,9 @@ public class ConfigMatchTest extends TestCase { protected void setUp() throws Exception { super.setUp(); - // create a Resource Manager to get a list of qualifier as instantiated by the real code. - // Thanks for QualifierListTest we know this contains all the qualifiers. - ResourceManager manager = ResourceManager.getInstance(); - Field qualifierListField = ResourceManager.class.getDeclaredField("mQualifiers"); - assertNotNull(qualifierListField); - qualifierListField.setAccessible(true); - - // get the actual list. - mQualifierList = (ResourceQualifier[])qualifierListField.get(manager); + // create a default config with all qualifiers. + mDefaultConfig = new FolderConfiguration(); + mDefaultConfig.createDefault(); // create the project resources. mResources = new ProjectResources(null /*project*/); @@ -233,17 +222,18 @@ public class ConfigMatchTest extends TestCase { * this particular qualifier. */ private FolderConfiguration getConfiguration(String... qualifierValues) { - FolderConfiguration config = new FolderConfiguration(); + // FolderConfiguration.getQualifierCount is always valid and up to date. + final int count = FolderConfiguration.getQualifierCount(); - // those must be of the same length - assertEquals(qualifierValues.length, mQualifierList.length); + // Check we have the right number of qualifier. + assertEquals(qualifierValues.length, count); - int index = 0; + FolderConfiguration config = new FolderConfiguration(); - for (ResourceQualifier qualifier : mQualifierList) { - String value = qualifierValues[index++]; + for (int i = 0 ; i < count ; i++) { + String value = qualifierValues[i]; if (value != null) { - assertTrue(qualifier.checkAndSet(value, config)); + assertTrue(mDefaultConfig.getQualifier(i).checkAndSet(value, config)); } } @@ -253,11 +243,11 @@ public class ConfigMatchTest extends TestCase { /** * Adds a folder to the given {@link ProjectResources} with the given * {@link FolderConfiguration}. The folder is filled with files from the provided list. - * @param resources the {@link ProjectResources} in which to add the folder. + * @param resources the {@link ResourceRepository} in which to add the folder. * @param config the {@link FolderConfiguration} for the created folder. * @param memberList the list of files for the folder. */ - private void addFolder(ProjectResources resources, FolderConfiguration config, + private void addFolder(ResourceRepository resources, FolderConfiguration config, IFile[] memberList) throws Exception { // figure out the folder name based on the configuration @@ -267,28 +257,11 @@ public class ConfigMatchTest extends TestCase { IFolder folder = Mocks.createFolder(folderName, memberList); // add it to the resource, and get back a ResourceFolder object. - ResourceFolder resFolder = _addProjectResourceFolder(resources, config, folder); + ResourceFolder resFolder = resources.processFolder(new IFolderWrapper(folder)); // and fill it with files from the list. for (IFile file : memberList) { resFolder.addFile(new SingleResourceFile(new IFileWrapper(file), resFolder)); } } - - /** Calls ProjectResource.add method via reflection to circumvent access - * restrictions that are enforced when running in the plug-in environment - * ie cannot access package or protected members in a different plug-in, even - * if they are in the same declared package as the accessor - */ - private ResourceFolder _addProjectResourceFolder(ProjectResources resources, - FolderConfiguration config, IFolder folder) throws Exception { - - Method addMethod = ProjectResources.class.getDeclaredMethod("add", - ResourceFolderType.class, FolderConfiguration.class, - IAbstractFolder.class); - addMethod.setAccessible(true); - ResourceFolder resFolder = (ResourceFolder)addMethod.invoke(resources, - ResourceFolderType.LAYOUT, config, new IFolderWrapper(folder)); - return resFolder; - } } diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/QualifierListTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/QualifierListTest.java deleted file mode 100644 index 8932a00..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/QualifierListTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2007 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.resources.manager; - -import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import com.android.ide.eclipse.adt.internal.resources.configurations.ResourceQualifier; -import com.android.ide.eclipse.adt.internal.resources.manager.ResourceManager; - -import java.lang.reflect.Field; - -import junit.framework.TestCase; - -public class QualifierListTest extends TestCase { - - private ResourceManager mManager; - - @Override - public void setUp() throws Exception { - super.setUp(); - - mManager = ResourceManager.getInstance(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - mManager = null; - } - - public void testQualifierList() { - try { - // get the list of qualifier in the resource manager - Field qualifierListField = ResourceManager.class.getDeclaredField("mQualifiers"); - assertNotNull(qualifierListField); - qualifierListField.setAccessible(true); - - // get the actual list. - ResourceQualifier[] qualifierList = - (ResourceQualifier[])qualifierListField.get(mManager); - - // now get the number of qualifier in the FolderConfiguration - Field qualCountField = FolderConfiguration.class.getDeclaredField("INDEX_COUNT"); - assertNotNull(qualCountField); - qualCountField.setAccessible(true); - - // get the constant value - Integer count = (Integer)qualCountField.get(null); - - // now compare - assertEquals(count.intValue(), qualifierList.length); - } catch (SecurityException e) { - assertTrue(false); - } catch (NoSuchFieldException e) { - assertTrue(false); - } catch (IllegalArgumentException e) { - assertTrue(false); - } catch (IllegalAccessException e) { - assertTrue(false); - } - } -} - diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/xml/HyperlinksTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/xml/HyperlinksTest.java deleted file mode 100644 index ec6f99a..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/xml/HyperlinksTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2010 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.xml; - -import junit.framework.TestCase; - -public class HyperlinksTest extends TestCase { - public void testFqnRegexp() throws Exception { - assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.Foo").matches()); - assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.pk_g.Foo_Bar1"). - matches()); - assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.Foo$Inner").matches()); - - // Should we allow non-standard packages and class names? - // For now, we're allowing it -- see how this works out in practice. - //assertFalse(XmlHyperlinkResolver.CLASS_PATTERN.matcher("Foo.bar").matches()); - assertTrue(Hyperlinks.CLASS_PATTERN.matcher("Foo.bar").matches()); - - assertFalse(Hyperlinks.CLASS_PATTERN.matcher("LinearLayout").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher(".").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher(".F").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher("f.").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher("Foo").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher("com.android.1Foo").matches()); - assertFalse(Hyperlinks.CLASS_PATTERN.matcher("1com.Foo").matches()); - } -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceHelperTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceHelperTest.java new file mode 100644 index 0000000..078e7cb --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceHelperTest.java @@ -0,0 +1,178 @@ +/* + * 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.resources; + +import static com.android.resources.ResourceType.DIMEN; +import static com.android.resources.ResourceType.LAYOUT; + +import com.android.ide.common.resources.ResourceDeltaKind; +import com.android.ide.common.resources.configuration.FolderConfiguration; +import com.android.ide.common.resources.configuration.ResourceQualifier; +import com.android.resources.ResourceType; + +import org.eclipse.core.resources.IResourceDelta; + +import junit.framework.TestCase; + + +/** + * Test ResourceHelper + */ +public class ResourceHelperTest extends TestCase { + + /** + * temp fake qualifier class. + */ + private static class FakeQualifierClass extends ResourceQualifier { + + @Override + public boolean checkAndSet(String value, FolderConfiguration config) { + return false; + } + + @Override + public boolean equals(Object object) { + return false; + } + + @Override + public String getFolderSegment() { + return null; + } + + @Override + public String getLongDisplayValue() { + return null; + } + + @Override + public String getName() { + return null; + } + + @Override + public String getShortDisplayValue() { + return null; + } + + @Override + public String getShortName() { + return null; + } + + @Override + public boolean hasFakeValue() { + return false; + } + + @Override + public int hashCode() { + return 0; + } + + @Override + public boolean isValid() { + return false; + } + + } + + public void testgetIcon() throws Exception { + // check that the method returns null for an unknown qualifier class + assertNull(ResourceHelper.getIcon(FakeQualifierClass.class)); + + // find all the qualifiers through FolderConfiguration.createdefault() + FolderConfiguration config = new FolderConfiguration(); + config.createDefault(); + final int count = FolderConfiguration.getQualifierCount(); + for (int i = 0 ; i < count ; i++) { + ResourceQualifier qual = config.getQualifier(i); + assertNotNull(qual); + assertNotNull(qual.getClass().getCanonicalName(), + ResourceHelper.getIcon(qual.getClass())); + } + } + + public void testGetResourceDeltaKind() { + assertEquals(ResourceDeltaKind.ADDED, + ResourceHelper.getResourceDeltaKind(IResourceDelta.ADDED)); + assertEquals(ResourceDeltaKind.REMOVED, + ResourceHelper.getResourceDeltaKind(IResourceDelta.REMOVED)); + assertEquals(ResourceDeltaKind.CHANGED, + ResourceHelper.getResourceDeltaKind(IResourceDelta.CHANGED)); + + assertNull(ResourceHelper.getResourceDeltaKind(IResourceDelta.ADDED_PHANTOM)); + } + + public void testParseResource() { + assertNull(ResourceHelper.parseResource("")); + assertNull(ResourceHelper.parseResource("not_a_resource")); + + assertEquals(LAYOUT, ResourceHelper.parseResource("@layout/foo").getFirst()); + assertEquals(DIMEN, ResourceHelper.parseResource("@dimen/foo").getFirst()); + assertEquals(DIMEN, ResourceHelper.parseResource("@android:dimen/foo").getFirst()); + assertEquals("foo", ResourceHelper.parseResource("@layout/foo").getSecond()); + assertEquals("foo", ResourceHelper.parseResource("@dimen/foo").getSecond()); + assertEquals("foo", ResourceHelper.parseResource("@android:dimen/foo").getSecond()); + } + + + public void testIsFileBasedResourceType() throws Exception { + assertTrue(ResourceHelper.isFileBasedResourceType(ResourceType.ANIMATOR)); + assertTrue(ResourceHelper.isFileBasedResourceType(ResourceType.LAYOUT)); + + assertFalse(ResourceHelper.isFileBasedResourceType(ResourceType.STRING)); + assertFalse(ResourceHelper.isFileBasedResourceType(ResourceType.DIMEN)); + assertFalse(ResourceHelper.isFileBasedResourceType(ResourceType.ID)); + + // Both: + assertTrue(ResourceHelper.isFileBasedResourceType(ResourceType.DRAWABLE)); + assertTrue(ResourceHelper.isFileBasedResourceType(ResourceType.COLOR)); + } + + public void testIsValueBasedResourceType() throws Exception { + assertTrue(ResourceHelper.isValueBasedResourceType(ResourceType.STRING)); + assertTrue(ResourceHelper.isValueBasedResourceType(ResourceType.DIMEN)); + assertTrue(ResourceHelper.isValueBasedResourceType(ResourceType.ID)); + + assertFalse(ResourceHelper.isValueBasedResourceType(ResourceType.LAYOUT)); + + // These can be both: + assertTrue(ResourceHelper.isValueBasedResourceType(ResourceType.DRAWABLE)); + assertTrue(ResourceHelper.isValueBasedResourceType(ResourceType.COLOR)); + } + + public void testCanCreateResource() throws Exception { + assertTrue(ResourceHelper.canCreateResource("@layout/foo")); + assertTrue(ResourceHelper.canCreateResource("@string/foo")); + assertTrue(ResourceHelper.canCreateResource("@dimen/foo")); + assertTrue(ResourceHelper.canCreateResource("@color/foo")); + + assertFalse(ResourceHelper.canCreateResource("@typo/foo")); // nonexistent type + assertFalse(ResourceHelper.canCreateResource("@layout/foo bar")); // space + assertFalse(ResourceHelper.canCreateResource("@layout/new")); // keyword + assertFalse(ResourceHelper.canCreateResource("@android:string/foo")); // framework + assertFalse(ResourceHelper.canCreateResource("@android:dimen/foo")); + assertFalse(ResourceHelper.canCreateResource("@android:color/foo")); + } + + public void testStyleToTheme() throws Exception { + assertEquals("Foo", ResourceHelper.styleToTheme("Foo")); + assertEquals("Theme", ResourceHelper.styleToTheme("@android:style/Theme")); + assertEquals("LocalTheme", ResourceHelper.styleToTheme("@style/LocalTheme")); + } +} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceNameValidatorTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceNameValidatorTest.java new file mode 100644 index 0000000..b771667 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/ResourceNameValidatorTest.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2010 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.resources; + +import com.android.resources.ResourceFolderType; +import com.android.resources.ResourceType; + +import java.util.Collections; + +import junit.framework.TestCase; + +public class ResourceNameValidatorTest extends TestCase { + public void testValidator() throws Exception { + // Valid + ResourceNameValidator validator = ResourceNameValidator.create(true, + ResourceFolderType.VALUES); + assertTrue(validator.isValid("foo") == null); + assertTrue(validator.isValid("foo.xml") == null); + assertTrue(validator.isValid("Foo123_$") == null); + + // Invalid + assertTrue(validator.isValid("") != null); + assertTrue(validator.isValid(" ") != null); + assertTrue(validator.isValid("foo.xm") != null); + assertTrue(validator.isValid("foo bar") != null); + assertTrue(validator.isValid("1foo") != null); + assertTrue(validator.isValid("foo%bar") != null); + assertTrue(ResourceNameValidator.create(true, Collections.singleton("foo"), + ResourceType.STRING).isValid("foo") != null); + + // Only lowercase chars allowed in file-based resource names + assertTrue(ResourceNameValidator.create(true, ResourceFolderType.LAYOUT) + .isValid("Foo123_$") != null); + assertTrue(ResourceNameValidator.create(true, ResourceFolderType.LAYOUT) + .isValid("foo123_") == null); + } +} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/manager/FolderTypeRelationShipTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/manager/FolderTypeRelationShipTest.java deleted file mode 100644 index f1ce9d9..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/resources/manager/FolderTypeRelationShipTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2010 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.resources.manager; - -import com.android.resources.ResourceType; - -import junit.framework.TestCase; - -public class FolderTypeRelationShipTest extends TestCase { - - public void testResourceType() { - // all resource type should be in the FolderTypeRelationShip map. - // loop on all the enum, and make sure there's at least one folder type for it. - for (ResourceType type : ResourceType.values()) { - assertTrue(type.getDisplayName(), - FolderTypeRelationship.getRelatedFolders(type).length > 0); - } - } - - public void testResourceFolderType() { - // all resource folder type should generate at least one type of resource. - // loop on all the enum, and make sure there's at least one res type for it. - for (ResourceFolderType type : ResourceFolderType.values()) { - assertTrue(type.getName(), - FolderTypeRelationship.getRelatedResourceTypes(type).length > 0); - } - } - -} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/wizards/newxmlfile/ResourceNameValidatorTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/wizards/newxmlfile/ResourceNameValidatorTest.java deleted file mode 100644 index 5ee6793..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/wizards/newxmlfile/ResourceNameValidatorTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2010 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.wizards.newxmlfile; - -import java.util.Collections; - -import junit.framework.TestCase; - -public class ResourceNameValidatorTest extends TestCase { - public void testValidator() throws Exception { - // Valid - assertTrue(ResourceNameValidator.create(true).isValid("foo") == null); - assertTrue(ResourceNameValidator.create(true).isValid("foo.xml") == null); - assertTrue(ResourceNameValidator.create(true).isValid("Foo123_$") == null); - - // Invalid - assertTrue(ResourceNameValidator.create(true).isValid("") != null); - assertTrue(ResourceNameValidator.create(true).isValid(" ") != null); - assertTrue(ResourceNameValidator.create(true).isValid("foo.xm") != null); - assertTrue(ResourceNameValidator.create(true).isValid("foo bar") != null); - assertTrue(ResourceNameValidator.create(true).isValid("1foo") != null); - assertTrue(ResourceNameValidator.create(true).isValid("foo%bar") != null); - assertTrue(ResourceNameValidator.create(true, Collections.singleton("foo")) - .isValid("foo") != null); - } -} |