am 88fb78d2: am 5f9d4bae: layout lib tests cleanup

Merge commit '88fb78d2091764e1265976bdb7027f7785f0b33b' into eclair-mr2-plus-aosp

* commit '88fb78d2091764e1265976bdb7027f7785f0b33b':
  layout lib tests cleanup
diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java
index ac144e7..6e14e82 100644
--- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java
+++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java
@@ -24,7 +24,7 @@
 import junit.framework.TestCase;
 
 /**
- * 
+ *
  */
 public class AndroidGraphicsTests extends TestCase {
 
@@ -40,24 +40,24 @@
 
     public void testMatrix() {
         Matrix m1 = new Matrix();
-        
-        assertFalse(m1.isIdentity());
-        
+
+        assertTrue(m1.isIdentity());
+
         m1.setValues(new float[] { 1,0,0, 0,1,0, 0,0,1 });
         assertTrue(m1.isIdentity());
-        
+
         Matrix m2 = new Matrix(m1);
-        
+
         float[] v1 = new float[9];
         float[] v2 = new float[9];
         m1.getValues(v1);
         m2.getValues(v2);
-        
+
         for (int i = 0 ; i < 9; i++) {
             assertEquals(v1[i], v2[i]);
         }
     }
-    
+
     public void testPaint() {
         _Original_Paint o = new _Original_Paint();
         assertNotNull(o);
@@ -65,7 +65,7 @@
         Paint p = new Paint();
         assertNotNull(p);
     }
-    
+
     public void textTextPaint() {
         TextPaint p = new TextPaint();
         assertNotNull(p);
diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeTest.java b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeTest.java
deleted file mode 100644
index c66ae37..0000000
--- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeTest.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
- *
- * 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.layoutlib.bridge;
-
-import com.android.layoutlib.api.ILayoutResult;
-import com.android.layoutlib.api.IResourceValue;
-import com.android.layoutlib.api.IStyleResourceValue;
-import com.android.layoutlib.api.IXmlPullParser;
-import com.android.layoutlib.api.ILayoutResult.ILayoutViewInfo;
-
-import org.kxml2.io.KXmlParser;
-import org.xmlpull.v1.XmlPullParser;
-
-import java.io.File;
-import java.io.FileReader;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-public class BridgeTest extends TestCase {
-
-    /** the class being tested */
-    private Bridge mBridge;
-    /** the path to the sample layout.xml file */
-    private String mLayoutXml1Path;
-    private String mTextOnlyXmlPath;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mBridge = new Bridge();
-        
-        // FIXME: need some fonts somewhere.
-        mBridge.init(null /* fontOsLocation */, getAttributeValues());
-        
-        URL url = this.getClass().getClassLoader().getResource("data/layout1.xml");
-        mLayoutXml1Path = url.getFile();
-
-        url = this.getClass().getClassLoader().getResource("data/textonly.xml");
-        mTextOnlyXmlPath = url.getFile();
-    }
-    
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    // ---------------
-
-    /**
-     * Test parser that implements {@link IXmlPullParser}.
-     */
-    private static class TestParser extends KXmlParser implements IXmlPullParser {
-        public Object getViewKey() {
-            return null;
-        }
-    }
-
-    /**
-     * Mock implementation of {@link IStyleResourceValue}.
-     */
-    private static class StyleResourceValueMock extends ResourceValue
-            implements IStyleResourceValue {
-
-        private String mParentStyle = null;
-        private HashMap<String, IResourceValue> mItems = new HashMap<String, IResourceValue>();
-
-        StyleResourceValueMock(String name) {
-            super(name);
-        }
-
-        StyleResourceValueMock(String name, String parentStyle) {
-            super(name);
-            mParentStyle = parentStyle;
-        }
-
-        public String getParentStyle() {
-            return mParentStyle;
-        }
-
-        public IResourceValue findItem(String name) {
-            return mItems.get(name);
-        }
-
-        public void addItem(IResourceValue value) {
-            mItems.put(value.getName(), value);
-        }
-
-        @Override
-        public void replaceWith(ResourceValue value) {
-            super.replaceWith(value);
-
-            if (value instanceof StyleResourceValueMock) {
-                mItems.clear();
-                mItems.putAll(((StyleResourceValueMock)value).mItems);
-            }
-        }
-    }
-
-
-    public void testComputeLayout() throws Exception {
-        
-        TestParser parser = new TestParser();
-        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
-        parser.setInput(new FileReader(new File(mLayoutXml1Path)));
-
-        Map<String, Map<String, IResourceValue>> projectResources = getProjectResources();
-
-        Map<String, Map<String, IResourceValue>> frameworkResources = getFrameworkResources();
-        
-        int screenWidth = 320;
-        int screenHeight = 480;
-        
-        // FIXME need a dummy font for the tests!
-        ILayoutResult result = mBridge.computeLayout(parser, new Integer(1) /* projectKey */, 
-                screenWidth, screenHeight, false /* full render */,
-                160, 160f, 160f,
-                "Theme", false /* is project theme */,
-                projectResources, frameworkResources, null, null);
-                
-        display(result.getRootView(), "");
-    }
-
-    private Map<String, Map<String, Integer>> getAttributeValues() {
-        Map<String, Map<String, Integer>> attributeValues =
-            new HashMap<String, Map<String,Integer>>();
-        
-        // lets create a map for the orientation attribute
-        Map<String, Integer> attributeMap = new HashMap<String, Integer>();
-        
-        attributeMap.put("horizontal", Integer.valueOf(0));
-        attributeMap.put("vertical", Integer.valueOf(1));
-        
-        attributeValues.put("orientation", attributeMap);
-        
-        return attributeValues;
-    }
-
-    private Map<String, Map<String, IResourceValue>> getFrameworkResources() {
-        Map<String, Map<String, IResourceValue>> frameworkResources =
-            new HashMap<String, Map<String, IResourceValue>>();
-        
-        // create the style map
-        Map<String, IResourceValue> styleMap = new HashMap<String, IResourceValue>();
-        frameworkResources.put("style", styleMap);
-        
-        // create a button style.
-        IStyleResourceValue style = createStyle("Widget.Button",
-                "background",        "@android:drawable/something",
-                "focusable",        "true",
-                "clickable",        "true",
-                "textAppearance",   "?android:attr/textAppearanceSmallInverse",
-                "textColor",        "?android:attr/textColorBrightInverseNoDisable",
-                "gravity",          "center_vertical|center_horizontal"
-                );
-        styleMap.put(style.getName(), style);
-
-        // create the parent style of button style
-        style = createStyle("Widget",
-                "textAppearance", "?textAppearance");
-        styleMap.put(style.getName(), style);
-
-        // link the buttonStyle info in the default theme.
-        style = createStyle("Theme",
-                BridgeConstants.RES_STYLE, "buttonStyle",                      "@android:style/Widget.Button",
-                BridgeConstants.RES_STYLE, "textAppearance",                   "@android:style/TextAppearance",
-                BridgeConstants.RES_STYLE, "textAppearanceSmallInverse",       "@android:style/TextAppearance.Small.Inverse",
-                BridgeConstants.RES_COLOR, "textColorBrightInverseNoDisable",  "@android:color/bright_text_light_nodisable"
-                );
-        styleMap.put(style.getName(), style);
-
-        // create a dummy drawable to go with it
-        Map<String, IResourceValue> drawableMap = new HashMap<String, IResourceValue>();
-        frameworkResources.put("drawable", drawableMap);
-        
-        // get the 9 patch test location
-        URL url = this.getClass().getClassLoader().getResource("data/button.9.png");
-
-        IResourceValue drawable = new ResourceValue(BridgeConstants.RES_DRAWABLE, "something",
-                url.getPath());
-        drawableMap.put(drawable.getName(), drawable);
-        return frameworkResources;
-    }
-    
-    private Map<String, Map<String, IResourceValue>> getProjectResources() {
-        Map<String, Map<String, IResourceValue>> projectResources =
-            new HashMap<String, Map<String, IResourceValue>>();
-
-        // create the style map (even empty there should be one)
-        Map<String, IResourceValue> styleMap = new HashMap<String, IResourceValue>();
-        projectResources.put("style", styleMap);
-
-        return projectResources;
-    }
-
-
-    private void display(ILayoutViewInfo result, String offset) {
-
-        String msg = String.format("%s%s L:%d T:%d R:%d B:%d",
-                offset,
-                result.getName(),
-                result.getLeft(), result.getTop(), result.getRight(), result.getBottom());
-
-        System.out.println(msg);
-        ILayoutViewInfo[] children = result.getChildren();
-        if (children != null) {
-            offset += "+-";
-            for (ILayoutViewInfo child : children) {
-                display(child, offset);
-            }
-        }
-    }
-    
-    /**
-     * Creates a {@link IStyleResourceValue} based on the given values.
-     * @param styleName the name of the style.
-     * @param items An array of Strings. Even indices contain a style item name, and odd indices
-     * a style item value. If the number of string in the array is not even, an exception is thrown.
-     */
-    private IStyleResourceValue createStyle(String styleName, String... items) {
-        StyleResourceValueMock value = new StyleResourceValueMock(styleName);
-        
-        if (items.length % 3 == 0) {
-            for (int i = 0 ; i < items.length;) {
-                value.addItem(new ResourceValue(items[i++], items[i++], items[i++]));
-            }
-        } else {
-            throw new IllegalArgumentException("Need a multiple of 3 for the number of strings");
-        }
-        
-        return value;
-    }
-
-    // ---------------
-
-    public void testTextLayout() throws Exception {
-        
-        TestParser parser = new TestParser();
-        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
-        parser.setInput(new FileReader(new File(mTextOnlyXmlPath)));
-
-        Map<String, Map<String, IResourceValue>> projectResources = getProjectResources();
-        Map<String, Map<String, IResourceValue>> frameworkResources = getFrameworkResources();
-        
-        int screenWidth = 320;
-        int screenHeight = 480;
-
-        // FIXME need a dummy font for the tests!
-        ILayoutResult result = mBridge.computeLayout(parser, new Integer(1) /* projectKey */,
-                screenWidth, screenHeight, false /* full render */,
-                160, 160f, 160f,
-                "Theme", false /* is project theme */,
-                projectResources, frameworkResources, null, null);
-                
-        display(result.getRootView(), "");
-    }
-
-}
diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java
index ef7442c..9e2987a 100644
--- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java
+++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java
@@ -17,33 +17,18 @@
 package com.android.layoutlib.bridge;
 
 import org.kxml2.io.KXmlParser;
-import org.w3c.dom.Document;
 import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
 import org.xmlpull.v1.XmlPullParser;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.URL;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
+import java.io.InputStream;
 
 import junit.framework.TestCase;
 
 public class BridgeXmlBlockParserTest extends TestCase {
 
-    private String mXmlPath;
-    private Document mDoc;
-
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        URL url = this.getClass().getClassLoader().getResource("layout1.xml");
-        mXmlPath = url.getFile();
-        mDoc = getXmlDocument(mXmlPath);
     }
 
     @Override
@@ -54,7 +39,10 @@
     public void testXmlBlockParser() throws Exception {
         XmlPullParser parser = new KXmlParser();
         parser = new BridgeXmlBlockParser(parser, null, false /* platformResourceFlag */);
-        parser.setInput(new FileReader(new File(mXmlPath)));
+
+        InputStream input = this.getClass().getClassLoader().getResourceAsStream(
+            "/com/android/layoutlib/testdata/layout1.xml");
+        parser.setInput(input, null /*encoding*/);
 
         assertEquals(XmlPullParser.START_DOCUMENT, parser.next());
 
@@ -85,24 +73,8 @@
         assertEquals(XmlPullParser.END_TAG, parser.next());
         assertEquals(XmlPullParser.END_DOCUMENT, parser.next());
     }
-    
-    //------------
-    
-    private Document getXmlDocument(String xmlFilePath)
-            throws ParserConfigurationException, SAXException, IOException {
-        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-        
-        // keep comments
-        factory.setIgnoringComments(false);
-        // don't validate our bogus DTD
-        factory.setValidating(false);
-        // we want namespaces
-        factory.setNamespaceAware(true);
-        
-        DocumentBuilder builder = factory.newDocumentBuilder();
-        return builder.parse(new File(xmlFilePath));
-    }
 
+    //------------
 
     /**
      * Quick'n'dirty debug helper that dumps an XML structure to stdout.
@@ -126,7 +98,7 @@
                 "DOCUMENT_FRAGMENT_NODE",
                 "NOTATION_NODE"
         };
-        
+
         String s = String.format("%s<%s> %s %s",
                 prefix,
                 types[node.getNodeType()],
@@ -134,7 +106,7 @@
                 node.getNodeValue() == null ? "" : node.getNodeValue().trim());
 
         System.out.println(s);
-        
+
         n = node.getFirstChild();
         if (n != null) {
             dump(n, prefix + "- ");
diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/button.9.png b/tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/button.9.png
similarity index 100%
rename from tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/button.9.png
rename to tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/button.9.png
Binary files differ
diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/layout1.xml b/tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/layout1.xml
similarity index 100%
rename from tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/layout1.xml
rename to tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/layout1.xml