diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java deleted file mode 100644 index 5cac663d7..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java +++ /dev/null @@ -1,256 +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.layout; - -import com.android.SdkConstants; -import com.android.ide.common.api.IAttributeInfo.Format; -import com.android.ide.common.resources.platform.AttributeInfo; -import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor; -import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor; -import com.android.ide.eclipse.adt.internal.editors.descriptors.TextAttributeDescriptor; -import com.android.ide.eclipse.adt.internal.editors.mock.MockXmlNode; -import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode; -import com.android.resources.Density; - -import org.w3c.dom.Node; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.util.HashMap; - -import junit.framework.TestCase; - -public class UiElementPullParserTest extends TestCase { - - private UiElementNode ui; - private HashMap<String, String> button1Map; - private HashMap<String, String> button2Map; - private HashMap<String, String> textMap; - - private TextAttributeDescriptor createTextAttrDesc(String xmlName) { - return new TextAttributeDescriptor( - xmlName, // xmlLocalName - SdkConstants.NS_RESOURCES, - new AttributeInfo(xmlName, Format.STRING_SET) - ); - } - - @Override - protected void setUp() throws Exception { - // set up some basic descriptors. - // We have button, textview, linear layout, relative layout. - // only the layouts have children (all 4 descriptors possible) - // Also add some dummy attributes. - ElementDescriptor buttonDescriptor = new ElementDescriptor("Button", "Button", "", "", - new AttributeDescriptor[] { - createTextAttrDesc("name"), - createTextAttrDesc("text"), - }, - new ElementDescriptor[] {}, false); - - ElementDescriptor textDescriptor = new ElementDescriptor("TextView", "TextView", "", "", - new AttributeDescriptor[] { - createTextAttrDesc("name"), - createTextAttrDesc("text"), - }, - new ElementDescriptor[] {}, false); - - ElementDescriptor linearDescriptor = new ElementDescriptor("LinearLayout", "Linear Layout", - "", "", - new AttributeDescriptor[] { - createTextAttrDesc("orientation"), - }, - new ElementDescriptor[] { }, false); - - ElementDescriptor relativeDescriptor = new ElementDescriptor("RelativeLayout", - "Relative Layout", "", "", - new AttributeDescriptor[] { - createTextAttrDesc("orientation"), - }, - new ElementDescriptor[] { }, false); - - ElementDescriptor[] a = new ElementDescriptor[] { - buttonDescriptor, textDescriptor, linearDescriptor, relativeDescriptor - }; - - linearDescriptor.setChildren(a); - relativeDescriptor.setChildren(a); - - // document descriptor - ElementDescriptor rootDescriptor = new ElementDescriptor("root", "", "", "", - new AttributeDescriptor[] { }, a, false); - - - ui = new UiElementNode(rootDescriptor); - - /* create a dummy XML file. - * <LinearLayout android:orientation="vertical"> - * <Button android:name="button1" android:text="button1text"/> - * <RelativeLayout android:orientation="toto"> - * <Button android:name="button2" android:text="button2text"/> - * <TextView android:name="text1" android:text="text1text"/> - * </RelativeLayout> - * </LinearLayout> - */ - MockXmlNode button1 = new MockXmlNode(null /* namespace */, "Button", Node.ELEMENT_NODE, - null); - button1.addAttributes(SdkConstants.NS_RESOURCES, "name", "button1"); - button1.addAttributes(SdkConstants.NS_RESOURCES, "text", "button1text"); - - // create a map of the attributes we add to the multi-attribute nodes so that - // we can more easily test the values when we parse the XML. - // This is due to some attributes showing in a certain order for a node and in a different - // order in another node. Since the order doesn't matter, we just simplify the test. - button1Map = new HashMap<String, String>(); - button1Map.put("name", "button1"); - button1Map.put("text", "button1text"); - - MockXmlNode button2 = new MockXmlNode(null /* namespace */, "Button", Node.ELEMENT_NODE, - null); - button2.addAttributes(SdkConstants.NS_RESOURCES, "name", "button2"); - button2.addAttributes(SdkConstants.NS_RESOURCES, "text", "button2text"); - - button2Map = new HashMap<String, String>(); - button2Map.put("name", "button2"); - button2Map.put("text", "button2text"); - - MockXmlNode text = new MockXmlNode(null /* namespace */, "TextView", Node.ELEMENT_NODE, - null); - text.addAttributes(SdkConstants.NS_RESOURCES, "name", "text1"); - text.addAttributes(SdkConstants.NS_RESOURCES, "text", "text1text"); - - textMap = new HashMap<String, String>(); - textMap.put("name", "text1"); - textMap.put("text", "text1text"); - - MockXmlNode relative = new MockXmlNode(null /* namespace */, "RelativeLayout", - Node.ELEMENT_NODE, new MockXmlNode[] { button2, text }); - relative.addAttributes(SdkConstants.NS_RESOURCES, "orientation", "toto"); - - MockXmlNode linear = new MockXmlNode(null /* namespace */, "LinearLayout", - Node.ELEMENT_NODE, new MockXmlNode[] { button1, relative }); - linear.addAttributes(SdkConstants.NS_RESOURCES, "orientation", "vertical"); - - MockXmlNode root = new MockXmlNode(null /* namespace */, "root", Node.ELEMENT_NODE, - new MockXmlNode[] { linear }); - - // put the namespace/prefix in place - root.setPrefix(SdkConstants.NS_RESOURCES, "android"); - - // load the xml into the UiElementNode - ui.loadFromXmlNode(root); - - super.setUp(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - - public void testParser() { - try { - // wrap the parser around the ui element node, and start parsing - UiElementPullParser parser = new UiElementPullParser( - ui, // model - false, // explodedView - null, // explodeNodes - Density.MEDIUM, // density (default from ConfigurationComposite) - null // iProject - ); - - assertEquals(XmlPullParser.START_DOCUMENT, parser.getEventType()); - - // top level Linear layout - assertEquals(XmlPullParser.START_TAG, parser.next()); - assertEquals("LinearLayout", parser.getName()); - assertEquals(1, parser.getAttributeCount()); - assertEquals("orientation", parser.getAttributeName(0)); - assertEquals(SdkConstants.NS_RESOURCES, parser.getAttributeNamespace(0)); - assertEquals("android", parser.getAttributePrefix(0)); - assertEquals("vertical", parser.getAttributeValue(0)); - - // Button - assertEquals(XmlPullParser.START_TAG, parser.next()); - assertEquals("Button", parser.getName()); - assertEquals(2, parser.getAttributeCount()); - check(parser, 0, button1Map); - check(parser, 1, button1Map); - // end of button - assertEquals(XmlPullParser.END_TAG, parser.next()); - - // Relative Layout - assertEquals(XmlPullParser.START_TAG, parser.next()); - assertEquals("RelativeLayout", parser.getName()); - assertEquals(1, parser.getAttributeCount()); - assertEquals("orientation", parser.getAttributeName(0)); - assertEquals(SdkConstants.NS_RESOURCES, parser.getAttributeNamespace(0)); - assertEquals("android", parser.getAttributePrefix(0)); - assertEquals("toto", parser.getAttributeValue(0)); - - // Button - assertEquals(XmlPullParser.START_TAG, parser.next()); - assertEquals("Button", parser.getName()); - assertEquals(2, parser.getAttributeCount()); - check(parser, 0, button2Map); - check(parser, 1, button2Map); - // end of button - assertEquals(XmlPullParser.END_TAG, parser.next()); - - // TextView - assertEquals(XmlPullParser.START_TAG, parser.next()); - assertEquals("TextView", parser.getName()); - assertEquals(2, parser.getAttributeCount()); - check(parser, 0, textMap); - check(parser, 1, textMap); - // end of TextView - assertEquals(XmlPullParser.END_TAG, parser.next()); - - // end of RelativeLayout - assertEquals(XmlPullParser.END_TAG, parser.next()); - - - // end of top level linear layout - assertEquals(XmlPullParser.END_TAG, parser.next()); - - assertEquals(XmlPullParser.END_DOCUMENT, parser.next()); - } catch (XmlPullParserException e) { - e.printStackTrace(); - assertTrue(false); - } - } - - /** - * Receives a {@link XmlPullParser} at the START_TAG level, and checks the i-th attribute - * to be present in the {@link HashMap} with the proper (name, value) - * @param parser - * @param i - * @param map - */ - private void check(UiElementPullParser parser, int i, HashMap<String, String> map) { - String name = parser.getAttributeName(i); - String value = parser.getAttributeValue(i); - - String referenceValue = map.get(name); - assertNotNull(referenceValue); - assertEquals(referenceValue, value); - - assertEquals(SdkConstants.NS_RESOURCES, parser.getAttributeNamespace(i)); - assertEquals("android", parser.getAttributePrefix(i)); - } - -} |