diff options
author | Xavier Ducrohet <xav@android.com> | 2009-10-12 11:47:14 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-10-12 11:47:14 -0700 |
commit | 84436a245c2a9479887cd7fd06fd74991221e8ae (patch) | |
tree | 92fe6286ec69380b4ecaa1c88d7d98d7d8dfed25 /tools | |
parent | a8ace6cbffd3ee9d1627a563436cee272ff8599f (diff) | |
parent | 4ab1b3a292216620cbf7cb6f424e6a159f138dd1 (diff) | |
download | frameworks_base-84436a245c2a9479887cd7fd06fd74991221e8ae.zip frameworks_base-84436a245c2a9479887cd7fd06fd74991221e8ae.tar.gz frameworks_base-84436a245c2a9479887cd7fd06fd74991221e8ae.tar.bz2 |
am 4ab1b3a2: am 88fb78d2: am 5f9d4bae: layout lib tests cleanup
Merge commit '4ab1b3a292216620cbf7cb6f424e6a159f138dd1'
* commit '4ab1b3a292216620cbf7cb6f424e6a159f138dd1':
layout lib tests cleanup
Diffstat (limited to 'tools')
-rw-r--r-- | tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java | 18 | ||||
-rw-r--r-- | tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeTest.java | 275 | ||||
-rw-r--r-- | tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java | 44 | ||||
-rw-r--r-- | tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/button.9.png (renamed from tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/button.9.png) | bin | 3750 -> 3750 bytes | |||
-rw-r--r-- | tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/layout1.xml (renamed from tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/layout1.xml) | 0 |
5 files changed, 17 insertions, 320 deletions
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 android.text.TextPaint; import junit.framework.TestCase; /** - * + * */ public class AndroidGraphicsTests extends TestCase { @@ -40,24 +40,24 @@ public class AndroidGraphicsTests extends TestCase { 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 @@ public class AndroidGraphicsTests extends TestCase { 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 class BridgeXmlBlockParserTest extends TestCase { 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 @@ public class BridgeXmlBlockParserTest extends TestCase { 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 @@ public class BridgeXmlBlockParserTest extends TestCase { "DOCUMENT_FRAGMENT_NODE", "NOTATION_NODE" }; - + String s = String.format("%s<%s> %s %s", prefix, types[node.getNodeType()], @@ -134,7 +106,7 @@ public class BridgeXmlBlockParserTest extends TestCase { 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 Binary files differindex 9d52f40..9d52f40 100644 --- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/button.9.png +++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/button.9.png diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/layout1.xml b/tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/layout1.xml index 554f541..554f541 100644 --- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/layout1.xml +++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/testdata/layout1.xml |