summaryrefslogtreecommitdiffstats
path: root/tools/layoutlib/bridge/tests
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-10-06 12:04:03 -0700
committerXavier Ducrohet <xav@android.com>2009-10-06 15:14:09 -0700
commit5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690 (patch)
treeb9283cdd9d1b225f404d034cfacffe313d239c64 /tools/layoutlib/bridge/tests
parent0a9d46b7e741ccf7272bb69a4eef3c1f2adc91b7 (diff)
downloadframeworks_base-5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690.zip
frameworks_base-5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690.tar.gz
frameworks_base-5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690.tar.bz2
layout lib tests cleanup
- Move test files to their own package for easy binary inclusion in adt-test - fix some tests and remove obsolete ones. Change-Id: I5b967f29074fdad74073f9b37d903eabe8dc29e6
Diffstat (limited to 'tools/layoutlib/bridge/tests')
-rw-r--r--tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/AndroidGraphicsTests.java18
-rw-r--r--tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeTest.java275
-rw-r--r--tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/BridgeXmlBlockParserTest.java44
-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)bin3750 -> 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
index 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
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
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