Fix ADT test data references.
- Remove reference to ADT from sdklib tests. - Move ADT test data to be closer to their test classes, and to make it obvious this data is only for ADT unit tests.
This commit is contained in:
@@ -21,18 +21,14 @@ import org.eclipse.core.runtime.FileLocator;
|
|||||||
import org.eclipse.core.runtime.Platform;
|
import org.eclipse.core.runtime.Platform;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper class for retrieving test data
|
* Helper class for retrieving test data
|
||||||
*
|
* <p/>
|
||||||
* All tests which need to retrieve test data files should go through this class
|
* All tests which need to retrieve paths to test data files should go through this class.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class AdtTestData {
|
public class AdtTestData {
|
||||||
|
|
||||||
@@ -40,12 +36,9 @@ public class AdtTestData {
|
|||||||
private static AdtTestData sInstance = null;
|
private static AdtTestData sInstance = null;
|
||||||
private static final Logger sLogger = Logger.getLogger(AdtTestData.class.getName());
|
private static final Logger sLogger = Logger.getLogger(AdtTestData.class.getName());
|
||||||
|
|
||||||
/** the absolute file path to the /data directory in this test
|
/** The absolute file path to the plugin's contents. */
|
||||||
* environment.
|
|
||||||
*/
|
|
||||||
private String mOsRootDataPath;
|
private String mOsRootDataPath;
|
||||||
|
|
||||||
|
|
||||||
private AdtTestData() {
|
private AdtTestData() {
|
||||||
// can set test_data env variable to override default behavior of
|
// can set test_data env variable to override default behavior of
|
||||||
// finding data using class loader
|
// finding data using class loader
|
||||||
@@ -55,7 +48,7 @@ public class AdtTestData {
|
|||||||
mOsRootDataPath = System.getProperty("test_data");
|
mOsRootDataPath = System.getProperty("test_data");
|
||||||
if (mOsRootDataPath == null) {
|
if (mOsRootDataPath == null) {
|
||||||
sLogger.info("Cannot find test_data environment variable, init to class loader");
|
sLogger.info("Cannot find test_data environment variable, init to class loader");
|
||||||
URL url = this.getClass().getClassLoader().getResource("data"); //$NON-NLS-1$
|
URL url = this.getClass().getClassLoader().getResource("."); //$NON-NLS-1$
|
||||||
|
|
||||||
if (Platform.isRunning()) {
|
if (Platform.isRunning()) {
|
||||||
sLogger.info("Running as an Eclipse Plug-in JUnit test, using FileLocator");
|
sLogger.info("Running as an Eclipse Plug-in JUnit test, using FileLocator");
|
||||||
@@ -71,7 +64,7 @@ public class AdtTestData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mOsRootDataPath.equals(AndroidConstants.WS_SEP + "data")) {
|
if (mOsRootDataPath.equals(AndroidConstants.WS_SEP)) {
|
||||||
sLogger.warning("Resource data not found using class loader!, Defaulting to no path");
|
sLogger.warning("Resource data not found using class loader!, Defaulting to no path");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,9 +83,9 @@ public class AdtTestData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the absolute file path to a file located in this plugins "data" directory
|
* Returns the absolute file path to a file located in this plugin.
|
||||||
*
|
*
|
||||||
* @param osRelativePath {@link String} path to file contained in /data. Must
|
* @param osRelativePath {@link String} path to file contained in plugin. Must
|
||||||
* use path separators appropriate to host OS
|
* use path separators appropriate to host OS
|
||||||
*
|
*
|
||||||
* @return absolute OS path to test file
|
* @return absolute OS path to test file
|
||||||
@@ -100,17 +93,4 @@ public class AdtTestData {
|
|||||||
public String getTestFilePath(String osRelativePath) {
|
public String getTestFilePath(String osRelativePath) {
|
||||||
return mOsRootDataPath + osRelativePath;
|
return mOsRootDataPath + osRelativePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method to get a {@link InputStream} to test data file.
|
|
||||||
*
|
|
||||||
* @param osRelativePath {@link String} path to file contained in /data. Must
|
|
||||||
* use path separators appropriate to host OS
|
|
||||||
*
|
|
||||||
* @return {@link InputStream} for test file
|
|
||||||
* @throws FileNotFoundException if test file could not be found
|
|
||||||
*/
|
|
||||||
public InputStream getTestFileStream(String osRelativePath) throws FileNotFoundException {
|
|
||||||
return new FileInputStream(getTestFilePath(osRelativePath));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,13 @@ import junit.framework.TestCase;
|
|||||||
public class AndroidManifestParserTest extends TestCase {
|
public class AndroidManifestParserTest extends TestCase {
|
||||||
private AndroidManifestParser mManifestTestApp;
|
private AndroidManifestParser mManifestTestApp;
|
||||||
private AndroidManifestParser mManifestInstrumentation;
|
private AndroidManifestParser mManifestInstrumentation;
|
||||||
|
|
||||||
private static final String INSTRUMENTATION_XML = "AndroidManifest-instrumentation.xml"; //$NON-NLS-1$
|
private static final String TESTDATA_PATH =
|
||||||
private static final String TESTAPP_XML = "AndroidManifest-testapp.xml"; //$NON-NLS-1$
|
"com/android/ide/eclipse/testdata/"; //$NON-NLS-1$
|
||||||
|
private static final String INSTRUMENTATION_XML = TESTDATA_PATH +
|
||||||
|
"AndroidManifest-instrumentation.xml"; //$NON-NLS-1$
|
||||||
|
private static final String TESTAPP_XML = TESTDATA_PATH +
|
||||||
|
"AndroidManifest-testapp.xml"; //$NON-NLS-1$
|
||||||
private static final String PACKAGE_NAME = "com.android.testapp"; //$NON-NLS-1$
|
private static final String PACKAGE_NAME = "com.android.testapp"; //$NON-NLS-1$
|
||||||
private static final String ACTIVITY_NAME = "com.android.testapp.MainActivity"; //$NON-NLS-1$
|
private static final String ACTIVITY_NAME = "com.android.testapp.MainActivity"; //$NON-NLS-1$
|
||||||
private static final String LIBRARY_NAME = "android.test.runner"; //$NON-NLS-1$
|
private static final String LIBRARY_NAME = "android.test.runner"; //$NON-NLS-1$
|
||||||
@@ -40,26 +44,24 @@ public class AndroidManifestParserTest extends TestCase {
|
|||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
|
||||||
String testFilePath = AdtTestData.getInstance().getTestFilePath(
|
String testFilePath = AdtTestData.getInstance().getTestFilePath(TESTAPP_XML);
|
||||||
TESTAPP_XML);
|
|
||||||
mManifestTestApp = AndroidManifestParser.parseForData(testFilePath);
|
mManifestTestApp = AndroidManifestParser.parseForData(testFilePath);
|
||||||
assertNotNull(mManifestTestApp);
|
assertNotNull(mManifestTestApp);
|
||||||
|
|
||||||
testFilePath = AdtTestData.getInstance().getTestFilePath(
|
testFilePath = AdtTestData.getInstance().getTestFilePath(INSTRUMENTATION_XML);
|
||||||
INSTRUMENTATION_XML);
|
|
||||||
mManifestInstrumentation = AndroidManifestParser.parseForData(testFilePath);
|
mManifestInstrumentation = AndroidManifestParser.parseForData(testFilePath);
|
||||||
assertNotNull(mManifestInstrumentation);
|
assertNotNull(mManifestInstrumentation);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetInstrumentationInformation() {
|
public void testGetInstrumentationInformation() {
|
||||||
assertEquals(1, mManifestInstrumentation.getInstrumentations().length);
|
assertEquals(1, mManifestInstrumentation.getInstrumentations().length);
|
||||||
assertEquals(INSTRUMENTATION_NAME,
|
assertEquals(INSTRUMENTATION_NAME,
|
||||||
mManifestInstrumentation.getInstrumentations()[0].getName());
|
mManifestInstrumentation.getInstrumentations()[0].getName());
|
||||||
assertEquals(INSTRUMENTATION_TARGET,
|
assertEquals(INSTRUMENTATION_TARGET,
|
||||||
mManifestInstrumentation.getInstrumentations()[0].getTargetPackage());
|
mManifestInstrumentation.getInstrumentations()[0].getTargetPackage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetPackage() {
|
public void testGetPackage() {
|
||||||
assertEquals(PACKAGE_NAME, mManifestTestApp.getPackage());
|
assertEquals(PACKAGE_NAME, mManifestTestApp.getPackage());
|
||||||
}
|
}
|
||||||
@@ -80,7 +82,7 @@ public class AndroidManifestParserTest extends TestCase {
|
|||||||
assertTrue(activity.hasAction());
|
assertTrue(activity.hasAction());
|
||||||
assertTrue(activity.isHomeActivity());
|
assertTrue(activity.isHomeActivity());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertEquals(Activity lhs, Activity rhs) {
|
private void assertEquals(Activity lhs, Activity rhs) {
|
||||||
assertTrue(lhs == rhs || (lhs != null && rhs != null));
|
assertTrue(lhs == rhs || (lhs != null && rhs != null));
|
||||||
if (lhs != null && rhs != null) {
|
if (lhs != null && rhs != null) {
|
||||||
@@ -93,7 +95,7 @@ public class AndroidManifestParserTest extends TestCase {
|
|||||||
|
|
||||||
public void testGetUsesLibraries() {
|
public void testGetUsesLibraries() {
|
||||||
assertEquals(1, mManifestTestApp.getUsesLibraries().length);
|
assertEquals(1, mManifestTestApp.getUsesLibraries().length);
|
||||||
assertEquals(LIBRARY_NAME, mManifestTestApp.getUsesLibraries()[0]);
|
assertEquals(LIBRARY_NAME, mManifestTestApp.getUsesLibraries()[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetPackageName() {
|
public void testGetPackageName() {
|
||||||
|
|||||||
@@ -17,9 +17,6 @@
|
|||||||
package com.android.ide.eclipse.adt.internal.resources;
|
package com.android.ide.eclipse.adt.internal.resources;
|
||||||
|
|
||||||
|
|
||||||
import com.android.ide.eclipse.adt.internal.resources.AttrsXmlParser;
|
|
||||||
import com.android.ide.eclipse.adt.internal.resources.DeclareStyleableInfo;
|
|
||||||
import com.android.ide.eclipse.adt.internal.resources.ViewClassInfo;
|
|
||||||
import com.android.ide.eclipse.adt.internal.resources.DeclareStyleableInfo.AttributeInfo;
|
import com.android.ide.eclipse.adt.internal.resources.DeclareStyleableInfo.AttributeInfo;
|
||||||
import com.android.ide.eclipse.adt.internal.resources.DeclareStyleableInfo.AttributeInfo.Format;
|
import com.android.ide.eclipse.adt.internal.resources.DeclareStyleableInfo.AttributeInfo.Format;
|
||||||
import com.android.ide.eclipse.tests.AdtTestData;
|
import com.android.ide.eclipse.tests.AdtTestData;
|
||||||
@@ -32,20 +29,23 @@ import java.util.Map;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
public class AttrsXmlParserTest extends TestCase {
|
public class AttrsXmlParserTest extends TestCase {
|
||||||
|
|
||||||
private AttrsXmlParser mParser;
|
private AttrsXmlParser mParser;
|
||||||
private String mFilePath;
|
private String mFilePath;
|
||||||
|
|
||||||
|
private static final String MOCK_DATA_PATH =
|
||||||
|
"com/android/ide/eclipse/testdata/mock_attrs.xml"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
mFilePath = AdtTestData.getInstance().getTestFilePath("mock_attrs.xml"); //$NON-NLS-1$
|
mFilePath = AdtTestData.getInstance().getTestFilePath(MOCK_DATA_PATH); //$NON-NLS-1$
|
||||||
mParser = new AttrsXmlParser(mFilePath);
|
mParser = new AttrsXmlParser(mFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGetDocument() throws Exception {
|
public final void testGetDocument() throws Exception {
|
||||||
assertNotNull(_getDocument());
|
assertNotNull(_getDocument());
|
||||||
}
|
}
|
||||||
@@ -53,12 +53,12 @@ public class AttrsXmlParserTest extends TestCase {
|
|||||||
public void testGetOsAttrsXmlPath() throws Exception {
|
public void testGetOsAttrsXmlPath() throws Exception {
|
||||||
assertEquals(mFilePath, mParser.getOsAttrsXmlPath());
|
assertEquals(mFilePath, mParser.getOsAttrsXmlPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testPreload() throws Exception {
|
public final void testPreload() throws Exception {
|
||||||
assertSame(mParser, mParser.preload());
|
assertSame(mParser, mParser.preload());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public final void testLoadViewAttributes() throws Exception {
|
public final void testLoadViewAttributes() throws Exception {
|
||||||
mParser.preload();
|
mParser.preload();
|
||||||
ViewClassInfo info = new ViewClassInfo(
|
ViewClassInfo info = new ViewClassInfo(
|
||||||
@@ -66,7 +66,7 @@ public class AttrsXmlParserTest extends TestCase {
|
|||||||
"mock_android.something.Theme", //$NON-NLS-1$
|
"mock_android.something.Theme", //$NON-NLS-1$
|
||||||
"Theme"); //$NON-NLS-1$
|
"Theme"); //$NON-NLS-1$
|
||||||
mParser.loadViewAttributes(info);
|
mParser.loadViewAttributes(info);
|
||||||
|
|
||||||
assertEquals("These are the standard attributes that make up a complete theme.", //$NON-NLS-1$
|
assertEquals("These are the standard attributes that make up a complete theme.", //$NON-NLS-1$
|
||||||
info.getJavaDoc());
|
info.getJavaDoc());
|
||||||
AttributeInfo[] attrs = info.getAttributes();
|
AttributeInfo[] attrs = info.getAttributes();
|
||||||
@@ -75,7 +75,7 @@ public class AttrsXmlParserTest extends TestCase {
|
|||||||
assertEquals(1, info.getAttributes()[0].getFormats().length);
|
assertEquals(1, info.getAttributes()[0].getFormats().length);
|
||||||
assertEquals(Format.DIMENSION, info.getAttributes()[0].getFormats()[0]);
|
assertEquals(Format.DIMENSION, info.getAttributes()[0].getFormats()[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testEnumFlagValues() throws Exception {
|
public final void testEnumFlagValues() throws Exception {
|
||||||
/* The XML being read contains:
|
/* The XML being read contains:
|
||||||
<!-- Standard orientation constant. -->
|
<!-- Standard orientation constant. -->
|
||||||
@@ -90,32 +90,32 @@ public class AttrsXmlParserTest extends TestCase {
|
|||||||
mParser.preload();
|
mParser.preload();
|
||||||
Map<String, Map<String, Integer>> attrMap = mParser.getEnumFlagValues();
|
Map<String, Map<String, Integer>> attrMap = mParser.getEnumFlagValues();
|
||||||
assertTrue(attrMap.containsKey("orientation"));
|
assertTrue(attrMap.containsKey("orientation"));
|
||||||
|
|
||||||
Map<String, Integer> valueMap = attrMap.get("orientation");
|
Map<String, Integer> valueMap = attrMap.get("orientation");
|
||||||
assertTrue(valueMap.containsKey("horizontal"));
|
assertTrue(valueMap.containsKey("horizontal"));
|
||||||
assertTrue(valueMap.containsKey("vertical"));
|
assertTrue(valueMap.containsKey("vertical"));
|
||||||
assertEquals(Integer.valueOf(0), valueMap.get("horizontal"));
|
assertEquals(Integer.valueOf(0), valueMap.get("horizontal"));
|
||||||
assertEquals(Integer.valueOf(1), valueMap.get("vertical"));
|
assertEquals(Integer.valueOf(1), valueMap.get("vertical"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testDeprecated() throws Exception {
|
public final void testDeprecated() throws Exception {
|
||||||
mParser.preload();
|
mParser.preload();
|
||||||
|
|
||||||
DeclareStyleableInfo dep = mParser.getDeclareStyleableList().get("DeprecatedTest");
|
DeclareStyleableInfo dep = mParser.getDeclareStyleableList().get("DeprecatedTest");
|
||||||
assertNotNull(dep);
|
assertNotNull(dep);
|
||||||
|
|
||||||
AttributeInfo[] attrs = dep.getAttributes();
|
AttributeInfo[] attrs = dep.getAttributes();
|
||||||
assertEquals(4, attrs.length);
|
assertEquals(4, attrs.length);
|
||||||
|
|
||||||
assertEquals("deprecated-inline", attrs[0].getName());
|
assertEquals("deprecated-inline", attrs[0].getName());
|
||||||
assertEquals("In-line deprecated.", attrs[0].getDeprecatedDoc());
|
assertEquals("In-line deprecated.", attrs[0].getDeprecatedDoc());
|
||||||
assertEquals("Deprecated comments using delimiters.", attrs[0].getJavaDoc());
|
assertEquals("Deprecated comments using delimiters.", attrs[0].getJavaDoc());
|
||||||
|
|
||||||
assertEquals("deprecated-multiline", attrs[1].getName());
|
assertEquals("deprecated-multiline", attrs[1].getName());
|
||||||
assertEquals("Multi-line version of deprecated that works till the next tag.",
|
assertEquals("Multi-line version of deprecated that works till the next tag.",
|
||||||
attrs[1].getDeprecatedDoc());
|
attrs[1].getDeprecatedDoc());
|
||||||
assertEquals("Deprecated comments on their own line.", attrs[1].getJavaDoc());
|
assertEquals("Deprecated comments on their own line.", attrs[1].getJavaDoc());
|
||||||
|
|
||||||
assertEquals("deprecated-not", attrs[2].getName());
|
assertEquals("deprecated-not", attrs[2].getName());
|
||||||
assertEquals(null, attrs[2].getDeprecatedDoc());
|
assertEquals(null, attrs[2].getDeprecatedDoc());
|
||||||
assertEquals("This attribute is not deprecated.", attrs[2].getJavaDoc());
|
assertEquals("This attribute is not deprecated.", attrs[2].getJavaDoc());
|
||||||
@@ -126,7 +126,7 @@ public class AttrsXmlParserTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//---- access to private methods
|
//---- access to private methods
|
||||||
|
|
||||||
private Document _getDocument() throws Exception {
|
private Document _getDocument() throws Exception {
|
||||||
Method method = AttrsXmlParser.class.getDeclaredMethod("getDocument"); //$NON-NLS-1$
|
Method method = AttrsXmlParser.class.getDeclaredMethod("getDocument"); //$NON-NLS-1$
|
||||||
method.setAccessible(true);
|
method.setAccessible(true);
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ public class AndroidJarLoaderTest extends TestCase {
|
|||||||
/** Creates an instance of {@link AndroidJarLoader} on our test data JAR */
|
/** Creates an instance of {@link AndroidJarLoader} on our test data JAR */
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
String jarfilePath = AdtTestData.getInstance().getTestFilePath("jar_example.jar"); //$NON-NLS-1$
|
String jarfilePath = AdtTestData.getInstance().getTestFilePath(
|
||||||
|
"com/android/ide/eclipse/testdata/jar_example.jar"); //$NON-NLS-1$
|
||||||
mFrameworkClassLoader = new AndroidJarLoader(jarfilePath);
|
mFrameworkClassLoader = new AndroidJarLoader(jarfilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,15 +19,12 @@ package com.android.ide.eclipse.adt.internal.sdk;
|
|||||||
import com.android.ide.eclipse.adt.internal.resources.AttrsXmlParser;
|
import com.android.ide.eclipse.adt.internal.resources.AttrsXmlParser;
|
||||||
import com.android.ide.eclipse.adt.internal.resources.ViewClassInfo;
|
import com.android.ide.eclipse.adt.internal.resources.ViewClassInfo;
|
||||||
import com.android.ide.eclipse.adt.internal.resources.ViewClassInfo.LayoutParamsInfo;
|
import com.android.ide.eclipse.adt.internal.resources.ViewClassInfo.LayoutParamsInfo;
|
||||||
import com.android.ide.eclipse.adt.internal.sdk.AndroidJarLoader;
|
|
||||||
import com.android.ide.eclipse.adt.internal.sdk.AndroidTargetParser;
|
|
||||||
import com.android.ide.eclipse.adt.internal.sdk.LayoutParamsParser;
|
|
||||||
import com.android.ide.eclipse.adt.internal.sdk.AndroidJarLoader.ClassWrapper;
|
import com.android.ide.eclipse.adt.internal.sdk.AndroidJarLoader.ClassWrapper;
|
||||||
import com.android.ide.eclipse.adt.internal.sdk.IAndroidClassLoader.IClassDescriptor;
|
import com.android.ide.eclipse.adt.internal.sdk.IAndroidClassLoader.IClassDescriptor;
|
||||||
|
import com.android.ide.eclipse.tests.AdtTestData;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
@@ -36,7 +33,7 @@ import junit.framework.TestCase;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the inner private methods of PlatformDataParser.
|
* Test the inner private methods of PlatformDataParser.
|
||||||
*
|
*
|
||||||
* Convention: method names that start with an underscore are actually local wrappers
|
* Convention: method names that start with an underscore are actually local wrappers
|
||||||
* that call private methods from {@link AndroidTargetParser} using reflection.
|
* that call private methods from {@link AndroidTargetParser} using reflection.
|
||||||
* This is inspired by the Python coding rule which mandates underscores prefixes for
|
* This is inspired by the Python coding rule which mandates underscores prefixes for
|
||||||
@@ -44,30 +41,26 @@ import junit.framework.TestCase;
|
|||||||
*/
|
*/
|
||||||
public class LayoutParamsParserTest extends TestCase {
|
public class LayoutParamsParserTest extends TestCase {
|
||||||
|
|
||||||
|
private static final String MOCK_DATA_PATH =
|
||||||
|
"com/android/ide/eclipse/testdata/mock_attrs.xml"; //$NON-NLS-1$
|
||||||
|
|
||||||
private static class MockFrameworkClassLoader extends AndroidJarLoader {
|
private static class MockFrameworkClassLoader extends AndroidJarLoader {
|
||||||
MockFrameworkClassLoader() {
|
MockFrameworkClassLoader() {
|
||||||
super(null /* osFrameworkLocation */);
|
super(null /* osFrameworkLocation */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<String, ArrayList<IClassDescriptor>> findClassesDerivingFrom(
|
public HashMap<String, ArrayList<IClassDescriptor>> findClassesDerivingFrom(
|
||||||
String rootPackage, String[] superClasses) throws ClassFormatError {
|
String rootPackage, String[] superClasses) throws ClassFormatError {
|
||||||
return new HashMap<String, ArrayList<IClassDescriptor>>();
|
return new HashMap<String, ArrayList<IClassDescriptor>>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class MockAttrsXmlPath {
|
|
||||||
public String getPath() {
|
|
||||||
ClassLoader cl = this.getClass().getClassLoader();
|
|
||||||
URL res = cl.getResource("data/mock_attrs.xml"); //$NON-NLS-1$
|
|
||||||
return res.getFile();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class MockLayoutParamsParser extends LayoutParamsParser {
|
private static class MockLayoutParamsParser extends LayoutParamsParser {
|
||||||
public MockLayoutParamsParser() {
|
public MockLayoutParamsParser() {
|
||||||
super(new MockFrameworkClassLoader(),
|
super(new MockFrameworkClassLoader(),
|
||||||
new AttrsXmlParser(new MockAttrsXmlPath().getPath()).preload());
|
new AttrsXmlParser(
|
||||||
|
AdtTestData.getInstance().getTestFilePath(MOCK_DATA_PATH)).preload());
|
||||||
|
|
||||||
mTopViewClass = new ClassWrapper(mock_android.view.View.class);
|
mTopViewClass = new ClassWrapper(mock_android.view.View.class);
|
||||||
mTopGroupClass = new ClassWrapper(mock_android.view.ViewGroup.class);
|
mTopGroupClass = new ClassWrapper(mock_android.view.ViewGroup.class);
|
||||||
@@ -82,7 +75,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private MockLayoutParamsParser mParser;
|
private MockLayoutParamsParser mParser;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
mParser = new MockLayoutParamsParser();
|
mParser = new MockLayoutParamsParser();
|
||||||
@@ -91,7 +84,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
@Override
|
@Override
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testFindLayoutParams() throws Exception {
|
public final void testFindLayoutParams() throws Exception {
|
||||||
assertEquals(mock_android.view.ViewGroup.LayoutParams.class,
|
assertEquals(mock_android.view.ViewGroup.LayoutParams.class,
|
||||||
((ClassWrapper)_findLayoutParams(mock_android.view.ViewGroup.class)).wrappedClass());
|
((ClassWrapper)_findLayoutParams(mock_android.view.ViewGroup.class)).wrappedClass());
|
||||||
@@ -102,7 +95,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
assertEquals(mock_android.widget.TableLayout.LayoutParams.class,
|
assertEquals(mock_android.widget.TableLayout.LayoutParams.class,
|
||||||
((ClassWrapper)_findLayoutParams(mock_android.widget.TableLayout.class)).wrappedClass());
|
((ClassWrapper)_findLayoutParams(mock_android.widget.TableLayout.class)).wrappedClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGetLayoutParamsInfo() throws Exception {
|
public final void testGetLayoutParamsInfo() throws Exception {
|
||||||
LayoutParamsInfo info1 = _getLayoutParamsInfo(
|
LayoutParamsInfo info1 = _getLayoutParamsInfo(
|
||||||
mock_android.view.ViewGroup.LayoutParams.class);
|
mock_android.view.ViewGroup.LayoutParams.class);
|
||||||
@@ -115,7 +108,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
assertNotNull(info2);
|
assertNotNull(info2);
|
||||||
// LinearLayout.LayoutData links to ViewGroup.LayoutParams
|
// LinearLayout.LayoutData links to ViewGroup.LayoutParams
|
||||||
assertSame(info1, info2.getSuperClass());
|
assertSame(info1, info2.getSuperClass());
|
||||||
|
|
||||||
LayoutParamsInfo info3 = _getLayoutParamsInfo(
|
LayoutParamsInfo info3 = _getLayoutParamsInfo(
|
||||||
mock_android.widget.TableLayout.LayoutParams.class);
|
mock_android.widget.TableLayout.LayoutParams.class);
|
||||||
assertNotNull(info3);
|
assertNotNull(info3);
|
||||||
@@ -124,7 +117,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
assertNotSame(info1, info3.getSuperClass());
|
assertNotSame(info1, info3.getSuperClass());
|
||||||
assertNotSame(info2, info3.getSuperClass());
|
assertNotSame(info2, info3.getSuperClass());
|
||||||
// TableLayout.LayoutParams => ViewGroup.MarginLayoutParams => ViewGroup.LayoutParams
|
// TableLayout.LayoutParams => ViewGroup.MarginLayoutParams => ViewGroup.LayoutParams
|
||||||
assertSame(info1, info3.getSuperClass().getSuperClass());
|
assertSame(info1, info3.getSuperClass().getSuperClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGetLayoutClasses() throws Exception {
|
public final void testGetLayoutClasses() throws Exception {
|
||||||
@@ -132,7 +125,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//---- access to private methods
|
//---- access to private methods
|
||||||
|
|
||||||
/** Calls the private constructor of the parser */
|
/** Calls the private constructor of the parser */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private AndroidTargetParser _Constructor(String osJarPath) throws Exception {
|
private AndroidTargetParser _Constructor(String osJarPath) throws Exception {
|
||||||
@@ -141,7 +134,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
constructor.setAccessible(true);
|
constructor.setAccessible(true);
|
||||||
return constructor.newInstance(osJarPath);
|
return constructor.newInstance(osJarPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** calls the private getLayoutClasses() of the parser */
|
/** calls the private getLayoutClasses() of the parser */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private void _getLayoutClasses() throws Exception {
|
private void _getLayoutClasses() throws Exception {
|
||||||
@@ -149,7 +142,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
method.setAccessible(true);
|
method.setAccessible(true);
|
||||||
method.invoke(mParser);
|
method.invoke(mParser);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** calls the private addGroup() of the parser */
|
/** calls the private addGroup() of the parser */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private ViewClassInfo _addGroup(Class<?> groupClass) throws Exception {
|
private ViewClassInfo _addGroup(Class<?> groupClass) throws Exception {
|
||||||
@@ -175,7 +168,7 @@ public class LayoutParamsParserTest extends TestCase {
|
|||||||
method.setAccessible(true);
|
method.setAccessible(true);
|
||||||
return (LayoutParamsInfo) method.invoke(mParser, new ClassWrapper(layoutParamsClass));
|
return (LayoutParamsInfo) method.invoke(mParser, new ClassWrapper(layoutParamsClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** calls the private findLayoutParams() of the parser */
|
/** calls the private findLayoutParams() of the parser */
|
||||||
private IClassDescriptor _findLayoutParams(Class<?> groupClass) throws Exception {
|
private IClassDescriptor _findLayoutParams(Class<?> groupClass) throws Exception {
|
||||||
Method method = LayoutParamsParser.class.getDeclaredMethod("findLayoutParams", //$NON-NLS-1$
|
Method method = LayoutParamsParser.class.getDeclaredMethod("findLayoutParams", //$NON-NLS-1$
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.7 KiB |
@@ -1,49 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
android:id="@+id/bouton"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="My Button Text"
|
|
||||||
>
|
|
||||||
</Button>
|
|
||||||
<View
|
|
||||||
android:id="@+id/surface"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:layout_weight="2"
|
|
||||||
/>
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/status"
|
|
||||||
android:paddingLeft="2dip"
|
|
||||||
android:layout_weight="0"
|
|
||||||
android:background="@drawable/black"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:lines="1"
|
|
||||||
android:gravity="center_vertical|center_horizontal"
|
|
||||||
android:text="My TextView Text"
|
|
||||||
/>
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package com.android.sdklib.repository;
|
package com.android.sdklib.repository;
|
||||||
|
|
||||||
import com.android.ide.eclipse.tests.AdtTestData;
|
|
||||||
|
|
||||||
import org.xml.sax.ErrorHandler;
|
import org.xml.sax.ErrorHandler;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
import org.xml.sax.SAXParseException;
|
import org.xml.sax.SAXParseException;
|
||||||
@@ -125,8 +123,9 @@ public class TestSdkRepository extends TestCase {
|
|||||||
|
|
||||||
/** Validate a valid sample using an InputStream */
|
/** Validate a valid sample using an InputStream */
|
||||||
public void testValidateLocalRepositoryFile() throws Exception {
|
public void testValidateLocalRepositoryFile() throws Exception {
|
||||||
InputStream xmlStream = AdtTestData.getInstance().getTestFileStream(
|
InputStream xmlStream =
|
||||||
"repository_sample.xml");
|
this.getClass().getClassLoader().getResourceAsStream(
|
||||||
|
"com/android/sdklib/testdata/repository_sample.xml");
|
||||||
Source source = new StreamSource(xmlStream);
|
Source source = new StreamSource(xmlStream);
|
||||||
|
|
||||||
CaptureErrorHandler handler = new CaptureErrorHandler();
|
CaptureErrorHandler handler = new CaptureErrorHandler();
|
||||||
|
|||||||
Reference in New Issue
Block a user