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

Unified Diff: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java

Issue 11280250: Add waitUntilHasValue() to simplify usage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase.. Created 8 years 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
Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java
index 56d6347ad4c14d549ead78e2a9d2ecc14f47bb17..95646e2dd9370ba43da7a78b6abe06c3307b3b8f 100644
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/CallbackHelper.java
@@ -84,6 +84,31 @@ public class CallbackHelper {
}
/**
+ * Blocks until the criteria is satisfied or throws an exception
+ * if the specified time frame is exceeded.
+ * @param timeout timeout value.
+ * @param unit timeout unit.
+ */
+ public void waitUntilCriteria(Criteria criteria, long timeout, TimeUnit unit)
+ throws InterruptedException, TimeoutException {
+ synchronized(mLock) {
+ final long startTime = System.currentTimeMillis();
+ boolean isSatisfied = criteria.isSatisfied();
+ while (!isSatisfied &&
+ System.currentTimeMillis() - startTime < unit.toMillis(timeout)) {
+ mLock.wait(unit.toMillis(timeout));
+ isSatisfied = criteria.isSatisfied();
+ }
+ if (!isSatisfied) throw new TimeoutException("waitUntilCriteria timed out!");
+ }
+ }
+
+ public void waitUntilCriteria(Criteria criteria)
+ throws InterruptedException, TimeoutException {
+ waitUntilCriteria(criteria, WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ }
+
+ /**
* Should be called when the callback associated with this helper object is called.
*/
public void notifyCalled() {

Powered by Google App Engine
This is Rietveld 408576698