@LargeTest
@Feature({"Cronet"})
public void testNoWriteAfterCancelOnAnotherThread() throws Exception {
// This test verifies that WritableByteChannel.write is not called after
// WritableByteChannel.close if request is canceled from another
// thread.
for (int i = 0; i < 100; ++i) {
HashMap<String, String> headers = new HashMap<String, String>();
TestByteChannel channel = new TestByteChannel();
TestHttpUrlRequestListener listener =
new TestHttpUrlRequestListener();
// Create request.
final HttpUrlRequest request =
mTestFramework.mRequestFactory.createRequest(NativeTestServer.getSuccessURL(),
HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, channel, listener);
request.start();
listener.blockForStart();
Runnable cancelTask = new Runnable() {
public void run() {
request.cancel();
}
};
Executors.newCachedThreadPool().execute(cancelTask);
listener.blockForComplete();
assertFalse(channel.isOpen());
// Since getAllHeaders and other methods in
// checkAfterAdapterDestroyed() acquire mLock, so this will happen
// after the adapter is destroyed.
checkAfterAdapterDestroyed(request);
}
}
ChromiumUrlRequestTest.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:chromium-net-for-android
作者:
评论列表
文章目录