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

Side by Side Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java

Issue 2283513002: [Cronet] JavaUrlRequest - Don't call close() on a user thread - it can do I/O. (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import android.os.ConditionVariable; 7 import android.os.ConditionVariable;
8 import android.os.StrictMode;
8 import android.test.MoreAsserts; 9 import android.test.MoreAsserts;
9 import android.test.suitebuilder.annotation.SmallTest; 10 import android.test.suitebuilder.annotation.SmallTest;
10 import android.util.Log; 11 import android.util.Log;
11 12
12 import org.chromium.base.test.util.Feature; 13 import org.chromium.base.test.util.Feature;
13 import org.chromium.net.TestUrlRequestCallback.FailureType; 14 import org.chromium.net.TestUrlRequestCallback.FailureType;
14 import org.chromium.net.TestUrlRequestCallback.ResponseStep; 15 import org.chromium.net.TestUrlRequestCallback.ResponseStep;
15 import org.chromium.net.impl.CronetUrlRequest; 16 import org.chromium.net.impl.CronetUrlRequest;
16 import org.chromium.net.test.FailurePhase; 17 import org.chromium.net.test.FailurePhase;
17 18
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 callback.setAutoAdvance(true); 822 callback.setAutoAdvance(true);
822 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); 823 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5);
823 urlRequest.read(readBuffer); 824 urlRequest.read(readBuffer);
824 callback.blockForDone(); 825 callback.blockForDone();
825 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 826 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
826 assertEquals("GET", callback.mResponseAsString); 827 assertEquals("GET", callback.mResponseAsString);
827 } 828 }
828 829
829 @SmallTest 830 @SmallTest
830 @Feature({"Cronet"}) 831 @Feature({"Cronet"})
832 public void testNoIoInCancel() throws Exception {
833 final TestUrlRequestCallback callback = new TestUrlRequestCallback();
834 callback.setAutoAdvance(false);
835 final UrlRequest urlRequest =
836 new UrlRequest
837 .Builder(NativeTestServer.getEchoHeaderURL("blah-header" ), callback,
838 callback.getExecutor(), mTestFramework.mCronetEn gine)
839 .addHeader("blah-header", "blahblahblah")
840 .build();
841 urlRequest.start();
842 callback.waitForNextStep();
843 callback.startNextRead(urlRequest, ByteBuffer.allocateDirect(4));
844 callback.waitForNextStep();
845 StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy();
846 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
847 .detectAll()
848 .penaltyDeath()
849 .penaltyLog()
850 .build());
851 try {
852 urlRequest.cancel();
mef 2016/08/25 22:23:54 Do you need to setup something to trigger IO on ca
Charles 2016/08/26 15:58:19 I do set up - this is in the middle of a request w
mef 2016/08/26 16:14:11 Acknowledged.
853 } finally {
854 StrictMode.setThreadPolicy(oldPolicy);
855 }
856 callback.blockForDone();
857 assertEquals(true, callback.mOnCanceledCalled);
858 }
859
860 @SmallTest
861 @Feature({"Cronet"})
831 public void testUnexpectedReads() throws Exception { 862 public void testUnexpectedReads() throws Exception {
832 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); 863 final TestUrlRequestCallback callback = new TestUrlRequestCallback();
833 callback.setAutoAdvance(false); 864 callback.setAutoAdvance(false);
834 final UrlRequest urlRequest = 865 final UrlRequest urlRequest =
835 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callba ck, 866 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callba ck,
836 callback.getExecutor(), mTestFramework.mCr onetEngine) 867 callback.getExecutor(), mTestFramework.mCr onetEngine)
837 .build(); 868 .build();
838 869
839 // Try to read before starting request. 870 // Try to read before starting request.
840 try { 871 try {
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after
1814 private String bufferContentsToString(ByteBuffer byteBuffer, int start, int end) { 1845 private String bufferContentsToString(ByteBuffer byteBuffer, int start, int end) {
1815 // Use a duplicate to avoid modifying byteBuffer. 1846 // Use a duplicate to avoid modifying byteBuffer.
1816 ByteBuffer duplicate = byteBuffer.duplicate(); 1847 ByteBuffer duplicate = byteBuffer.duplicate();
1817 duplicate.position(start); 1848 duplicate.position(start);
1818 duplicate.limit(end); 1849 duplicate.limit(end);
1819 byte[] contents = new byte[duplicate.remaining()]; 1850 byte[] contents = new byte[duplicate.remaining()];
1820 duplicate.get(contents); 1851 duplicate.get(contents);
1821 return new String(contents); 1852 return new String(contents);
1822 } 1853 }
1823 } 1854 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698