Index: components/cronet/android/test/src/org/chromium/net/CronetTestFramework.java |
diff --git a/components/cronet/android/test/src/org/chromium/net/CronetTestActivity.java b/components/cronet/android/test/src/org/chromium/net/CronetTestFramework.java |
similarity index 76% |
rename from components/cronet/android/test/src/org/chromium/net/CronetTestActivity.java |
rename to components/cronet/android/test/src/org/chromium/net/CronetTestFramework.java |
index 0a3cdadc1baf1edef5f6b510140eccf409a243bc..537bc96a00556cd98a3598b2d906adde4d20e838 100644 |
--- a/components/cronet/android/test/src/org/chromium/net/CronetTestActivity.java |
+++ b/components/cronet/android/test/src/org/chromium/net/CronetTestFramework.java |
@@ -4,14 +4,13 @@ |
package org.chromium.net; |
-import android.app.Activity; |
import android.content.Context; |
-import android.content.Intent; |
-import android.os.Bundle; |
+import android.os.ConditionVariable; |
import android.os.Environment; |
import static junit.framework.Assert.assertEquals; |
import static junit.framework.Assert.assertTrue; |
+import static junit.framework.Assert.fail; |
import org.chromium.base.Log; |
import org.chromium.base.PathUtils; |
@@ -30,8 +29,8 @@ import java.util.HashMap; |
* Activity for managing the Cronet Test. |
xunjieli
2015/10/22 18:41:24
nit: Outdated comment containing the word "activit
pauljensen
2015/10/23 11:35:50
Done.
|
*/ |
@SuppressFBWarnings("URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") |
-public class CronetTestActivity extends Activity { |
- private static final String TAG = "CronetTestActivity"; |
+public class CronetTestFramework { |
+ private static final String TAG = "CronetTestFramework"; |
public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs"; |
public static final String POST_DATA_KEY = "postData"; |
@@ -67,24 +66,25 @@ public class CronetTestActivity extends Activity { |
*/ |
public static final String LIBRARY_INIT_WRAPPER = "wrapperOnly"; |
+ private final String[] mCommandLine; |
+ private final Context mContext; |
xunjieli
2015/10/22 18:41:24
nit: Private fields should go after public ones.
pauljensen
2015/10/23 11:35:50
Done.
|
+ |
public CronetURLStreamHandlerFactory mStreamHandlerFactory; |
public CronetEngine mCronetEngine; |
HttpUrlRequestFactory mRequestFactory; |
- @SuppressFBWarnings("URF_UNREAD_FIELD") |
- HistogramManager mHistogramManager; |
- |
- String mUrl; |
- |
- boolean mLoading = false; |
+ @SuppressFBWarnings("URF_UNREAD_FIELD") HistogramManager mHistogramManager; |
- int mHttpStatusCode = 0; |
+ private String mUrl; |
+ private boolean mLoading = false; |
+ private int mHttpStatusCode = 0; |
// CronetEngine.Builder used for this activity. |
private CronetEngine.Builder mCronetEngineBuilder; |
- class TestHttpUrlRequestListener implements HttpUrlRequestListener { |
- public TestHttpUrlRequestListener() { |
- } |
+ private class TestHttpUrlRequestListener implements HttpUrlRequestListener { |
+ private final ConditionVariable mComplete = new ConditionVariable(); |
+ |
+ public TestHttpUrlRequestListener() {} |
@Override |
public void onResponseStarted(HttpUrlRequest request) { |
@@ -94,26 +94,25 @@ public class CronetTestActivity extends Activity { |
@Override |
public void onRequestComplete(HttpUrlRequest request) { |
mLoading = false; |
+ mComplete.open(); |
+ } |
+ |
+ public void blockForComplete() { |
+ mComplete.block(); |
} |
} |
- @Override |
- protected void onCreate(final Bundle savedInstanceState) { |
- super.onCreate(savedInstanceState); |
+ public CronetTestFramework(String appUrl, String[] commandLine, Context context) { |
+ mCommandLine = commandLine; |
+ mContext = context; |
prepareTestStorage(); |
// Print out extra arguments passed in starting this activity. |
- Intent intent = getIntent(); |
- Bundle extras = intent.getExtras(); |
- Log.i(TAG, "Cronet extras: " + extras); |
- if (extras != null) { |
- String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY); |
- if (commandLine != null) { |
- assertEquals(0, commandLine.length % 2); |
- for (int i = 0; i < commandLine.length / 2; i++) { |
- Log.i(TAG, "Cronet commandLine %s = %s", commandLine[i * 2], |
- commandLine[i * 2 + 1]); |
- } |
+ if (commandLine != null) { |
+ assertEquals(0, commandLine.length % 2); |
+ for (int i = 0; i < commandLine.length / 2; i++) { |
+ Log.i(TAG, "Cronet commandLine %s = %s", commandLine[i * 2], |
+ commandLine[i * 2 + 1]); |
} |
} |
@@ -139,7 +138,6 @@ public class CronetTestActivity extends Activity { |
} |
mRequestFactory = initRequestFactory(); |
- String appUrl = getUrlFromIntent(getIntent()); |
if (appUrl != null) { |
startWithURL(appUrl); |
} |
@@ -157,7 +155,7 @@ public class CronetTestActivity extends Activity { |
} |
String getTestStorage() { |
- return PathUtils.getDataDirectory(getApplicationContext()) + "/test_storage"; |
+ return PathUtils.getDataDirectory(mContext) + "/test_storage"; |
} |
@SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") |
@@ -177,7 +175,7 @@ public class CronetTestActivity extends Activity { |
} |
private CronetEngine.Builder initializeCronetEngineBuilder() { |
- return createCronetEngineBuilder(this); |
+ return createCronetEngineBuilder(mContext); |
} |
CronetEngine.Builder createCronetEngineBuilder(Context context) { |
@@ -188,10 +186,9 @@ public class CronetTestActivity extends Activity { |
String configString = getCommandLineArg(CONFIG_KEY); |
if (configString != null) { |
try { |
- cronetEngineBuilder = new CronetEngine.Builder(this, configString); |
+ cronetEngineBuilder = new CronetEngine.Builder(mContext, configString); |
} catch (org.json.JSONException e) { |
- Log.e(TAG, "Invalid Config.", e); |
- finish(); |
+ fail("Invalid Config." + e); |
return null; |
} |
} |
@@ -226,23 +223,14 @@ public class CronetTestActivity extends Activity { |
// Helper function to initialize request factory. Also used in testing. |
public HttpUrlRequestFactory initRequestFactory() { |
- return HttpUrlRequestFactory.createFactory(this, mCronetEngineBuilder); |
- } |
- |
- private static String getUrlFromIntent(Intent intent) { |
- return intent != null ? intent.getDataString() : null; |
+ return HttpUrlRequestFactory.createFactory(mContext, mCronetEngineBuilder); |
} |
private String getCommandLineArg(String key) { |
- Intent intent = getIntent(); |
- Bundle extras = intent.getExtras(); |
- if (extras != null) { |
- String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY); |
- if (commandLine != null) { |
- for (int i = 0; i < commandLine.length; ++i) { |
- if (commandLine[i].equals(key)) { |
- return commandLine[++i]; |
- } |
+ if (mCommandLine != null) { |
+ for (int i = 0; i < mCommandLine.length; ++i) { |
+ if (mCommandLine[i].equals(key)) { |
+ return mCommandLine[++i]; |
} |
} |
} |
@@ -252,11 +240,9 @@ public class CronetTestActivity extends Activity { |
private void applyCommandLineToHttpUrlRequest(HttpUrlRequest request) { |
String postData = getCommandLineArg(POST_DATA_KEY); |
if (postData != null) { |
- InputStream dataStream = new ByteArrayInputStream( |
- postData.getBytes()); |
+ InputStream dataStream = new ByteArrayInputStream(postData.getBytes()); |
ReadableByteChannel dataChannel = Channels.newChannel(dataStream); |
- request.setUploadChannel("text/plain", dataChannel, |
- postData.length()); |
+ request.setUploadChannel("text/plain", dataChannel, postData.length()); |
request.setHttpMethod("POST"); |
} |
} |
@@ -267,11 +253,12 @@ public class CronetTestActivity extends Activity { |
mLoading = true; |
HashMap<String, String> headers = new HashMap<String, String>(); |
- HttpUrlRequestListener listener = new TestHttpUrlRequestListener(); |
+ TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener(); |
HttpUrlRequest request = mRequestFactory.createRequest( |
url, HttpUrlRequest.REQUEST_PRIORITY_MEDIUM, headers, listener); |
applyCommandLineToHttpUrlRequest(request); |
request.start(); |
+ listener.blockForComplete(); |
} |
public String getUrl() { |
@@ -289,7 +276,7 @@ public class CronetTestActivity extends Activity { |
public void startNetLog() { |
if (mRequestFactory != null) { |
mRequestFactory.startNetLogToFile(Environment.getExternalStorageDirectory().getPath() |
- + "/cronet_sample_netlog_old_api.json", |
+ + "/cronet_sample_netlog_old_api.json", |
false); |
} |
if (mCronetEngine != null) { |