Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1147)

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java

Issue 2393543003: Modify TestRequestFinishedListener to block for finished requests (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java b/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
index 5823ef1a8d6fd0c2adc50e5ec694b8b0b7595d42..2d2a8d12d99bb91110fcb54c0ffed9a9e9cdea43 100644
--- a/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
@@ -7,9 +7,12 @@ package org.chromium.net;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
+import android.os.ConditionVariable;
+
import java.util.LinkedList;
import java.util.NoSuchElementException;
import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
/**
* Classes which are useful for testing Cronet's metrics implementation and are needed in more than
@@ -17,8 +20,8 @@ import java.util.concurrent.Executor;
*/
public class MetricsTestUtil {
/**
- * Executor which runs tasks only when told to with runAllTasks().
- */
+ * Executor which runs tasks only when told to with runAllTasks().
+ */
public static class TestExecutor implements Executor {
private final LinkedList<Runnable> mTaskQueue = new LinkedList<Runnable>();
@@ -43,11 +46,25 @@ public class MetricsTestUtil {
*/
public static class TestRequestFinishedListener extends RequestFinishedInfo.Listener {
private RequestFinishedInfo mRequestInfo;
+ private ConditionVariable mBlock;
+ private int mNumExpectedRequests = -1;
public TestRequestFinishedListener(Executor executor) {
super(executor);
}
+ public TestRequestFinishedListener(int numExpectedRequests) {
+ super(Executors.newSingleThreadExecutor());
+ mNumExpectedRequests = numExpectedRequests;
+ mBlock = new ConditionVariable();
+ }
+
+ public TestRequestFinishedListener() {
+ super(Executors.newSingleThreadExecutor());
+ mNumExpectedRequests = 1;
+ mBlock = new ConditionVariable();
+ }
+
public RequestFinishedInfo getRequestInfo() {
return mRequestInfo;
}
@@ -57,6 +74,14 @@ public class MetricsTestUtil {
assertNull("onRequestFinished called repeatedly", mRequestInfo);
assertNotNull(requestInfo);
mRequestInfo = requestInfo;
+ mNumExpectedRequests--;
+ if (mNumExpectedRequests == 0) {
+ mBlock.open();
+ }
+ }
+
+ public void blockUntilDone() {
+ mBlock.block();
}
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698