Index: components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java |
index b4809679768dd540cf23fdbfc2171d959bbc44b7..1c3cfcd9465aae2310ce0e0e38b5c888ef40166f 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/MessageLoopTest.java |
@@ -10,6 +10,7 @@ import org.chromium.base.test.util.Feature; |
import org.chromium.net.CronetTestBase; |
import java.io.IOException; |
+import java.net.SocketTimeoutException; |
import java.util.concurrent.ExecutorService; |
import java.util.concurrent.Executors; |
import java.util.concurrent.Future; |
@@ -117,4 +118,20 @@ public class MessageLoopTest extends CronetTestBase { |
} |
}).get(); |
} |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ public void testLoopWithTimeout() throws Exception { |
+ final MessageLoop loop = new MessageLoop(); |
+ assertFalse(loop.isRunning()); |
+ // The MessageLoop queue is empty. Use a timeout of 100ms to check that |
+ // it doesn't block forever. |
+ try { |
+ loop.loop(100); |
+ fail(); |
+ } catch (SocketTimeoutException e) { |
+ // Expected. |
+ } |
+ assertFalse(loop.isRunning()); |
+ } |
} |