Commit 94169be6 authored by Narayan Kamath's avatar Narayan Kamath Committed by Android Git Automerger
Browse files

am 3eb44e34: Merge "Delete ContentHandlerFactoryTest." into lmp-sprout-dev

* commit '3eb44e34':
  Delete ContentHandlerFactoryTest.
parents 5ecf32db 3eb44e34
......@@ -141,13 +141,6 @@
"libcore.java.net.OldURLClassLoaderTest#test_findResourceLjava_lang_String"
]
},
{
description: "This test affects tests that are run after this one due to caching in URLConnection.",
result: EXEC_FAILED,
names: [
"org.apache.harmony.luni.tests.java.net.ContentHandlerFactoryTest#test_createContentHandler"
]
},
{
description: "Causes OutOfMemoryError to test finalization",
result: EXEC_FAILED,
......
package org.apache.harmony.luni.tests.java.net;
import junit.framework.TestCase;
import tests.support.Support_Configuration;
import java.io.IOException;
import java.lang.reflect.Field;
import java.net.ContentHandler;
import java.net.ContentHandlerFactory;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class ContentHandlerFactoryTest extends TestCase {
ContentHandlerFactory oldFactory = null;
Field factoryField = null;
boolean isTestable = false;
boolean isGetContentCalled = false;
boolean isCreateContentHandlerCalled = false;
// SideEffect: This test affects tests that are run after this one.
// The reason are side effects due to caching in URLConnection.
// Maybe this test needs to be run in isolation.
public void test_createContentHandler() throws IOException {
TestContentHandlerFactory factory = new TestContentHandlerFactory();
if(isTestable) {
assertFalse(isCreateContentHandlerCalled);
URL url = new URL("http://" +
Support_Configuration.SpecialInetTestAddress);
URLConnection.setContentHandlerFactory(factory);
URLConnection con = url.openConnection();
try {
con.getContent();
assertTrue(isCreateContentHandlerCalled);
assertTrue(isGetContentCalled);
} catch (Exception e) {
throw new RuntimeException(e);
}
isGetContentCalled = false;
try {
con.getContent(new Class[] {});
assertTrue(isGetContentCalled);
} catch (Exception e) {
throw new RuntimeException(e);
}
try {
con.setContentHandlerFactory(factory);
fail("java.lang.Error was not thrown.");
} catch(java.lang.Error e) {
//expected
}
try {
con.setContentHandlerFactory(null);
fail("java.lang.Error was not thrown.");
} catch(java.lang.Error e) {
//expected
}
} else {
ContentHandler ch = factory.createContentHandler("text/plain");
URL url;
try {
url = new URL("http://" +
Support_Configuration.SpecialInetTestAddress);
assertNotNull(ch.getContent(url.openConnection()));
} catch (MalformedURLException e) {
fail("MalformedURLException was thrown: " + e.getMessage());
} catch (IOException e) {
fail("IOException was thrown.");
}
}
}
public void setUp() {
Field [] fields = URLConnection.class.getDeclaredFields();
int counter = 0;
for (Field field : fields) {
if (ContentHandlerFactory.class.equals(field.getType())) {
counter++;
factoryField = field;
}
}
if(counter == 1) {
isTestable = true;
factoryField.setAccessible(true);
try {
oldFactory = (ContentHandlerFactory) factoryField.get(null);
} catch (IllegalArgumentException e) {
fail("IllegalArgumentException was thrown during setUp: "
+ e.getMessage());
} catch (IllegalAccessException e) {
fail("IllegalAccessException was thrown during setUp: "
+ e.getMessage());
}
}
}
public void tearDown() {
if(isTestable) {
try {
factoryField.set(null, oldFactory);
} catch (IllegalArgumentException e) {
fail("IllegalArgumentException was thrown during tearDown: "
+ e.getMessage());
} catch (IllegalAccessException e) {
fail("IllegalAccessException was thrown during tearDown: "
+ e.getMessage());
}
}
}
public class TestContentHandler extends ContentHandler {
public Object getContent(URLConnection u) {
isGetContentCalled = true;
return null;
}
}
public class TestContentHandlerFactory implements ContentHandlerFactory {
public ContentHandler createContentHandler(String mimetype) {
isCreateContentHandlerCalled = true;
return new TestContentHandler();
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment