More TestEnvironment Stuff
Bug 5498103
Setting the CookieHandler.setDefault to null should fix the
OldCookieHandlerTest. Added more stuff from the Vogar
TestEnvironment class...
Change-Id: I5c5c347625d8f3f47eb668e7ab214fb438beadf0
diff --git a/tests/core/runner/src/android/test/InstrumentationCtsTestRunner.java b/tests/core/runner/src/android/test/InstrumentationCtsTestRunner.java
index 1b221a4..cc7d7b0 100644
--- a/tests/core/runner/src/android/test/InstrumentationCtsTestRunner.java
+++ b/tests/core/runner/src/android/test/InstrumentationCtsTestRunner.java
@@ -33,9 +33,15 @@
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.net.Authenticator;
+import java.net.CookieHandler;
+import java.net.ResponseCache;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLSocketFactory;
import junit.framework.AssertionFailedError;
import junit.framework.Test;
@@ -63,6 +69,8 @@
*/
private boolean mSingleTest = false;
+ private TestEnvironment mEnvironment;
+
@Override
public void onCreate(Bundle arguments) {
// We might want to move this to /sdcard, if is is mounted/writable.
@@ -79,6 +87,8 @@
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
+ mEnvironment = new TestEnvironment();
+
if (arguments != null) {
String classArg = arguments.getString(ARGUMENT_TEST_CLASS);
mSingleTest = classArg != null && classArg.contains("#");
@@ -120,10 +130,6 @@
*/
private long startTime;
- private Locale defaultLocale;
- private String userHome;
- private String javaIoTmpDir;
-
@Override
public void startTest(Test test) {
if (test.getClass() != lastClass) {
@@ -134,26 +140,13 @@
Thread.currentThread().setContextClassLoader(
test.getClass().getClassLoader());
- save();
+ mEnvironment.reset();
startTime = System.currentTimeMillis();
}
- private void save() {
- defaultLocale = Locale.getDefault();
- userHome = System.getProperty("user.home");
- javaIoTmpDir = System.getProperty("java.io.tmpdir");
- }
-
- private void restore() {
- Locale.setDefault(defaultLocale);
- System.setProperty("user.home", userHome);
- System.setProperty("java.io.tmpdir", javaIoTmpDir);
- }
-
@Override
public void endTest(Test test) {
- restore();
if (test instanceof TestCase) {
cleanup((TestCase)test);
@@ -235,6 +228,34 @@
return runner;
}
+ // http://code.google.com/p/vogar/source/browse/trunk/src/vogar/target/TestEnvironment.java
+ static class TestEnvironment {
+ private Locale mDefaultLocale;
+ private String mUserHome;
+ private String mJavaIoTmpDir;
+ private HostnameVerifier mHostnameVerifier;
+ private SSLSocketFactory mSslSocketFactory;
+
+ TestEnvironment() {
+ mDefaultLocale = Locale.getDefault();
+ mUserHome = System.getProperty("user.home");
+ mJavaIoTmpDir = System.getProperty("java.io.tmpdir");
+ mHostnameVerifier = HttpsURLConnection.getDefaultHostnameVerifier();
+ mSslSocketFactory = HttpsURLConnection.getDefaultSSLSocketFactory();
+ }
+
+ void reset() {
+ Locale.setDefault(mDefaultLocale);
+ System.setProperty("user.home", mUserHome);
+ System.setProperty("java.io.tmpdir", mJavaIoTmpDir);
+ Authenticator.setDefault(null);
+ CookieHandler.setDefault(null);
+ ResponseCache.setDefault(null);
+ HttpsURLConnection.setDefaultHostnameVerifier(mHostnameVerifier);
+ HttpsURLConnection.setDefaultSSLSocketFactory(mSslSocketFactory);
+ }
+ }
+
@Override
List<Predicate<TestMethod>> getBuilderRequirements() {
List<Predicate<TestMethod>> builderRequirements =