A new hygenic way for tests to clean up before or after execution.
This replaces PrefsTester and is more general purpose.
diff --git a/libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java b/libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java
index 146c679..fb326a6 100644
--- a/libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java
+++ b/libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java
@@ -23,6 +23,7 @@
import dalvik.annotation.TestTargetNew;
import tests.support.Support_PlatformFile;
import tests.support.resource.Support_Resources;
+import tests.util.TestEnvironment;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -142,7 +143,6 @@
args = {java.lang.String.class}
)
public void test_ConstructorLjava_lang_String() throws IOException {
- String oldUserDir = System.getProperty("user.dir");
System.setProperty("user.dir", System.getProperty("java.io.tmpdir"));
zfile.close(); // about to reopen the same temp file
@@ -167,7 +167,6 @@
// expected
} finally {
System.setSecurityManager(oldSm);
- System.setProperty("user.dir", oldUserDir);
}
}
@@ -583,6 +582,7 @@
*/
@Override
protected void tearDown() {
+ TestEnvironment.reset();
try {
if (zfile != null) {
// Note zfile is a user-defined zip file used by other tests and
diff --git a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/CipherTest.java b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/CipherTest.java
index 1245eb3..c7c1a5d 100644
--- a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/CipherTest.java
+++ b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/CipherTest.java
@@ -25,6 +25,7 @@
import org.apache.harmony.crypto.tests.support.MyCipher;
import tests.support.resource.Support_Resources;
+import tests.util.TestEnvironment;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -86,7 +87,12 @@
fail("No key " + e);
}
}
-
+
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
/**
* @tests javax.crypto.Cipher#getInstance(java.lang.String)
*/
diff --git a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/EncryptedPrivateKeyInfoTest.java b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/EncryptedPrivateKeyInfoTest.java
index d3d0857..63ed789 100644
--- a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/EncryptedPrivateKeyInfoTest.java
+++ b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/EncryptedPrivateKeyInfoTest.java
@@ -57,6 +57,7 @@
import org.apache.harmony.crypto.tests.support.EncryptedPrivateKeyInfoData;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
@TestTargetClass(EncryptedPrivateKeyInfo.class)
/**
@@ -195,7 +196,12 @@
// {"RSA",null}, // 1.2.840.113549.1.1.1
// {"1.2.840.113549.1.1.1", null},
};
-
+
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
diff --git a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherAesWrapTest.java b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherAesWrapTest.java
index d196edc..a5d8d90 100644
--- a/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherAesWrapTest.java
+++ b/libcore/crypto/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherAesWrapTest.java
@@ -22,10 +22,17 @@
import junit.framework.TestCase;
import targets.Cipher;
+import tests.util.TestEnvironment;
@TestTargetClass(Cipher.AESWrap.class)
public class CipherAesWrapTest extends TestCase {
-// 3 cases checked
+
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
+ // 3 cases checked
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
diff --git a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FileHandlerTest.java b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FileHandlerTest.java
index 3ff1fc9..e4ef413 100644
--- a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FileHandlerTest.java
+++ b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FileHandlerTest.java
@@ -50,6 +50,7 @@
import org.apache.harmony.logging.tests.java.util.logging.HandlerTest.NullOutputStream;
import org.apache.harmony.logging.tests.java.util.logging.util.EnvironmentHelper;
+import tests.util.TestEnvironment;
/**
*/
@@ -62,18 +63,11 @@
final static String className = FileHandlerTest.class.getName();
- final static StringWriter writer = new StringWriter();
-
- final static SecurityManager securityManager = new MockLogSecurityManager();
-
final static String SEP = File.separator;
- private String oldHomePath = System.getProperty("user.home");
-
- // The HOMEPATH can't be used in android.
- final static String HOMEPATH = System.getProperty("java.io.tmpdir") + SEP + "home";
+ String HOMEPATH;
- final static String TEMPPATH = System.getProperty("java.io.tmpdir");
+ String TEMPPATH;
private final PrintStream err = System.err;
@@ -88,6 +82,7 @@
*/
protected void setUp() throws Exception {
super.setUp();
+ TestEnvironment.reset();
manager.reset();
//initProp
@@ -106,19 +101,10 @@
props.put("java.util.logging.FileHandler.append", "true");
props.put("java.util.logging.FileHandler.pattern",
"%t/log/java%u.test");
-
- File home = new File(HOMEPATH);
- if (!home.exists()) {
- home.mkdirs();
- } else if (!home.isDirectory()) {
- home.delete();
- home.mkdirs();
- }
- if(!home.isDirectory()) {
- fail("unable to create temp path");
- }
- System.setProperty("user.home", HOMEPATH);
-
+
+ HOMEPATH = System.getProperty("user.home");
+ TEMPPATH = System.getProperty("java.io.tmpdir");
+
File file = new File(TEMPPATH + SEP + "log");
file.mkdir();
manager.readConfiguration(EnvironmentHelper
@@ -140,8 +126,7 @@
}
reset(TEMPPATH + SEP + "log", "");
System.setErr(err);
- System.setProperty("user.home", oldHomePath);
- new File(HOMEPATH).delete();
+ TestEnvironment.reset();
super.tearDown();
}
@@ -634,8 +619,6 @@
assertFileContent(TEMPPATH, "testLimitCount0.0",
new LogRecord[] { rs[9] }, handler.getFormatter());
- String oldUserDir = System.getProperty("user.dir");
- System.setProperty("user.dir", System.getProperty("java.io.tmpdir"));
FileHandler h1 = null;
FileHandler h2 = null;
try {
@@ -656,7 +639,6 @@
} catch (Exception e) {
}
reset("log", "");
- System.setProperty("user.dir", oldUserDir);
}
}
@TestTargets({
@@ -1000,14 +982,6 @@
fail("should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
-
- // always parse special pattern
- System.setProperty("user.home", "home");
- try {
- h1 = new FileHandler("%t/%h.txt");
- } catch (Exception e) {
- fail("Unexpected exception " + e.toString());
- }
}
/*
diff --git a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java
index cf608bc..44389be 100644
--- a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java
+++ b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java
@@ -45,6 +45,7 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
+import tests.util.TestEnvironment;
/**
*
@@ -107,6 +108,7 @@
*/
@Override
protected void tearDown() throws Exception {
+ TestEnvironment.reset();
super.tearDown();
handler = null;
}
@@ -1194,24 +1196,17 @@
args = {}
)
public void testValidConfigClass() throws Exception {
- String oldProperty = System.getProperty("java.util.logging.config.class");
- try {
- // System.setProperty("java.util.logging.config.class", "org.apache.harmony.logging.tests.java.util.logging.LogManagerTest$ConfigClass");
- System.setProperty("java.util.logging.config.class", this.getClass().getName()
- + "$ConfigClass");
- assertNull(manager.getLogger("testConfigClass.foo"));
+ // System.setProperty("java.util.logging.config.class", "org.apache.harmony.logging.tests.java.util.logging.LogManagerTest$ConfigClass");
+ System.setProperty("java.util.logging.config.class", this.getClass().getName()
+ + "$ConfigClass");
+ assertNull(manager.getLogger("testConfigClass.foo"));
- manager.readConfiguration();
- assertNull(manager.getLogger("testConfigClass.foo"));
- Logger l = Logger.getLogger("testConfigClass.foo.child");
- assertSame(Level.FINEST, manager.getLogger("").getLevel());
- assertEquals(0, manager.getLogger("").getHandlers().length);
- assertEquals("testConfigClass.foo", l.getParent().getName());
- } finally {
- if (oldProperty != null) {
- System.setProperty("java.util.logging.config.class", oldProperty);
- }
- }
+ manager.readConfiguration();
+ assertNull(manager.getLogger("testConfigClass.foo"));
+ Logger l = Logger.getLogger("testConfigClass.foo.child");
+ assertSame(Level.FINEST, manager.getLogger("").getLevel());
+ assertEquals(0, manager.getLogger("").getHandlers().length);
+ assertEquals("testConfigClass.foo", l.getParent().getName());
}
/*
diff --git a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
index 5b21099..6d4f784 100644
--- a/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
+++ b/libcore/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
@@ -295,7 +295,7 @@
assertNull(lr.getSourceClassName());
// find class and method who called logger
- Logger logger = Logger.global;
+ Logger logger = Logger.getLogger("testGetSourceDefaultValue");
MockHandler handler = new MockHandler();
logger.addHandler(handler);
logger.log(Level.SEVERE, MSG);
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
index 275ea9d..e26cf74 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java
@@ -25,6 +25,7 @@
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
@@ -99,19 +100,6 @@
// Proxy authentication required response code
private static final int AUTHENTICATION_REQUIRED_CODE = 407;
- // fields keeping the system values of corresponding properties
- private static String systemKeyStoreType;
-
- private static String systemKeyStore;
-
- private static String systemKeyStorePassword;
-
- private static String systemTrustStoreType;
-
- private static String systemTrustStore;
-
- private static String systemTrustStorePassword;
-
private static File store;
static {
@@ -136,19 +124,14 @@
// set up the properties defining the default values needed by SSL stuff
setUpStoreProperties();
- try {
- SSLSocketFactory defaultSSLSF = HttpsURLConnection
- .getDefaultSSLSocketFactory();
- ServerSocket ss = new ServerSocket(0);
- Socket s = defaultSSLSF
- .createSocket("localhost", ss.getLocalPort());
- ss.accept();
- s.close();
- ss.close();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ SSLSocketFactory defaultSSLSF = HttpsURLConnection
+ .getDefaultSSLSocketFactory();
+ ServerSocket ss = new ServerSocket(0);
+ Socket s = defaultSSLSF
+ .createSocket("localhost", ss.getLocalPort());
+ ss.accept();
+ s.close();
+ ss.close();
}
/**
@@ -171,33 +154,28 @@
// set up the properties defining the default values needed by SSL stuff
setUpStoreProperties();
- try {
- // create the SSL server socket acting as a server
- SSLContext ctx = getContext();
- ServerSocket ss = ctx.getServerSocketFactory()
- .createServerSocket(0);
+ // create the SSL server socket acting as a server
+ SSLContext ctx = getContext();
+ ServerSocket ss = ctx.getServerSocketFactory()
+ .createServerSocket(0);
- // create the HostnameVerifier to check hostname verification
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check hostname verification
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- // create url connection to be tested
- URL url = new URL("https://localhost:" + ss.getLocalPort());
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection();
+ // create url connection to be tested
+ URL url = new URL("https://localhost:" + ss.getLocalPort());
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection();
- // perform the interaction between the peers
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ // perform the interaction between the peers
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- // check the connection state
- checkConnectionStateParameters(connection, peerSocket);
+ // check the connection state
+ checkConnectionStateParameters(connection, peerSocket);
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // should silently exit
+ connection.connect();
}
/**
@@ -231,37 +209,32 @@
// set up the properties defining the default values needed by SSL stuff
setUpStoreProperties();
+ // create the SSL server socket acting as a server
+ SSLContext ctx = getContext();
+ ServerSocket ss = ctx.getServerSocketFactory()
+ .createServerSocket(0);
+
+ // create the HostnameVerifier to check hostname verification
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+
+ // create url connection to be tested
+ URL url = new URL("https://localhost:" + ss.getLocalPort());
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection();
+
try {
- // create the SSL server socket acting as a server
- SSLContext ctx = getContext();
- ServerSocket ss = ctx.getServerSocketFactory()
- .createServerSocket(0);
-
- // create the HostnameVerifier to check hostname verification
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
-
- // create url connection to be tested
- URL url = new URL("https://localhost:" + ss.getLocalPort());
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection();
-
- try {
- doInteraction(connection, ss, NOT_FOUND_CODE);
- fail("Expected exception was not thrown.");
- } catch (FileNotFoundException e) {
- if (DO_LOG) {
- System.out.println("Expected exception was thrown: "
- + e.getMessage());
- }
+ doInteraction(connection, ss, NOT_FOUND_CODE);
+ fail("Expected exception was not thrown.");
+ } catch (FileNotFoundException e) {
+ if (DO_LOG) {
+ System.out.println("Expected exception was thrown: "
+ + e.getMessage());
}
-
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
}
+
+ // should silently exit
+ connection.connect();
}
/**
@@ -458,39 +431,34 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- SSLServerSocket ss = (SSLServerSocket) getContext()
- .getServerSocketFactory().createServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ SSLServerSocket ss = (SSLServerSocket) getContext()
+ .getServerSocketFactory().createServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- // create HttpsURLConnection to be tested
- URL url = new URL("https://localhost:" + ss.getLocalPort());
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection();
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://localhost:" + ss.getLocalPort());
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection();
- TestHostnameVerifier hnv_late = new TestHostnameVerifier();
- // replace default verifier
- connection.setHostnameVerifier(hnv_late);
+ TestHostnameVerifier hnv_late = new TestHostnameVerifier();
+ // replace default verifier
+ connection.setHostnameVerifier(hnv_late);
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- assertTrue("Hostname verification was not done", hnv_late.verified);
- assertFalse(
- "Hostname verification should not be done by this verifier",
- hnv.verified);
- checkConnectionStateParameters(connection, peerSocket);
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ assertTrue("Hostname verification was not done", hnv_late.verified);
+ assertFalse(
+ "Hostname verification should not be done by this verifier",
+ hnv.verified);
+ checkConnectionStateParameters(connection, peerSocket);
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // should silently exit
+ connection.connect();
}
/**
@@ -509,32 +477,27 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- SSLServerSocket ss = (SSLServerSocket) getContext()
- .getServerSocketFactory().createServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ SSLServerSocket ss = (SSLServerSocket) getContext()
+ .getServerSocketFactory().createServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- // create HttpsURLConnection to be tested
- URL url = new URL("https://localhost:" + ss.getLocalPort());
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection();
- connection.setDoOutput(true);
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://localhost:" + ss.getLocalPort());
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection();
+ connection.setDoOutput(true);
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- checkConnectionStateParameters(connection, peerSocket);
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ checkConnectionStateParameters(connection, peerSocket);
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // should silently exit
+ connection.connect();
}
/**
@@ -566,32 +529,27 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- // create HttpsURLConnection to be tested
- URL url = new URL("https://requested.host:55556/requested.data");
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://requested.host:55556/requested.data");
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- checkConnectionStateParameters(connection, peerSocket);
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ checkConnectionStateParameters(connection, peerSocket);
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // should silently exit
+ connection.connect();
}
/**
@@ -624,40 +582,35 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- Authenticator.setDefault(new Authenticator() {
+ Authenticator.setDefault(new Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication("user", "password"
- .toCharArray());
- }
- });
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication("user", "password"
+ .toCharArray());
+ }
+ });
- // create HttpsURLConnection to be tested
- URL url = new URL("https://requested.host:55555/requested.data");
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://requested.host:55555/requested.data");
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- checkConnectionStateParameters(connection, peerSocket);
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ checkConnectionStateParameters(connection, peerSocket);
- // should silently exit
- connection.connect();
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // should silently exit
+ connection.connect();
}
/**
@@ -692,40 +645,35 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- // create HttpsURLConnection to be tested
- URL url = new URL("https://requested.host:55555/requested.data");
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://requested.host:55555/requested.data");
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
- checkConnectionStateParameters(connection, peerSocket);
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss);
+ checkConnectionStateParameters(connection, peerSocket);
- // create another SSLServerSocket which will be used by server side
- ss = new ServerSocket(0);
+ // create another SSLServerSocket which will be used by server side
+ ss = new ServerSocket(0);
- connection = (HttpsURLConnection) url.openConnection(new Proxy(
- Proxy.Type.HTTP, new InetSocketAddress("localhost", ss
- .getLocalPort())));
+ connection = (HttpsURLConnection) url.openConnection(new Proxy(
+ Proxy.Type.HTTP, new InetSocketAddress("localhost", ss
+ .getLocalPort())));
- // perform the interaction between the peers and check the results
- peerSocket = (SSLSocket) doInteraction(connection, ss);
- checkConnectionStateParameters(connection, peerSocket);
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // perform the interaction between the peers and check the results
+ peerSocket = (SSLSocket) doInteraction(connection, ss);
+ checkConnectionStateParameters(connection, peerSocket);
}
/**
@@ -765,39 +713,34 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
- try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- Authenticator.setDefault(new Authenticator() {
+ Authenticator.setDefault(new Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication("user", "password"
- .toCharArray());
- }
- });
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication("user", "password"
+ .toCharArray());
+ }
+ });
- // create HttpsURLConnection to be tested
- URL url = new URL("https://requested.host:55554/requested.data");
- HttpsURLConnection connection = (HttpsURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
- connection.setDoOutput(true);
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://requested.host:55554/requested.data");
+ HttpsURLConnection connection = (HttpsURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
+ connection.setDoOutput(true);
- // perform the interaction between the peers and check the results
- SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss,
- OK_CODE, true);
- checkConnectionStateParameters(connection, peerSocket);
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
- }
+ // perform the interaction between the peers and check the results
+ SSLSocket peerSocket = (SSLSocket) doInteraction(connection, ss,
+ OK_CODE, true);
+ checkConnectionStateParameters(connection, peerSocket);
}
/**
@@ -830,36 +773,31 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
+
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://requested.host:55555/requested.data");
+ HttpURLConnection connection = (HttpURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
+
+ // perform the interaction between the peers and check the results
try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
-
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
-
- // create HttpsURLConnection to be tested
- URL url = new URL("https://requested.host:55555/requested.data");
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
-
- // perform the interaction between the peers and check the results
- try {
- doInteraction(connection, ss, AUTHENTICATION_REQUIRED_CODE,
- true);
- } catch (IOException e) {
- // SSL Tunnelling failed
- if (DO_LOG) {
- System.out.println("Got expected IOException: "
- + e.getMessage());
- }
+ doInteraction(connection, ss, AUTHENTICATION_REQUIRED_CODE,
+ true);
+ } catch (IOException e) {
+ // SSL Tunnelling failed
+ if (DO_LOG) {
+ System.out.println("Got expected IOException: "
+ + e.getMessage());
}
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
}
}
@@ -893,34 +831,29 @@
// setting up the properties pointing to the key/trust stores
setUpStoreProperties();
+ // create the SSLServerSocket which will be used by server side
+ ServerSocket ss = new ServerSocket(0);
+
+ // create the HostnameVerifier to check that Hostname verification
+ // is done
+ TestHostnameVerifier hnv = new TestHostnameVerifier();
+ HttpsURLConnection.setDefaultHostnameVerifier(hnv);
+
+ // create HttpsURLConnection to be tested
+ URL url = new URL("https://localhost:" + ss.getLocalPort());
+ HttpURLConnection connection = (HttpURLConnection) url
+ .openConnection(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress("localhost", ss
+ .getLocalPort())));
+
try {
- // create the SSLServerSocket which will be used by server side
- ServerSocket ss = new ServerSocket(0);
-
- // create the HostnameVerifier to check that Hostname verification
- // is done
- TestHostnameVerifier hnv = new TestHostnameVerifier();
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
-
- // create HttpsURLConnection to be tested
- URL url = new URL("https://localhost:" + ss.getLocalPort());
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection(new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress("localhost", ss
- .getLocalPort())));
-
- try {
- doInteraction(connection, ss, NOT_FOUND_CODE); // NOT FOUND
- fail("Expected exception was not thrown.");
- } catch (FileNotFoundException e) {
- if (DO_LOG) {
- System.out.println("Expected exception was thrown: "
- + e.getMessage());
- }
+ doInteraction(connection, ss, NOT_FOUND_CODE); // NOT FOUND
+ fail("Expected exception was not thrown.");
+ } catch (FileNotFoundException e) {
+ if (DO_LOG) {
+ System.out.println("Expected exception was thrown: "
+ + e.getMessage());
}
- } finally {
- // roll the properties back to system values
- tearDownStoreProperties();
}
}
@@ -932,6 +865,9 @@
* Log the name of the test case to be executed.
*/
public void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+
if (DO_LOG) {
System.out.println();
System.out.println("------------------------");
@@ -959,6 +895,7 @@
}
public void tearDown() {
+ TestEnvironment.reset();
if (store != null) {
store.delete();
}
@@ -1042,17 +979,6 @@
private static void setUpStoreProperties() throws Exception {
String type = KeyStore.getDefaultType();
- systemKeyStoreType = System.getProperty("javax.net.ssl.keyStoreType");
- systemKeyStore = System.getProperty("javax.net.ssl.keyStore");
- systemKeyStorePassword = System
- .getProperty("javax.net.ssl.keyStorePassword");
-
- systemTrustStoreType = System
- .getProperty("javax.net.ssl.trustStoreType");
- systemTrustStore = System.getProperty("javax.net.ssl.trustStore");
- systemTrustStorePassword = System
- .getProperty("javax.net.ssl.trustStorePassword");
-
System.setProperty("javax.net.ssl.keyStoreType", type);
System.setProperty("javax.net.ssl.keyStore", getKeyStoreFileName());
System.setProperty("javax.net.ssl.keyStorePassword", KS_PASSWORD);
@@ -1063,48 +989,6 @@
}
/**
- * Rolls back the values of system properties.
- */
- private static void tearDownStoreProperties() {
- if (systemKeyStoreType == null) {
- System.clearProperty("javax.net.ssl.keyStoreType");
- } else {
- System
- .setProperty("javax.net.ssl.keyStoreType",
- systemKeyStoreType);
- }
- if (systemKeyStore == null) {
- System.clearProperty("javax.net.ssl.keyStore");
- } else {
- System.setProperty("javax.net.ssl.keyStore", systemKeyStore);
- }
- if (systemKeyStorePassword == null) {
- System.clearProperty("javax.net.ssl.keyStorePassword");
- } else {
- System.setProperty("javax.net.ssl.keyStorePassword",
- systemKeyStorePassword);
- }
-
- if (systemTrustStoreType == null) {
- System.clearProperty("javax.net.ssl.trustStoreType");
- } else {
- System.setProperty("javax.net.ssl.trustStoreType",
- systemTrustStoreType);
- }
- if (systemTrustStore == null) {
- System.clearProperty("javax.net.ssl.trustStore");
- } else {
- System.setProperty("javax.net.ssl.trustStore", systemTrustStore);
- }
- if (systemTrustStorePassword == null) {
- System.clearProperty("javax.net.ssl.trustStorePassword");
- } else {
- System.setProperty("javax.net.ssl.trustStorePassword",
- systemTrustStorePassword);
- }
- }
-
- /**
* Performs interaction between client's HttpURLConnection and
* servers side (ServerSocket).
*/
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
index 84cddf2..53ce506 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/io/FileTest.java
@@ -25,10 +25,21 @@
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import tests.util.TestEnvironment;
@TestTargetClass(File.class)
public class FileTest extends TestCase {
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
/**
* @tests java.io.File#File(java.io.File, java.lang.String)
*/
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/RuntimeTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/RuntimeTest.java
index b1de669..1b61d6f 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/RuntimeTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/RuntimeTest.java
@@ -33,6 +33,7 @@
import java.util.Vector;
import tests.support.resource.Support_Resources;
+import tests.util.TestEnvironment;
@TestTargetClass(Runtime.class)
public class RuntimeTest extends junit.framework.TestCase {
@@ -72,6 +73,11 @@
return new RuntimeTest("FT");
}
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
/**
* @tests java.lang.Runtime#exec(java.lang.String)
*/
@@ -864,7 +870,6 @@
byte[] expected = {72, 0, 101, 0, 97, 0, 114, 0, 116, 0, 32, 0, 60, 47};
byte[] returned = new byte[expected.length];
- String oldEncoding = System.getProperty("file.encoding");
System.setProperty("file.encoding", "UTF-16LE");
try {
@@ -883,8 +888,6 @@
Arrays.equals(expected, returned));
} catch (UnsupportedEncodingException e) {
fail("UnsupportedEncodingException was thrown.");
- } finally {
- System.setProperty("file.encoding", oldEncoding);
}
}
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/SystemTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/SystemTest.java
index f17c3d8..08412d2 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/SystemTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/SystemTest.java
@@ -22,6 +22,7 @@
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetClass;
+import tests.util.TestEnvironment;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -1207,10 +1208,16 @@
@Override
protected void setUp() {
+ TestEnvironment.reset();
flag = false;
ranFinalize = false;
}
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
protected SystemTest createInstance() {
return new SystemTest("FT");
}
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/InetAddressTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/InetAddressTest.java
index 5635ecb..4053271 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/InetAddressTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/InetAddressTest.java
@@ -39,6 +39,7 @@
import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
import tests.support.Support_Configuration;
+import tests.util.TestEnvironment;
@TestTargetClass(InetAddress.class)
public class InetAddressTest extends junit.framework.TestCase {
@@ -49,6 +50,16 @@
protected static String threadedTestErrorString;
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
/**
* This class is used to test inet_ntoa, gethostbyaddr and gethostbyname
* functions in the VM to make sure they're threadsafe. getByName will cause
@@ -391,60 +402,47 @@
}
// Make sure there is no caching
- String originalPropertyValue = System
- .getProperty("networkaddress.cache.ttl");
System.setProperty("networkaddress.cache.ttl", "0");
// Test for threadsafety
- try {
- InetAddress lookup1 = InetAddress
- .getByName(Support_Configuration.InetTestAddress);
- assertTrue(lookup1 + " expected "
- + Support_Configuration.InetTestIP,
- Support_Configuration.InetTestIP.equals(lookup1
- .getHostAddress()));
- InetAddress lookup2 = InetAddress
- .getByName(Support_Configuration.InetTestAddress2);
- assertTrue(lookup2 + " expected "
- + Support_Configuration.InetTestIP2,
- Support_Configuration.InetTestIP2.equals(lookup2
- .getHostAddress()));
- threadsafeTestThread thread1 = new threadsafeTestThread("1",
- lookup1.getHostName(), lookup1, 0);
- threadsafeTestThread thread2 = new threadsafeTestThread("2",
- lookup2.getHostName(), lookup2, 0);
- threadsafeTestThread thread3 = new threadsafeTestThread("3",
- lookup1.getHostAddress(), lookup1, 1);
- threadsafeTestThread thread4 = new threadsafeTestThread("4",
- lookup2.getHostAddress(), lookup2, 1);
+ InetAddress lookup1 = InetAddress
+ .getByName(Support_Configuration.InetTestAddress);
+ assertTrue(lookup1 + " expected "
+ + Support_Configuration.InetTestIP,
+ Support_Configuration.InetTestIP.equals(lookup1
+ .getHostAddress()));
+ InetAddress lookup2 = InetAddress
+ .getByName(Support_Configuration.InetTestAddress2);
+ assertTrue(lookup2 + " expected "
+ + Support_Configuration.InetTestIP2,
+ Support_Configuration.InetTestIP2.equals(lookup2
+ .getHostAddress()));
+ threadsafeTestThread thread1 = new threadsafeTestThread("1",
+ lookup1.getHostName(), lookup1, 0);
+ threadsafeTestThread thread2 = new threadsafeTestThread("2",
+ lookup2.getHostName(), lookup2, 0);
+ threadsafeTestThread thread3 = new threadsafeTestThread("3",
+ lookup1.getHostAddress(), lookup1, 1);
+ threadsafeTestThread thread4 = new threadsafeTestThread("4",
+ lookup2.getHostAddress(), lookup2, 1);
- // initialize the flags
- threadedTestSucceeded = true;
- synchronized (someoneDone) {
- thread1.start();
- thread2.start();
- thread3.start();
- thread4.start();
- }
- thread1.join();
- thread2.join();
- thread3.join();
- thread4.join();
- /* FIXME: comment the assertion below because it is platform/configuration dependent
- * Please refer to HARMONY-1664 (https://issues.apache.org/jira/browse/HARMONY-1664)
- * for details
- */
-// assertTrue(threadedTestErrorString, threadedTestSucceeded);
- } finally {
- // restore the old value of the property
- if (originalPropertyValue == null)
- // setting the property to -1 has the same effect as having the
- // property be null
- System.setProperty("networkaddress.cache.ttl", "-1");
- else
- System.setProperty("networkaddress.cache.ttl",
- originalPropertyValue);
+ // initialize the flags
+ threadedTestSucceeded = true;
+ synchronized (someoneDone) {
+ thread1.start();
+ thread2.start();
+ thread3.start();
+ thread4.start();
}
+ thread1.join();
+ thread2.join();
+ thread3.join();
+ thread4.join();
+ /* FIXME: comment the assertion below because it is platform/configuration dependent
+ * Please refer to HARMONY-1664 (https://issues.apache.org/jira/browse/HARMONY-1664)
+ * for details
+ */
+// assertTrue(threadedTestErrorString, threadedTestSucceeded);
}
/**
diff --git a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLTest.java b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLTest.java
index b4eb0ad..188d88d 100644
--- a/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLTest.java
+++ b/libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLTest.java
@@ -27,6 +27,7 @@
import tests.support.Support_Configuration;
import tests.support.Support_PortManager;
import tests.support.resource.Support_Resources;
+import tests.util.TestEnvironment;
import java.io.BufferedReader;
import java.io.BufferedWriter;
@@ -60,6 +61,17 @@
public class URLTest extends TestCase {
private static final String helloWorldString = "Hello World";
+
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
/**
* @tests java.net.URL#getHost()
*/
@@ -137,19 +149,12 @@
public void test_java_protocol_handler_pkgs_prop() throws MalformedURLException {
// Regression test for Harmony-3094
final String HANDLER_PKGS = "java.protocol.handler.pkgs";
- String pkgs = System.getProperty(HANDLER_PKGS);
System.setProperty(HANDLER_PKGS, "fake|org.apache.harmony.luni.tests.java.net");
try {
new URL("test_protocol", "", "fake.jar");
} catch (MalformedURLException e) {
// expected
- } finally {
- if (pkgs == null) {
- System.clearProperty(HANDLER_PKGS);
- } else {
- System.setProperty(HANDLER_PKGS, pkgs);
- }
}
}
diff --git a/libcore/luni/src/test/java/tests/api/java/io/FilePermissionTest.java b/libcore/luni/src/test/java/tests/api/java/io/FilePermissionTest.java
index 27f416d..2fa0828 100644
--- a/libcore/luni/src/test/java/tests/api/java/io/FilePermissionTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/io/FilePermissionTest.java
@@ -17,28 +17,34 @@
package tests.api.java.io;
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import tests.util.TestEnvironment;
+
import java.io.File;
import java.io.FilePermission;
import java.security.PermissionCollection;
-import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargetNew;
-
@TestTargetClass(FilePermission.class)
public class FilePermissionTest extends junit.framework.TestCase {
- FilePermission readAllFiles = new FilePermission("<<ALL FILES>>", "read");
+ FilePermission readAllFiles;
+ FilePermission alsoReadAllFiles;
+ FilePermission allInCurrent;
+ FilePermission readInCurrent;
+ FilePermission readInFile;
- FilePermission alsoReadAllFiles = new FilePermission("<<ALL FILES>>",
- "read");
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
- FilePermission allInCurrent = new FilePermission("*",
- "read, write, execute,delete");
-
- FilePermission readInCurrent = new FilePermission("*", "read");
-
- FilePermission readInFile = new FilePermission("aFile.file", "read");
+ readAllFiles = new FilePermission("<<ALL FILES>>", "read");
+ alsoReadAllFiles = new FilePermission("<<ALL FILES>>", "read");
+ allInCurrent = new FilePermission("*", "read, write, execute,delete");
+ readInCurrent = new FilePermission("*", "read");
+ readInFile = new FilePermission("aFile.file", "read");
+ }
/**
* @tests java.io.FilePermission#FilePermission(java.lang.String,
@@ -58,9 +64,9 @@
"write");
assertEquals("action given to the constructor did not correspond - constructor failed",
"write", constructFile.getActions());
- assertTrue(
- "name given to the construcotr did not correspond - construcotr failed",
- constructFile.getName() == "test constructor");
+ assertEquals(
+ "name given to the constructor did not correspond - constructor failed",
+ "test constructor", constructFile.getName());
// Regression test for HARMONY-1050
try {
@@ -244,18 +250,4 @@
readInCurrent.hashCode() != allInCurrent.hashCode());
}
-
- /**
- * Sets up the fixture, for example, open a network connection. This method
- * is called before a test is executed.
- */
- protected void setUp() {
- }
-
- /**
- * Tears down the fixture, for example, close a network connection. This
- * method is called after a test is executed.
- */
- protected void tearDown() {
- }
}
diff --git a/libcore/luni/src/test/java/tests/api/java/io/FileTest.java b/libcore/luni/src/test/java/tests/api/java/io/FileTest.java
index 3063b89..adcaccd 100644
--- a/libcore/luni/src/test/java/tests/api/java/io/FileTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/io/FileTest.java
@@ -39,6 +39,7 @@
import dalvik.annotation.TestTargets;
import static tests.support.Support_Exec.javaProcessBuilder;
import static tests.support.Support_Exec.execAndGetOutput;
+import tests.util.TestEnvironment;
@TestTargetClass(File.class)
public class FileTest extends junit.framework.TestCase {
@@ -97,7 +98,6 @@
public void test_ConstructorLjava_io_FileLjava_lang_String() throws Exception {
String error;
String dirName = System.getProperty("java.io.tmpdir");
- String oldUserDir = System.getProperty("user.dir");
System.setProperty("user.dir", dirName);
File d = new File(dirName);
@@ -127,8 +127,6 @@
d = new File(s, "/abc");
assertEquals("Test 4: Incorrect file created;",
f.getAbsolutePath(), d.getAbsolutePath());
-
- System.setProperty("user.dir", oldUserDir);
}
/**
@@ -173,7 +171,6 @@
String fileName = "input.tst";
String userDir = System.getProperty("java.io.tmpdir");
- String oldUserDir = System.getProperty("user.dir");
System.setProperty("user.dir", userDir);
File f = new File(dirName, fileName);
@@ -206,8 +203,6 @@
.getAbsolutePath());
assertEquals("Test3: Created Incorrect File", "/abc", f
.getAbsolutePath());
-
- System.setProperty("user.dir", oldUserDir);
}
/**
@@ -931,7 +926,6 @@
String expected;
String error;
String tmpDir = System.getProperty("java.io.tmpdir");
- String oldUserDir = System.getProperty("user.dir");
System.setProperty("user.dir", tmpDir);
try {
String base = new File(tmpDir).getCanonicalPath();
@@ -978,8 +972,6 @@
} catch (IOException e) {
fail("Unexpected IOException During Test : " + e.getMessage());
- } finally {
- System.setProperty("user.dir", oldUserDir);
}
}
@@ -1094,7 +1086,6 @@
args = {}
)
public void test_getPath() {
- String oldUserDir = System.getProperty("java.io.tmpdir");
System.setProperty("user.dir", System.getProperty("java.io.tmpdir"));
String base = System.getProperty("user.dir");
String fname;
@@ -1120,7 +1111,6 @@
f2.delete();
f3.delete();
f4.delete();
- System.setProperty("user.dir", oldUserDir);
}
/**
@@ -2503,6 +2493,9 @@
* is called before a test is executed.
*/
protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+
// Make sure that system properties are set correctly
String userDir = System.getProperty("java.io.tmpdir");
if (userDir == null)
@@ -2534,6 +2527,8 @@
* method is called after a test is executed.
*/
protected void tearDown() {
+ TestEnvironment.reset();
+
if (tempFile.exists() && !tempFile.delete())
System.out
.println("FileTest.tearDown() failed, could not delete file!");
diff --git a/libcore/luni/src/test/java/tests/api/java/net/ExcludedProxyTest.java b/libcore/luni/src/test/java/tests/api/java/net/ExcludedProxyTest.java
index ae76723..eeb46db 100644
--- a/libcore/luni/src/test/java/tests/api/java/net/ExcludedProxyTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/net/ExcludedProxyTest.java
@@ -36,6 +36,7 @@
import tests.support.Support_Configuration;
import tests.support.resource.Support_Resources;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
/*
* This test is designed for collecting all the testcases which needs a proxy
@@ -46,6 +47,12 @@
@TestTargetClass(Proxy.class)
public class ExcludedProxyTest extends TestCase {
+
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
/**
* @tests java.net.HttpURLConnection#usingProxy()
*/
diff --git a/libcore/luni/src/test/java/tests/api/java/net/ProxySelectorTest.java b/libcore/luni/src/test/java/tests/api/java/net/ProxySelectorTest.java
index f208954..ee8195b 100644
--- a/libcore/luni/src/test/java/tests/api/java/net/ProxySelectorTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/net/ProxySelectorTest.java
@@ -34,6 +34,7 @@
import java.util.Properties;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
@TestTargetClass(ProxySelector.class)
public class ProxySelectorTest extends TestCase {
@@ -77,11 +78,6 @@
}
}
- /*
- * Original system properties must be restored after running each test case.
- */
- private Properties orignalSystemProperties;
-
/**
* @tests java.net.ProxySelector#getDefault()
*/
@@ -722,16 +718,14 @@
*/
protected void setUp() throws Exception {
super.setUp();
- // save original system properties
- orignalSystemProperties = (Properties) System.getProperties().clone();
+ TestEnvironment.reset();
}
/*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
- // restore orignal system properties
- System.setProperties(orignalSystemProperties);
+ TestEnvironment.reset();
super.tearDown();
}
}
diff --git a/libcore/luni/src/test/java/tests/api/java/net/ServerSocketTest.java b/libcore/luni/src/test/java/tests/api/java/net/ServerSocketTest.java
index ecdfd01..a750536 100644
--- a/libcore/luni/src/test/java/tests/api/java/net/ServerSocketTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/net/ServerSocketTest.java
@@ -45,6 +45,7 @@
import tests.support.Support_Configuration;
import tests.support.Support_PortManager;
+import tests.util.TestEnvironment;
@TestTargetClass(value = ServerSocket.class)
public class ServerSocketTest extends SocketTestCase {
@@ -1289,7 +1290,7 @@
* method is called after a test is executed.
*/
protected void tearDown() {
-
+ TestEnvironment.reset();
try {
if (s != null)
s.close();
diff --git a/libcore/luni/src/test/java/tests/api/java/util/FormatterTest.java b/libcore/luni/src/test/java/tests/api/java/util/FormatterTest.java
index 6f86818..5a29fdc 100644
--- a/libcore/luni/src/test/java/tests/api/java/util/FormatterTest.java
+++ b/libcore/luni/src/test/java/tests/api/java/util/FormatterTest.java
@@ -59,6 +59,7 @@
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import tests.util.TestEnvironment;
@TestTargetClass(Formatter.class)
public class FormatterTest extends TestCase {
@@ -1268,8 +1269,6 @@
} catch (IllegalFormatPrecisionException e) {
// expected
}
-
- System.setProperty("line.separator", oldSeparator);
}
/**
@@ -4725,6 +4724,7 @@
* Setup resource files for testing
*/
protected void setUp() throws IOException {
+ TestEnvironment.reset();
notExist = File.createTempFile("notexist", null);
notExist.delete();
@@ -4748,6 +4748,7 @@
* Delete the resource files if they exist
*/
protected void tearDown() {
+ TestEnvironment.reset();
if (notExist.exists()) {
notExist.delete();
}
diff --git a/libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java b/libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java
index 6c36ec2..e7c5f5c 100644
--- a/libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java
+++ b/libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java
@@ -20,6 +20,7 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
@@ -40,6 +41,8 @@
* JUnit set-up method
*/
public void setUp() {
+ TestEnvironment.reset();
+
// Populate the known charset vars
Set names = Charset.availableCharsets().keySet();
for (Iterator nameItr = names.iterator(); nameItr.hasNext();) {
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/AbstractPreferencesTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/AbstractPreferencesTest.java
index 76ef4e7..b45a75a 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/AbstractPreferencesTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/AbstractPreferencesTest.java
@@ -16,12 +16,12 @@
package org.apache.harmony.prefs.tests.java.util.prefs;
-import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetClass;
-
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -35,13 +35,9 @@
import java.util.prefs.PreferenceChangeListener;
import java.util.prefs.Preferences;
-import tests.util.PrefsTester;
-
@TestTargetClass(AbstractPreferences.class)
public class AbstractPreferencesTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
AbstractPreferences pref;
static AbstractPreferences root;
@@ -55,7 +51,7 @@
protected void setUp() throws Exception {
super.setUp();
- prefsTester.setUp();
+ TestEnvironment.reset();
root = (AbstractPreferences) Preferences.userRoot();
parent = (AbstractPreferences) Preferences.userNodeForPackage(this.getClass());
@@ -64,7 +60,6 @@
}
protected void tearDown() throws Exception {
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/FilePreferencesImplTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/FilePreferencesImplTest.java
index 0cb1975..4535a59 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/FilePreferencesImplTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/FilePreferencesImplTest.java
@@ -17,33 +17,29 @@
package org.apache.harmony.prefs.tests.java.util.prefs;
import dalvik.annotation.AndroidOnly;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.io.FilePermission;
import java.security.Permission;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
-import junit.framework.TestCase;
-import tests.util.PrefsTester;
-
@TestTargetClass(java.util.prefs.Preferences.class)
public class FilePreferencesImplTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
@Override
protected void setUp() throws Exception {
super.setUp();
- prefsTester.setUp();
+ TestEnvironment.reset();
}
@Override
protected void tearDown() throws Exception {
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeEventTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeEventTest.java
index 1afd755..e24026c 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeEventTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeEventTest.java
@@ -16,10 +16,12 @@
package org.apache.harmony.prefs.tests.java.util.prefs;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import junit.framework.TestCase;
+import org.apache.harmony.testframework.serialization.SerializationTest;
+import tests.util.TestEnvironment;
import java.io.NotSerializableException;
import java.util.prefs.AbstractPreferences;
@@ -27,28 +29,20 @@
import java.util.prefs.NodeChangeEvent;
import java.util.prefs.Preferences;
-import junit.framework.TestCase;
-
-import org.apache.harmony.testframework.serialization.SerializationTest;
-import tests.util.PrefsTester;
-
/**
*
*/
@TestTargetClass(NodeChangeEvent.class)
public class NodeChangeEventTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
NodeChangeEvent event;
protected void setUp() throws Exception {
super.setUp();
- prefsTester.setUp();
+ TestEnvironment.reset();
}
protected void tearDown() throws Exception {
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeListenerTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeListenerTest.java
index 3cdb4d9..8e01589 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeListenerTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/NodeChangeListenerTest.java
@@ -16,26 +16,22 @@
package org.apache.harmony.prefs.tests.java.util.prefs;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.util.prefs.NodeChangeEvent;
import java.util.prefs.NodeChangeListener;
import java.util.prefs.Preferences;
-import junit.framework.TestCase;
-import tests.util.PrefsTester;
-
/**
*
*/
@TestTargetClass(NodeChangeListener.class)
public class NodeChangeListenerTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
NodeChangeListener l;
/*
@@ -44,7 +40,7 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- prefsTester.setUp();
+ TestEnvironment.reset();
l = new NodeChangeListenerImpl();
}
@@ -53,7 +49,6 @@
*/
@Override
protected void tearDown() throws Exception {
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferenceChangeEventTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferenceChangeEventTest.java
index aa55457..47e621e 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferenceChangeEventTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferenceChangeEventTest.java
@@ -16,37 +16,32 @@
package org.apache.harmony.prefs.tests.java.util.prefs;
-import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import junit.framework.TestCase;
+import org.apache.harmony.testframework.serialization.SerializationTest;
+import tests.util.TestEnvironment;
import java.io.NotSerializableException;
import java.util.prefs.AbstractPreferences;
import java.util.prefs.PreferenceChangeEvent;
import java.util.prefs.Preferences;
-import junit.framework.TestCase;
-
-import org.apache.harmony.testframework.serialization.SerializationTest;
-import tests.util.PrefsTester;
-
/**
*
*/
@TestTargetClass(PreferenceChangeEvent.class)
public class PreferenceChangeEventTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
PreferenceChangeEvent event;
@Override protected void setUp() throws Exception {
super.setUp();
- prefsTester.setUp();
+ TestEnvironment.reset();
}
@Override protected void tearDown() throws Exception {
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesTest.java b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesTest.java
index c9c74fd..122dacd 100644
--- a/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesTest.java
+++ b/libcore/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesTest.java
@@ -21,11 +21,10 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
-
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.io.ByteArrayInputStream;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -39,16 +38,12 @@
import java.util.prefs.PreferenceChangeListener;
import java.util.prefs.Preferences;
-import tests.util.PrefsTester;
-
/**
*
*/
@TestTargetClass(Preferences.class)
public class PreferencesTest extends TestCase {
- private final PrefsTester prefsTester = new PrefsTester();
-
MockSecurityManager manager = new MockSecurityManager();
MockInputStream stream = null;
@@ -82,7 +77,7 @@
"<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\"><preferences><root type=\"user\"><map></map></root></preferences>"
.getBytes("UTF-8"));
stream = new MockInputStream(in);
- prefsTester.setUp();
+ TestEnvironment.reset();
}
/*
@@ -91,7 +86,6 @@
@Override
protected void tearDown() throws Exception {
stream.close();
- prefsTester.tearDown();
super.tearDown();
}
diff --git a/libcore/security/src/test/java/org/apache/harmony/security/tests/java/security/PolicyTest.java b/libcore/security/src/test/java/org/apache/harmony/security/tests/java/security/PolicyTest.java
index cfa2af1..ce57328 100644
--- a/libcore/security/src/test/java/org/apache/harmony/security/tests/java/security/PolicyTest.java
+++ b/libcore/security/src/test/java/org/apache/harmony/security/tests/java/security/PolicyTest.java
@@ -31,6 +31,7 @@
import org.apache.harmony.security.tests.support.SecurityChecker;
import org.apache.harmony.security.tests.support.TestUtils;
+import tests.util.TestEnvironment;
import java.io.File;
import java.io.FilePermission;
@@ -60,6 +61,11 @@
junit.textui.TestRunner.run(PolicyTest.class);
}
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
/**
* @tests constructor Policy()
*/
diff --git a/libcore/security/src/test/java/tests/security/permissions/JavaLangSystemTest.java b/libcore/security/src/test/java/tests/security/permissions/JavaLangSystemTest.java
index d1bf7c2..b9217a1 100644
--- a/libcore/security/src/test/java/tests/security/permissions/JavaLangSystemTest.java
+++ b/libcore/security/src/test/java/tests/security/permissions/JavaLangSystemTest.java
@@ -22,6 +22,7 @@
import dalvik.annotation.TestTargetClass;
import junit.framework.TestCase;
+import tests.util.TestEnvironment;
import java.io.InputStream;
import java.io.PrintStream;
@@ -46,6 +47,7 @@
@Override
protected void tearDown() throws Exception {
+ TestEnvironment.reset();
System.setSecurityManager(old);
super.tearDown();
}
diff --git a/libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java b/libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
index ebb055c..d53f078 100644
--- a/libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
+++ b/libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
@@ -39,6 +39,7 @@
import junit.framework.TestCase;
import static tests.support.Support_Exec.javaProcessBuilder;
import static tests.support.Support_Exec.execAndGetOutput;
+import tests.util.TestEnvironment;
@TestTargetClass(DriverManager.class)
/**
@@ -77,6 +78,7 @@
// test methods as needed.
@Override
public void setUp() {
+ TestEnvironment.reset();
numberLoaded = loadDrivers();
} // end setUp()
diff --git a/libcore/support/src/test/java/tests/util/PrefsTester.java b/libcore/support/src/test/java/tests/util/PrefsTester.java
deleted file mode 100644
index 047b357..0000000
--- a/libcore/support/src/test/java/tests/util/PrefsTester.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 tests.util;
-
-import java.util.prefs.BackingStoreException;
-import java.util.prefs.Preferences;
-import java.util.Arrays;
-
-/**
- * Prepares the shared preferences store for a test by wiping preference data
- * before and after the test. Sample usage:
- * <pre>
- * public void MyPreferencesTest extends TestCase {
- * private final PrefsTester prefsTester = new PrefsTester();
- *
- * public void setUp() throws BackingStoreException {
- * super.setUp();
- * prefsTester.setUp();
- * }
- *
- * public void tearDown() throws BackingStoreException {
- * prefsTester.tearDown();
- * super.tearDown();
- * }
- *
- * ...
- * }</pre>
- *
- * <p>Once the preferences classes have been initialized, the path where their
- * data is stored is fixed. For that reason, every test that reads or writes
- * preferences must first prepare preferences for testing by using this class.
- */
-public final class PrefsTester {
-
- static {
- String tmp = System.getProperty("java.io.tmpdir");
- System.setProperty("user.home", tmp);
- System.setProperty("java.home", tmp);
- }
-
- public void setUp() throws BackingStoreException {
- clear();
- }
-
- public void tearDown() throws BackingStoreException {
- clear();
- }
-
- private void clear() throws BackingStoreException {
- for (Preferences root : Arrays .asList(
- Preferences.systemRoot(), Preferences.userRoot())) {
- for (String child : root.childrenNames()) {
- root.node(child).removeNode();
- }
- root.clear();
- root.flush();
- }
- }
-}
diff --git a/libcore/support/src/test/java/tests/util/TestEnvironment.java b/libcore/support/src/test/java/tests/util/TestEnvironment.java
new file mode 100644
index 0000000..92facda
--- /dev/null
+++ b/libcore/support/src/test/java/tests/util/TestEnvironment.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2009 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 tests.util;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Properties;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
+
+/**
+ * Prepares system properties and preferences to hygienic values for testing:
+ * <ul>
+ * <li>System properties are set to reasonable defaults. Referenced
+ * directories such as the user and Java home directories will be
+ * writable.
+ * <li>System and user preferences are cleared. Once the preferences classes
+ * have been initialized, the path where their data is stored is fixed.
+ * For this reason, every test that reads or writes preferences should
+ * first reset the system configuration with this API.
+ * </ul>
+ *
+ * <p>Use this class to clean up before and/or after your test. Sample usage:
+ * <pre>
+ * public void MyTest extends TestCase {
+ *
+ * protected void setUp() throws Exception {
+ * super.setUp();
+ * TestEnvironment().reset();
+ * }
+ *
+ * protected void tearDown() throws Exception {
+ * TestEnvironment().reset();
+ * super.tearDown();
+ * }
+ *
+ * ...
+ * }</pre>
+ */
+public final class TestEnvironment {
+ private TestEnvironment() {}
+
+ public static synchronized void reset() {
+ resetSystemProperties();
+ resetPreferences();
+
+ // TODO: TimeZone?, SecurityManager?
+ }
+
+ private static void resetSystemProperties() {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ if (tmpDir == null) {
+ throw new IllegalStateException("Test execution requires the"
+ + " system property java.io.tmpdir to be set.");
+ }
+
+ Properties p = new Properties();
+
+ // runtime properties that we never want to clobber
+ copyProperty(p, "android.vm.dexfile");
+ copyProperty(p, "java.boot.class.path");
+ copyProperty(p, "java.class.path");
+ copyProperty(p, "java.io.tmpdir");
+ copyProperty(p, "java.library.path");
+ copyProperty(p, "os.arch");
+ copyProperty(p, "os.name");
+ copyProperty(p, "os.version");
+
+ // paths with writable values for testing
+ String userHome = tmpDir + "/user.home";
+ String javaHome = tmpDir + "/java.home";
+ String userDir = tmpDir + "/user.dir";
+ makeDirectory(new File(userHome));
+ makeDirectory(new File(javaHome));
+ makeDirectory(new File(userDir));
+ p.put("java.home", javaHome);
+ p.put("user.dir", userDir);
+ p.put("user.home", userHome);
+
+ // hardcoded properties
+ p.put("file.encoding", "UTF-8");
+ p.put("file.separator", "/");
+ p.put("java.class.version", "46.0");
+ p.put("java.compiler", "");
+ p.put("java.ext.dirs", "");
+ p.put("java.net.preferIPv6Addresses", "true");
+ p.put("java.runtime.name", "Android Runtime");
+ p.put("java.runtime.version", "0.9");
+ p.put("java.specification.name", "Dalvik Core Library");
+ p.put("java.specification.vendor", "The Android Project");
+ p.put("java.specification.version", "0.9");
+ p.put("java.vendor", "The Android Project");
+ p.put("java.vendor.url", "http://www.android.com/");
+ p.put("java.version", "0");
+ p.put("java.vm.name", "Dalvik");
+ p.put("java.vm.specification.name", "Dalvik Virtual Machine Specification");
+ p.put("java.vm.specification.vendor", "The Android Project");
+ p.put("java.vm.specification.version", "0.9");
+ p.put("java.vm.vendor", "The Android Project");
+ p.put("java.vm.vendor.url", "http://www.android.com/");
+ p.put("java.vm.version", "1.2.0");
+ p.put("javax.net.ssl.trustStore", "/etc/security/cacerts.bks");
+ p.put("line.separator", "\n");
+ p.put("path.separator", ":");
+ p.put("user.language", "en");
+ p.put("user.name", "");
+ p.put("user.region", "US");
+
+ System.setProperties(p);
+ }
+
+ private static void copyProperty(Properties p, String key) {
+ p.put(key, System.getProperty(key));
+ }
+
+ private static void makeDirectory(File path) {
+ boolean success;
+ if (!path.exists()) {
+ success = path.mkdirs();
+ } else if (!path.isDirectory()) {
+ success = path.delete() && path.mkdirs();
+ } else {
+ success = true;
+ }
+
+ if (!success) {
+ throw new RuntimeException("Failed to make directory " + path);
+ }
+ }
+
+ private static void resetPreferences() {
+ try {
+ for (Preferences root : Arrays.asList(
+ Preferences.systemRoot(), Preferences.userRoot())) {
+ for (String child : root.childrenNames()) {
+ root.node(child).removeNode();
+ }
+ root.clear();
+ root.flush();
+ }
+ } catch (BackingStoreException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/libcore/x-net/src/test/java/tests/api/javax/net/ssl/SSLEngineTest.java b/libcore/x-net/src/test/java/tests/api/javax/net/ssl/SSLEngineTest.java
index 0e3fee3..f659919 100644
--- a/libcore/x-net/src/test/java/tests/api/javax/net/ssl/SSLEngineTest.java
+++ b/libcore/x-net/src/test/java/tests/api/javax/net/ssl/SSLEngineTest.java
@@ -49,6 +49,7 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
+import tests.util.TestEnvironment;
/**
@@ -65,6 +66,11 @@
junit.textui.TestRunner.run(SSLEngineTest.class);
}
+ @Override protected void setUp() throws Exception {
+ super.setUp();
+ TestEnvironment.reset();
+ }
+
/**
* Test for <code>SSLEngine()</code> constructor Assertion: creates
* SSLEngine object with null host and -1 port
diff --git a/libcore/xml/src/test/java/tests/api/javax/xml/parsers/DocumentBuilderFactoryTest.java b/libcore/xml/src/test/java/tests/api/javax/xml/parsers/DocumentBuilderFactoryTest.java
index 1e1ffdd..b6c400f 100644
--- a/libcore/xml/src/test/java/tests/api/javax/xml/parsers/DocumentBuilderFactoryTest.java
+++ b/libcore/xml/src/test/java/tests/api/javax/xml/parsers/DocumentBuilderFactoryTest.java
@@ -31,6 +31,7 @@
import org.xml.sax.SAXParseException;
import tests.api.javax.xml.parsers.SAXParserFactoryTest.MyHandler;
+import tests.util.TestEnvironment;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -57,6 +58,7 @@
protected void setUp() throws Exception {
super.setUp();
+ TestEnvironment.reset();
dbf = DocumentBuilderFactory.newInstance();
cdataElements = new ArrayList<String>();
diff --git a/libcore/xml/src/test/java/tests/api/javax/xml/parsers/SAXParserFactoryTest.java b/libcore/xml/src/test/java/tests/api/javax/xml/parsers/SAXParserFactoryTest.java
index 5d41356..a918ac2 100644
--- a/libcore/xml/src/test/java/tests/api/javax/xml/parsers/SAXParserFactoryTest.java
+++ b/libcore/xml/src/test/java/tests/api/javax/xml/parsers/SAXParserFactoryTest.java
@@ -41,6 +41,7 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
+import tests.util.TestEnvironment;
@TestTargetClass(SAXParserFactory.class)
public class SAXParserFactoryTest extends TestCase {
@@ -66,7 +67,9 @@
}
public void tearDown() throws Exception {
+ TestEnvironment.reset();
is1.close();
+ super.tearDown();
}
@TestTargetNew(
@@ -175,13 +178,10 @@
args = {}
)
public void test_newInstance() {
- String className = null;
try {
SAXParserFactory dtf = SAXParserFactory.newInstance();
assertNotNull("New Instance of DatatypeFactory is null", dtf);
- className = System.getProperty("javax.xml.parsers.SAXParserFactory");
-
System.setProperty("javax.xml.parsers.SAXParserFactory",
"org.apache.harmony.xml.parsers.SAXParserFactoryImpl");
@@ -205,13 +205,6 @@
}
} catch (IOException ioe) {
fail("Unexpected exception " + ioe.toString());
- } finally {
- if (className == null) {
- System.clearProperty("javax.xml.parsers.SAXParserFactory");
- } else {
- System.setProperty("javax.xml.parsers.SAXParserFactory",
- className);
- }
}
}
diff --git a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserAdapterTest.java b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserAdapterTest.java
index 27a7e78..608d52c 100644
--- a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserAdapterTest.java
+++ b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserAdapterTest.java
@@ -44,6 +44,7 @@
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
+import tests.util.TestEnvironment;
@SuppressWarnings("deprecation")
@TestTargetClass(ParserAdapter.class)
@@ -79,11 +80,17 @@
@Override
public void setUp() {
+ TestEnvironment.reset();
adapter.setContentHandler(handler);
adapter.setDTDHandler(handler);
adapter.setErrorHandler(handler);
}
-
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
@TestTargetNew(
level = TestLevel.COMPLETE,
method = "ParserAdapter",
diff --git a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserFactoryTest.java b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserFactoryTest.java
index dd4b1c3..113a569 100644
--- a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserFactoryTest.java
+++ b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/ParserFactoryTest.java
@@ -23,6 +23,7 @@
import junit.framework.TestCase;
import org.xml.sax.helpers.ParserFactory;
+import tests.util.TestEnvironment;
import java.util.Iterator;
import java.util.Properties;
@@ -32,6 +33,11 @@
@TestTargetClass(ParserFactory.class)
public class ParserFactoryTest extends TestCase {
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
@TestTargetNew(
level = TestLevel.COMPLETE,
method = "makeParser",
diff --git a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderAdapterTest.java b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderAdapterTest.java
index 20488c5..0fe6f52 100644
--- a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderAdapterTest.java
+++ b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderAdapterTest.java
@@ -42,6 +42,7 @@
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
+import tests.util.TestEnvironment;
@SuppressWarnings("deprecation")
@TestTargetClass(XMLReaderAdapter.class)
@@ -68,11 +69,17 @@
@Override
public void setUp() {
+ TestEnvironment.reset();
adapter.setDocumentHandler(handler);
adapter.setDTDHandler(handler);
adapter.setErrorHandler(handler);
}
-
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
@TestTargetNew(
level = TestLevel.COMPLETE,
method = "XMLReaderAdapter",
diff --git a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderFactoryTest.java b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderFactoryTest.java
index bfb1bd1..2edb918 100644
--- a/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderFactoryTest.java
+++ b/libcore/xml/src/test/java/tests/api/org/xml/sax/helpers/XMLReaderFactoryTest.java
@@ -24,10 +24,21 @@
import org.xml.sax.SAXException;
import org.xml.sax.helpers.XMLReaderFactory;
+import tests.util.TestEnvironment;
@TestTargetClass(XMLReaderFactory.class)
public class XMLReaderFactoryTest extends TestCase {
+ @Override protected void setUp() throws Exception {
+ TestEnvironment.reset();
+ super.setUp();
+ }
+
+ @Override protected void tearDown() throws Exception {
+ TestEnvironment.reset();
+ super.tearDown();
+ }
+
@TestTargetNew(
level = TestLevel.SUFFICIENT,
method = "createXMLReader",