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

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

Issue 2892013002: [Cronet] Clean up tests (Closed)
Patch Set: address comments Created 3 years, 7 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.content.Context; 7 import android.content.Context;
8 import android.content.ContextWrapper; 8 import android.content.ContextWrapper;
9 import android.os.ConditionVariable; 9 import android.os.ConditionVariable;
10 import android.os.Handler; 10 import android.os.Handler;
11 import android.os.Looper; 11 import android.os.Looper;
12 import android.os.Process; 12 import android.os.Process;
13 import android.support.test.filters.SmallTest; 13 import android.support.test.filters.SmallTest;
14 14
15 import org.json.JSONObject; 15 import org.json.JSONObject;
16 16
17 import static org.chromium.net.CronetEngine.Builder.HTTP_CACHE_IN_MEMORY; 17 import static org.chromium.net.CronetEngine.Builder.HTTP_CACHE_IN_MEMORY;
18 18
19 import org.chromium.base.FileUtils; 19 import org.chromium.base.FileUtils;
20 import org.chromium.base.PathUtils; 20 import org.chromium.base.PathUtils;
21 import org.chromium.base.annotations.JNINamespace; 21 import org.chromium.base.annotations.JNINamespace;
22 import org.chromium.base.test.util.Feature; 22 import org.chromium.base.test.util.Feature;
23 import org.chromium.net.TestUrlRequestCallback.ResponseStep; 23 import org.chromium.net.TestUrlRequestCallback.ResponseStep;
24 import org.chromium.net.impl.CronetEngineBase;
25 import org.chromium.net.impl.CronetEngineBuilderImpl; 24 import org.chromium.net.impl.CronetEngineBuilderImpl;
26 import org.chromium.net.impl.CronetLibraryLoader; 25 import org.chromium.net.impl.CronetLibraryLoader;
27 import org.chromium.net.impl.CronetUrlRequestContext; 26 import org.chromium.net.impl.CronetUrlRequestContext;
28 import org.chromium.net.test.EmbeddedTestServer; 27 import org.chromium.net.test.EmbeddedTestServer;
29 28
30 import java.io.BufferedReader; 29 import java.io.BufferedReader;
31 import java.io.File; 30 import java.io.File;
32 import java.io.FileReader; 31 import java.io.FileReader;
33 import java.net.URL; 32 import java.net.URL;
34 import java.nio.ByteBuffer; 33 import java.nio.ByteBuffer;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 mUrl404 = mTestServer.getURL("/echo?status=404"); 65 mUrl404 = mTestServer.getURL("/echo?status=404");
67 mUrl500 = mTestServer.getURL("/echo?status=500"); 66 mUrl500 = mTestServer.getURL("/echo?status=500");
68 } 67 }
69 68
70 @Override 69 @Override
71 protected void tearDown() throws Exception { 70 protected void tearDown() throws Exception {
72 mTestServer.stopAndDestroyServer(); 71 mTestServer.stopAndDestroyServer();
73 super.tearDown(); 72 super.tearDown();
74 } 73 }
75 74
76 static class RequestThread extends Thread { 75 class RequestThread extends Thread {
77 public TestUrlRequestCallback mCallback; 76 public TestUrlRequestCallback mCallback;
78 77
79 final CronetTestFramework mTestFramework;
80 final String mUrl; 78 final String mUrl;
81 final ConditionVariable mRunBlocker; 79 final ConditionVariable mRunBlocker;
82 80
83 public RequestThread( 81 public RequestThread(String url, ConditionVariable runBlocker) {
84 CronetTestFramework testFramework, String url, ConditionVariable runBlocker) {
85 mTestFramework = testFramework;
86 mUrl = url; 82 mUrl = url;
87 mRunBlocker = runBlocker; 83 mRunBlocker = runBlocker;
88 } 84 }
89 85
90 @Override 86 @Override
91 public void run() { 87 public void run() {
92 mRunBlocker.block(); 88 mRunBlocker.block();
93 CronetEngine cronetEngine = mTestFramework.initCronetEngine(); 89 CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).b uild();
94 mCallback = new TestUrlRequestCallback(); 90 mCallback = new TestUrlRequestCallback();
95 UrlRequest.Builder urlRequestBuilder = 91 UrlRequest.Builder urlRequestBuilder =
96 cronetEngine.newUrlRequestBuilder(mUrl, mCallback, mCallback .getExecutor()); 92 cronetEngine.newUrlRequestBuilder(mUrl, mCallback, mCallback .getExecutor());
97 urlRequestBuilder.build().start(); 93 urlRequestBuilder.build().start();
98 mCallback.blockForDone(); 94 mCallback.blockForDone();
99 } 95 }
100 } 96 }
101 97
102 /** 98 /**
103 * Callback that shutdowns the request context when request has succeeded 99 * Callback that shutdowns the request context when request has succeeded
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 @SuppressWarnings("deprecation") 132 @SuppressWarnings("deprecation")
137 public void testConfigUserAgent() throws Exception { 133 public void testConfigUserAgent() throws Exception {
138 String userAgentName = "User-Agent"; 134 String userAgentName = "User-Agent";
139 String userAgentValue = "User-Agent-Value"; 135 String userAgentValue = "User-Agent-Value";
140 ExperimentalCronetEngine.Builder cronetEngineBuilder = 136 ExperimentalCronetEngine.Builder cronetEngineBuilder =
141 new ExperimentalCronetEngine.Builder(getContext()); 137 new ExperimentalCronetEngine.Builder(getContext());
142 if (testingJavaImpl()) { 138 if (testingJavaImpl()) {
143 cronetEngineBuilder = createJavaEngineBuilder(); 139 cronetEngineBuilder = createJavaEngineBuilder();
144 } 140 }
145 cronetEngineBuilder.setUserAgent(userAgentValue); 141 cronetEngineBuilder.setUserAgent(userAgentValue);
146 final CronetTestFramework testFramework = 142 final CronetEngine cronetEngine = cronetEngineBuilder.build();
147 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron etEngineBuilder);
148 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re turns false if it's 143 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re turns false if it's
149 // already running 144 // already running
150 assertTrue(NativeTestServer.startNativeTestServer(getContext())); 145 assertTrue(NativeTestServer.startNativeTestServer(getContext()));
151 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 146 TestUrlRequestCallback callback = new TestUrlRequestCallback();
152 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( 147 UrlRequest.Builder urlRequestBuilder = cronetEngine.newUrlRequestBuilder (
153 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call back.getExecutor()); 148 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call back.getExecutor());
154 urlRequestBuilder.build().start(); 149 urlRequestBuilder.build().start();
155 callback.blockForDone(); 150 callback.blockForDone();
156 assertEquals(userAgentValue, callback.mResponseAsString); 151 assertEquals(userAgentValue, callback.mResponseAsString);
157 } 152 }
158 153
159 @SmallTest 154 @SmallTest
160 @Feature({"Cronet"}) 155 @Feature({"Cronet"})
161 // TODO: Remove the annotation after fixing http://crbug.com/637979 & http:/ /crbug.com/637972 156 // TODO: Remove the annotation after fixing http://crbug.com/637979 & http:/ /crbug.com/637972
162 @OnlyRunNativeCronet 157 @OnlyRunNativeCronet
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 callback.startNextRead(urlRequest); 201 callback.startNextRead(urlRequest);
207 callback.blockForDone(); 202 callback.blockForDone();
208 callback.blockForCallbackToComplete(); 203 callback.blockForCallbackToComplete();
209 callback.shutdownExecutor(); 204 callback.shutdownExecutor();
210 } 205 }
211 206
212 @SmallTest 207 @SmallTest
213 @Feature({"Cronet"}) 208 @Feature({"Cronet"})
214 @OnlyRunNativeCronet 209 @OnlyRunNativeCronet
215 public void testShutdownDuringInit() throws Exception { 210 public void testShutdownDuringInit() throws Exception {
216 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit();
217 final ConditionVariable block = new ConditionVariable(false); 211 final ConditionVariable block = new ConditionVariable(false);
218 212
219 // Post a task to main thread to block until shutdown is called to test 213 // Post a task to main thread to block until shutdown is called to test
220 // scenario when shutdown is called right after construction before 214 // scenario when shutdown is called right after construction before
221 // context is fully initialized on the main thread. 215 // context is fully initialized on the main thread.
222 Runnable blockingTask = new Runnable() { 216 Runnable blockingTask = new Runnable() {
223 @Override 217 @Override
224 public void run() { 218 public void run() {
225 try { 219 try {
226 block.block(); 220 block.block();
227 } catch (Exception e) { 221 } catch (Exception e) {
228 fail("Caught " + e.getMessage()); 222 fail("Caught " + e.getMessage());
229 } 223 }
230 } 224 }
231 }; 225 };
232 // Ensure that test is not running on the main thread. 226 // Ensure that test is not running on the main thread.
233 assertTrue(Looper.getMainLooper() != Looper.myLooper()); 227 assertTrue(Looper.getMainLooper() != Looper.myLooper());
234 new Handler(Looper.getMainLooper()).post(blockingTask); 228 new Handler(Looper.getMainLooper()).post(blockingTask);
235 229
236 // Create new request context, but its initialization on the main thread 230 // Create new request context, but its initialization on the main thread
237 // will be stuck behind blockingTask. 231 // will be stuck behind blockingTask.
238 final CronetUrlRequestContext cronetEngine = 232 final CronetUrlRequestContext cronetEngine =
239 (CronetUrlRequestContext) testFramework.initCronetEngine(); 233 (CronetUrlRequestContext) new CronetEngine.Builder(getContext()) .build();
240 // Unblock the main thread, so context gets initialized and shutdown on 234 // Unblock the main thread, so context gets initialized and shutdown on
241 // it. 235 // it.
242 block.open(); 236 block.open();
243 // Shutdown will wait for init to complete on main thread. 237 // Shutdown will wait for init to complete on main thread.
244 cronetEngine.shutdown(); 238 cronetEngine.shutdown();
245 // Verify that context is shutdown. 239 // Verify that context is shutdown.
246 try { 240 try {
247 cronetEngine.getUrlRequestContextAdapter(); 241 cronetEngine.getUrlRequestContextAdapter();
248 fail("Should throw an exception."); 242 fail("Should throw an exception.");
249 } catch (Exception e) { 243 } catch (Exception e) {
250 assertEquals("Engine is shut down.", e.getMessage()); 244 assertEquals("Engine is shut down.", e.getMessage());
251 } 245 }
252 } 246 }
253 247
254 @SmallTest 248 @SmallTest
255 @Feature({"Cronet"}) 249 @Feature({"Cronet"})
256 @OnlyRunNativeCronet 250 @OnlyRunNativeCronet
257 public void testInitAndShutdownOnMainThread() throws Exception { 251 public void testInitAndShutdownOnMainThread() throws Exception {
258 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit();
259 final ConditionVariable block = new ConditionVariable(false); 252 final ConditionVariable block = new ConditionVariable(false);
260 253
261 // Post a task to main thread to init and shutdown on the main thread. 254 // Post a task to main thread to init and shutdown on the main thread.
262 Runnable blockingTask = new Runnable() { 255 Runnable blockingTask = new Runnable() {
263 @Override 256 @Override
264 public void run() { 257 public void run() {
265 // Create new request context, loading the library. 258 // Create new request context, loading the library.
266 final CronetUrlRequestContext cronetEngine = 259 final CronetUrlRequestContext cronetEngine =
267 (CronetUrlRequestContext) testFramework.initCronetEngine (); 260 (CronetUrlRequestContext) new CronetEngine.Builder(getCo ntext()).build();
268 // Shutdown right after init. 261 // Shutdown right after init.
269 cronetEngine.shutdown(); 262 cronetEngine.shutdown();
270 // Verify that context is shutdown. 263 // Verify that context is shutdown.
271 try { 264 try {
272 cronetEngine.getUrlRequestContextAdapter(); 265 cronetEngine.getUrlRequestContextAdapter();
273 fail("Should throw an exception."); 266 fail("Should throw an exception.");
274 } catch (Exception e) { 267 } catch (Exception e) {
275 assertEquals("Engine is shut down.", e.getMessage()); 268 assertEquals("Engine is shut down.", e.getMessage());
276 } 269 }
277 block.open(); 270 block.open();
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 assertTrue(containsStringInNetLog(eventFile1, mUrl404)); 534 assertTrue(containsStringInNetLog(eventFile1, mUrl404));
542 assertTrue(containsStringInNetLog(eventFile1, mUrl500)); 535 assertTrue(containsStringInNetLog(eventFile1, mUrl500));
543 assertTrue(containsStringInNetLog(eventFile2, mUrl404)); 536 assertTrue(containsStringInNetLog(eventFile2, mUrl404));
544 assertTrue(containsStringInNetLog(eventFile2, mUrl500)); 537 assertTrue(containsStringInNetLog(eventFile2, mUrl500));
545 538
546 FileUtils.recursivelyDeleteFile(netLogDir1); 539 FileUtils.recursivelyDeleteFile(netLogDir1);
547 assertFalse(netLogDir1.exists()); 540 assertFalse(netLogDir1.exists());
548 FileUtils.recursivelyDeleteFile(netLogDir2); 541 FileUtils.recursivelyDeleteFile(netLogDir2);
549 assertFalse(netLogDir2.exists()); 542 assertFalse(netLogDir2.exists());
550 } 543 }
544
545 private CronetEngine createCronetEngineWithCache(int cacheType) {
546 CronetEngine.Builder builder = new CronetEngine.Builder(getContext());
547 if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK) {
548 builder.setStoragePath(getTestStorage(getContext()));
549 }
550 builder.enableHttpCache(cacheType, 100 * 1024);
551 assertTrue(NativeTestServer.startNativeTestServer(getContext()));
552 return builder.build();
553 }
554
551 @SmallTest 555 @SmallTest
552 @Feature({"Cronet"}) 556 @Feature({"Cronet"})
553 @OnlyRunNativeCronet 557 @OnlyRunNativeCronet
554 // Tests that if CronetEngine is shut down on the network thread, an appropr iate exception 558 // Tests that if CronetEngine is shut down on the network thread, an appropr iate exception
555 // is thrown. 559 // is thrown.
556 public void testShutDownEngineOnNetworkThread() throws Exception { 560 public void testShutDownEngineOnNetworkThread() throws Exception {
557 final CronetTestFramework testFramework = 561 final CronetEngine cronetEngine =
558 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); 562 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK );
559 String url = NativeTestServer.getFileURL("/cacheable.txt"); 563 String url = NativeTestServer.getFileURL("/cacheable.txt");
560 // Make a request to a cacheable resource. 564 // Make a request to a cacheable resource.
561 checkRequestCaching(testFramework.mCronetEngine, url, false); 565 checkRequestCaching(cronetEngine, url, false);
562 566
563 final AtomicReference<Throwable> thrown = new AtomicReference<>(); 567 final AtomicReference<Throwable> thrown = new AtomicReference<>();
564 // Shut down the server. 568 // Shut down the server.
565 NativeTestServer.shutdownNativeTestServer(); 569 NativeTestServer.shutdownNativeTestServer();
566 class CancelUrlRequestCallback extends TestUrlRequestCallback { 570 class CancelUrlRequestCallback extends TestUrlRequestCallback {
567 @Override 571 @Override
568 public void onResponseStarted(UrlRequest request, UrlResponseInfo in fo) { 572 public void onResponseStarted(UrlRequest request, UrlResponseInfo in fo) {
569 super.onResponseStarted(request, info); 573 super.onResponseStarted(request, info);
570 request.cancel(); 574 request.cancel();
571 // Shut down CronetEngine immediately after request is destroyed . 575 // Shut down CronetEngine immediately after request is destroyed .
572 try { 576 try {
573 testFramework.mCronetEngine.shutdown(); 577 cronetEngine.shutdown();
574 } catch (Exception e) { 578 } catch (Exception e) {
575 thrown.set(e); 579 thrown.set(e);
576 } 580 }
577 } 581 }
578 582
579 @Override 583 @Override
580 public void onSucceeded(UrlRequest request, UrlResponseInfo info) { 584 public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
581 // onSucceeded will not happen, because the request is canceled 585 // onSucceeded will not happen, because the request is canceled
582 // after sending first read and the executor is single threaded. 586 // after sending first read and the executor is single threaded.
583 throw new RuntimeException("Unexpected"); 587 throw new RuntimeException("Unexpected");
584 } 588 }
585 589
586 @Override 590 @Override
587 public void onFailed(UrlRequest request, UrlResponseInfo info, Crone tException error) { 591 public void onFailed(UrlRequest request, UrlResponseInfo info, Crone tException error) {
588 throw new RuntimeException("Unexpected"); 592 throw new RuntimeException("Unexpected");
589 } 593 }
590 } 594 }
591 Executor directExecutor = new Executor() { 595 Executor directExecutor = new Executor() {
592 @Override 596 @Override
593 public void execute(Runnable command) { 597 public void execute(Runnable command) {
594 command.run(); 598 command.run();
595 } 599 }
596 }; 600 };
597 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); 601 CancelUrlRequestCallback callback = new CancelUrlRequestCallback();
598 callback.setAllowDirectExecutor(true); 602 callback.setAllowDirectExecutor(true);
599 UrlRequest.Builder urlRequestBuilder = 603 UrlRequest.Builder urlRequestBuilder =
600 testFramework.mCronetEngine.newUrlRequestBuilder(url, callback, directExecutor); 604 cronetEngine.newUrlRequestBuilder(url, callback, directExecutor) ;
601 urlRequestBuilder.allowDirectExecutor(); 605 urlRequestBuilder.allowDirectExecutor();
602 urlRequestBuilder.build().start(); 606 urlRequestBuilder.build().start();
603 callback.blockForDone(); 607 callback.blockForDone();
604 assertTrue(thrown.get() instanceof RuntimeException); 608 assertTrue(thrown.get() instanceof RuntimeException);
605 } 609 }
606 610
607 @SmallTest 611 @SmallTest
608 @Feature({"Cronet"}) 612 @Feature({"Cronet"})
609 @OnlyRunNativeCronet 613 @OnlyRunNativeCronet
610 // Tests that if CronetEngine is shut down when reading from disk cache, 614 // Tests that if CronetEngine is shut down when reading from disk cache,
611 // there isn't a crash. See crbug.com/486120. 615 // there isn't a crash. See crbug.com/486120.
612 public void testShutDownEngineWhenReadingFromDiskCache() throws Exception { 616 public void testShutDownEngineWhenReadingFromDiskCache() throws Exception {
613 final CronetTestFramework testFramework = 617 final CronetEngine cronetEngine =
614 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); 618 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK );
615 String url = NativeTestServer.getFileURL("/cacheable.txt"); 619 String url = NativeTestServer.getFileURL("/cacheable.txt");
616 // Make a request to a cacheable resource. 620 // Make a request to a cacheable resource.
617 checkRequestCaching(testFramework.mCronetEngine, url, false); 621 checkRequestCaching(cronetEngine, url, false);
618 622
619 // Shut down the server. 623 // Shut down the server.
620 NativeTestServer.shutdownNativeTestServer(); 624 NativeTestServer.shutdownNativeTestServer();
621 class CancelUrlRequestCallback extends TestUrlRequestCallback { 625 class CancelUrlRequestCallback extends TestUrlRequestCallback {
622 @Override 626 @Override
623 public void onResponseStarted(UrlRequest request, UrlResponseInfo in fo) { 627 public void onResponseStarted(UrlRequest request, UrlResponseInfo in fo) {
624 super.onResponseStarted(request, info); 628 super.onResponseStarted(request, info);
625 request.cancel(); 629 request.cancel();
626 // Shut down CronetEngine immediately after request is destroyed . 630 // Shut down CronetEngine immediately after request is destroyed .
627 testFramework.mCronetEngine.shutdown(); 631 cronetEngine.shutdown();
628 } 632 }
629 633
630 @Override 634 @Override
631 public void onSucceeded(UrlRequest request, UrlResponseInfo info) { 635 public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
632 // onSucceeded will not happen, because the request is canceled 636 // onSucceeded will not happen, because the request is canceled
633 // after sending first read and the executor is single threaded. 637 // after sending first read and the executor is single threaded.
634 throw new RuntimeException("Unexpected"); 638 throw new RuntimeException("Unexpected");
635 } 639 }
636 640
637 @Override 641 @Override
638 public void onFailed(UrlRequest request, UrlResponseInfo info, Crone tException error) { 642 public void onFailed(UrlRequest request, UrlResponseInfo info, Crone tException error) {
639 throw new RuntimeException("Unexpected"); 643 throw new RuntimeException("Unexpected");
640 } 644 }
641 } 645 }
642 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); 646 CancelUrlRequestCallback callback = new CancelUrlRequestCallback();
643 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( 647 UrlRequest.Builder urlRequestBuilder =
644 url, callback, callback.getExecutor()); 648 cronetEngine.newUrlRequestBuilder(url, callback, callback.getExe cutor());
645 urlRequestBuilder.build().start(); 649 urlRequestBuilder.build().start();
646 callback.blockForDone(); 650 callback.blockForDone();
647 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 651 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
648 assertTrue(callback.mResponseInfo.wasCached()); 652 assertTrue(callback.mResponseInfo.wasCached());
649 assertTrue(callback.mOnCanceledCalled); 653 assertTrue(callback.mOnCanceledCalled);
650 } 654 }
651 655
652 @SmallTest 656 @SmallTest
653 @Feature({"Cronet"}) 657 @Feature({"Cronet"})
654 @OnlyRunNativeCronet 658 @OnlyRunNativeCronet
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 private void makeRequestAndCheckStatus( 896 private void makeRequestAndCheckStatus(
893 CronetEngine engine, String url, int expectedStatusCode) { 897 CronetEngine engine, String url, int expectedStatusCode) {
894 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 898 TestUrlRequestCallback callback = new TestUrlRequestCallback();
895 UrlRequest request = 899 UrlRequest request =
896 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( )).build(); 900 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( )).build();
897 request.start(); 901 request.start();
898 callback.blockForDone(); 902 callback.blockForDone();
899 assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCod e()); 903 assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCod e());
900 } 904 }
901 905
902 private CronetTestFramework startCronetTestFrameworkWithCacheEnabled(int cac heType)
903 throws Exception {
904 String cacheTypeString = "";
905 if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK) {
906 cacheTypeString = CronetTestFramework.CACHE_DISK;
907 } else if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP) {
908 cacheTypeString = CronetTestFramework.CACHE_DISK_NO_HTTP;
909 } else if (cacheType == HTTP_CACHE_IN_MEMORY) {
910 cacheTypeString = CronetTestFramework.CACHE_IN_MEMORY;
911 }
912 String[] commandLineArgs = {CronetTestFramework.CACHE_KEY, cacheTypeStri ng};
913 CronetTestFramework testFramework =
914 startCronetTestFrameworkWithUrlAndCommandLineArgs(null, commandL ineArgs);
915 assertTrue(NativeTestServer.startNativeTestServer(getContext()));
916 return testFramework;
917 }
918
919 private void checkRequestCaching(CronetEngine engine, String url, boolean ex pectCached) { 906 private void checkRequestCaching(CronetEngine engine, String url, boolean ex pectCached) {
920 checkRequestCaching(engine, url, expectCached, false); 907 checkRequestCaching(engine, url, expectCached, false);
921 } 908 }
922 909
923 private void checkRequestCaching( 910 private void checkRequestCaching(
924 CronetEngine engine, String url, boolean expectCached, boolean disab leCache) { 911 CronetEngine engine, String url, boolean expectCached, boolean disab leCache) {
925 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 912 TestUrlRequestCallback callback = new TestUrlRequestCallback();
926 UrlRequest.Builder urlRequestBuilder = 913 UrlRequest.Builder urlRequestBuilder =
927 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( )); 914 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( ));
928 if (disableCache) { 915 if (disableCache) {
929 urlRequestBuilder.disableCache(); 916 urlRequestBuilder.disableCache();
930 } 917 }
931 urlRequestBuilder.build().start(); 918 urlRequestBuilder.build().start();
932 callback.blockForDone(); 919 callback.blockForDone();
933 assertEquals(expectCached, callback.mResponseInfo.wasCached()); 920 assertEquals(expectCached, callback.mResponseInfo.wasCached());
934 assertEquals("this is a cacheable file\n", callback.mResponseAsString); 921 assertEquals("this is a cacheable file\n", callback.mResponseAsString);
935 } 922 }
936 923
937 @SmallTest 924 @SmallTest
938 @Feature({"Cronet"}) 925 @Feature({"Cronet"})
939 @OnlyRunNativeCronet 926 @OnlyRunNativeCronet
940 public void testEnableHttpCacheDisabled() throws Exception { 927 public void testEnableHttpCacheDisabled() throws Exception {
941 final CronetTestFramework testFramework = 928 CronetEngine cronetEngine =
942 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISABLED); 929 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISA BLED);
943 String url = NativeTestServer.getFileURL("/cacheable.txt"); 930 String url = NativeTestServer.getFileURL("/cacheable.txt");
944 checkRequestCaching(testFramework.mCronetEngine, url, false); 931 checkRequestCaching(cronetEngine, url, false);
945 checkRequestCaching(testFramework.mCronetEngine, url, false); 932 checkRequestCaching(cronetEngine, url, false);
946 checkRequestCaching(testFramework.mCronetEngine, url, false); 933 checkRequestCaching(cronetEngine, url, false);
947 } 934 }
948 935
949 @SmallTest 936 @SmallTest
950 @Feature({"Cronet"}) 937 @Feature({"Cronet"})
951 public void testEnableHttpCacheInMemory() throws Exception { 938 public void testEnableHttpCacheInMemory() throws Exception {
952 final CronetTestFramework testFramework = 939 CronetEngine cronetEngine =
953 startCronetTestFrameworkWithCacheEnabled(HTTP_CACHE_IN_MEMORY); 940 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_IN_M EMORY);
954 String url = NativeTestServer.getFileURL("/cacheable.txt"); 941 String url = NativeTestServer.getFileURL("/cacheable.txt");
955 checkRequestCaching(testFramework.mCronetEngine, url, false); 942 checkRequestCaching(cronetEngine, url, false);
956 checkRequestCaching(testFramework.mCronetEngine, url, true); 943 checkRequestCaching(cronetEngine, url, true);
957 NativeTestServer.shutdownNativeTestServer(); 944 NativeTestServer.shutdownNativeTestServer();
958 checkRequestCaching(testFramework.mCronetEngine, url, true); 945 checkRequestCaching(cronetEngine, url, true);
959 } 946 }
960 947
961 @SmallTest 948 @SmallTest
962 @Feature({"Cronet"}) 949 @Feature({"Cronet"})
963 public void testEnableHttpCacheDisk() throws Exception { 950 public void testEnableHttpCacheDisk() throws Exception {
964 final CronetTestFramework testFramework = 951 CronetEngine cronetEngine =
965 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); 952 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK );
966 String url = NativeTestServer.getFileURL("/cacheable.txt"); 953 String url = NativeTestServer.getFileURL("/cacheable.txt");
967 checkRequestCaching(testFramework.mCronetEngine, url, false); 954 checkRequestCaching(cronetEngine, url, false);
968 checkRequestCaching(testFramework.mCronetEngine, url, true); 955 checkRequestCaching(cronetEngine, url, true);
969 NativeTestServer.shutdownNativeTestServer(); 956 NativeTestServer.shutdownNativeTestServer();
970 checkRequestCaching(testFramework.mCronetEngine, url, true); 957 checkRequestCaching(cronetEngine, url, true);
971 } 958 }
972 959
973 @SmallTest 960 @SmallTest
974 @Feature({"Cronet"}) 961 @Feature({"Cronet"})
975 @OnlyRunNativeCronet 962 @OnlyRunNativeCronet
976 public void testEnableHttpCacheDiskNoHttp() throws Exception { 963 public void testEnableHttpCacheDiskNoHttp() throws Exception {
977 final CronetTestFramework testFramework = 964 // TODO(pauljensen): This should be testing HTTP_CACHE_DISK_NO_HTTP.
978 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISABLED); 965 CronetEngine cronetEngine =
966 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISA BLED);
979 String url = NativeTestServer.getFileURL("/cacheable.txt"); 967 String url = NativeTestServer.getFileURL("/cacheable.txt");
980 checkRequestCaching(testFramework.mCronetEngine, url, false); 968 checkRequestCaching(cronetEngine, url, false);
981 checkRequestCaching(testFramework.mCronetEngine, url, false); 969 checkRequestCaching(cronetEngine, url, false);
982 checkRequestCaching(testFramework.mCronetEngine, url, false); 970 checkRequestCaching(cronetEngine, url, false);
983 } 971 }
984 972
985 @SmallTest 973 @SmallTest
986 @Feature({"Cronet"}) 974 @Feature({"Cronet"})
987 public void testDisableCache() throws Exception { 975 public void testDisableCache() throws Exception {
988 final CronetTestFramework testFramework = 976 CronetEngine cronetEngine =
989 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); 977 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK );
990 String url = NativeTestServer.getFileURL("/cacheable.txt"); 978 String url = NativeTestServer.getFileURL("/cacheable.txt");
991 979
992 // When cache is disabled, making a request does not write to the cache. 980 // When cache is disabled, making a request does not write to the cache.
993 checkRequestCaching(testFramework.mCronetEngine, url, false, true /** di sable cache */); 981 checkRequestCaching(cronetEngine, url, false, true /** disable cache */) ;
994 checkRequestCaching(testFramework.mCronetEngine, url, false); 982 checkRequestCaching(cronetEngine, url, false);
995 983
996 // When cache is enabled, the second request is cached. 984 // When cache is enabled, the second request is cached.
997 checkRequestCaching(testFramework.mCronetEngine, url, false, true /** di sable cache */); 985 checkRequestCaching(cronetEngine, url, false, true /** disable cache */) ;
998 checkRequestCaching(testFramework.mCronetEngine, url, true); 986 checkRequestCaching(cronetEngine, url, true);
999 987
1000 // Shut down the server, next request should have a cached response. 988 // Shut down the server, next request should have a cached response.
1001 NativeTestServer.shutdownNativeTestServer(); 989 NativeTestServer.shutdownNativeTestServer();
1002 checkRequestCaching(testFramework.mCronetEngine, url, true); 990 checkRequestCaching(cronetEngine, url, true);
1003 991
1004 // Cache is disabled after server is shut down, request should fail. 992 // Cache is disabled after server is shut down, request should fail.
1005 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 993 TestUrlRequestCallback callback = new TestUrlRequestCallback();
1006 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( 994 UrlRequest.Builder urlRequestBuilder =
1007 url, callback, callback.getExecutor()); 995 cronetEngine.newUrlRequestBuilder(url, callback, callback.getExe cutor());
1008 urlRequestBuilder.disableCache(); 996 urlRequestBuilder.disableCache();
1009 urlRequestBuilder.build().start(); 997 urlRequestBuilder.build().start();
1010 callback.blockForDone(); 998 callback.blockForDone();
1011 assertNotNull(callback.mError); 999 assertNotNull(callback.mError);
1012 assertContains("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUS ED", 1000 assertContains("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUS ED",
1013 callback.mError.getMessage()); 1001 callback.mError.getMessage());
1014 } 1002 }
1015 1003
1016 @SmallTest 1004 @SmallTest
1017 @Feature({"Cronet"}) 1005 @Feature({"Cronet"})
1018 public void testEnableHttpCacheDiskNewEngine() throws Exception { 1006 public void testEnableHttpCacheDiskNewEngine() throws Exception {
1019 final CronetTestFramework testFramework = 1007 CronetEngine cronetEngine =
1020 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); 1008 createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK );
1021 String url = NativeTestServer.getFileURL("/cacheable.txt"); 1009 String url = NativeTestServer.getFileURL("/cacheable.txt");
1022 checkRequestCaching(testFramework.mCronetEngine, url, false); 1010 checkRequestCaching(cronetEngine, url, false);
1023 checkRequestCaching(testFramework.mCronetEngine, url, true); 1011 checkRequestCaching(cronetEngine, url, true);
1024 NativeTestServer.shutdownNativeTestServer(); 1012 NativeTestServer.shutdownNativeTestServer();
1025 checkRequestCaching(testFramework.mCronetEngine, url, true); 1013 checkRequestCaching(cronetEngine, url, true);
1026 1014
1027 // Shutdown original context and create another that uses the same cache . 1015 // Shutdown original context and create another that uses the same cache .
1028 testFramework.mCronetEngine.shutdown(); 1016 cronetEngine.shutdown();
1029 testFramework.mCronetEngine = 1017 cronetEngine = enableDiskCache(new CronetEngine.Builder(getContext())).b uild();
1030 (CronetEngineBase) testFramework.getCronetEngineBuilder().build( ); 1018 checkRequestCaching(cronetEngine, url, true);
1031 checkRequestCaching(testFramework.mCronetEngine, url, true);
1032 } 1019 }
1033 1020
1034 @SmallTest 1021 @SmallTest
1035 @Feature({"Cronet"}) 1022 @Feature({"Cronet"})
1036 public void testInitEngineAndStartRequest() { 1023 public void testInitEngineAndStartRequest() {
1037 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit();
1038
1039 // Immediately make a request after initializing the engine. 1024 // Immediately make a request after initializing the engine.
1040 CronetEngine cronetEngine = testFramework.initCronetEngine(); 1025 CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).build ();
1041 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 1026 TestUrlRequestCallback callback = new TestUrlRequestCallback();
1042 UrlRequest.Builder urlRequestBuilder = 1027 UrlRequest.Builder urlRequestBuilder =
1043 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); 1028 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor());
1044 urlRequestBuilder.build().start(); 1029 urlRequestBuilder.build().start();
1045 callback.blockForDone(); 1030 callback.blockForDone();
1046 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 1031 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
1047 } 1032 }
1048 1033
1049 @SmallTest 1034 @SmallTest
1050 @Feature({"Cronet"}) 1035 @Feature({"Cronet"})
1051 public void testEmptyGetCertVerifierData() { 1036 public void testEmptyGetCertVerifierData() {
1052 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit();
1053
1054 // Immediately make a request after initializing the engine. 1037 // Immediately make a request after initializing the engine.
1055 ExperimentalCronetEngine cronetEngine = testFramework.initCronetEngine() ; 1038 ExperimentalCronetEngine cronetEngine =
1039 new ExperimentalCronetEngine.Builder(getContext()).build();
1056 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 1040 TestUrlRequestCallback callback = new TestUrlRequestCallback();
1057 UrlRequest.Builder urlRequestBuilder = 1041 UrlRequest.Builder urlRequestBuilder =
1058 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); 1042 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor());
1059 urlRequestBuilder.build().start(); 1043 urlRequestBuilder.build().start();
1060 callback.blockForDone(); 1044 callback.blockForDone();
1061 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 1045 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
1062 1046
1063 try { 1047 try {
1064 cronetEngine.getCertVerifierData(-1); 1048 cronetEngine.getCertVerifierData(-1);
1065 fail("Should throw an exception"); 1049 fail("Should throw an exception");
1066 } catch (Exception e) { 1050 } catch (Exception e) {
1067 assertEquals("timeout must be a positive value", e.getMessage()); 1051 assertEquals("timeout must be a positive value", e.getMessage());
1068 } 1052 }
1069 // Because mUrl is http, getCertVerifierData() will return empty data. 1053 // Because mUrl is http, getCertVerifierData() will return empty data.
1070 String data = cronetEngine.getCertVerifierData(100); 1054 String data = cronetEngine.getCertVerifierData(100);
1071 assertTrue(data.isEmpty()); 1055 assertTrue(data.isEmpty());
1072 } 1056 }
1073 1057
1074 @SmallTest 1058 @SmallTest
1075 @Feature({"Cronet"}) 1059 @Feature({"Cronet"})
1076 public void testInitEngineStartTwoRequests() throws Exception { 1060 public void testInitEngineStartTwoRequests() throws Exception {
1077 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit();
1078
1079 // Make two requests after initializing the context. 1061 // Make two requests after initializing the context.
1080 CronetEngine cronetEngine = testFramework.initCronetEngine(); 1062 CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).build ();
1081 int[] statusCodes = {0, 0}; 1063 int[] statusCodes = {0, 0};
1082 String[] urls = {mUrl, mUrl404}; 1064 String[] urls = {mUrl, mUrl404};
1083 for (int i = 0; i < 2; i++) { 1065 for (int i = 0; i < 2; i++) {
1084 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 1066 TestUrlRequestCallback callback = new TestUrlRequestCallback();
1085 UrlRequest.Builder urlRequestBuilder = 1067 UrlRequest.Builder urlRequestBuilder =
1086 cronetEngine.newUrlRequestBuilder(urls[i], callback, callbac k.getExecutor()); 1068 cronetEngine.newUrlRequestBuilder(urls[i], callback, callbac k.getExecutor());
1087 urlRequestBuilder.build().start(); 1069 urlRequestBuilder.build().start();
1088 callback.blockForDone(); 1070 callback.blockForDone();
1089 statusCodes[i] = callback.mResponseInfo.getHttpStatusCode(); 1071 statusCodes[i] = callback.mResponseInfo.getHttpStatusCode();
1090 } 1072 }
1091 assertEquals(200, statusCodes[0]); 1073 assertEquals(200, statusCodes[0]);
1092 assertEquals(404, statusCodes[1]); 1074 assertEquals(404, statusCodes[1]);
1093 } 1075 }
1094 1076
1095 @SmallTest 1077 @SmallTest
1096 @Feature({"Cronet"}) 1078 @Feature({"Cronet"})
1097 public void testInitTwoEnginesSimultaneously() throws Exception { 1079 public void testInitTwoEnginesSimultaneously() throws Exception {
1098 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit();
1099
1100 // Threads will block on runBlocker to ensure simultaneous execution. 1080 // Threads will block on runBlocker to ensure simultaneous execution.
1101 ConditionVariable runBlocker = new ConditionVariable(false); 1081 ConditionVariable runBlocker = new ConditionVariable(false);
1102 RequestThread thread1 = new RequestThread(testFramework, mUrl, runBlocke r); 1082 RequestThread thread1 = new RequestThread(mUrl, runBlocker);
1103 RequestThread thread2 = new RequestThread(testFramework, mUrl404, runBlo cker); 1083 RequestThread thread2 = new RequestThread(mUrl404, runBlocker);
1104 1084
1105 thread1.start(); 1085 thread1.start();
1106 thread2.start(); 1086 thread2.start();
1107 runBlocker.open(); 1087 runBlocker.open();
1108 thread1.join(); 1088 thread1.join();
1109 thread2.join(); 1089 thread2.join();
1110 assertEquals(200, thread1.mCallback.mResponseInfo.getHttpStatusCode()); 1090 assertEquals(200, thread1.mCallback.mResponseInfo.getHttpStatusCode());
1111 assertEquals(404, thread2.mCallback.mResponseInfo.getHttpStatusCode()); 1091 assertEquals(404, thread2.mCallback.mResponseInfo.getHttpStatusCode());
1112 } 1092 }
1113 1093
1114 @SmallTest 1094 @SmallTest
1115 @Feature({"Cronet"}) 1095 @Feature({"Cronet"})
1116 public void testInitTwoEnginesInSequence() throws Exception { 1096 public void testInitTwoEnginesInSequence() throws Exception {
1117 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit();
1118
1119 ConditionVariable runBlocker = new ConditionVariable(true); 1097 ConditionVariable runBlocker = new ConditionVariable(true);
1120 RequestThread thread1 = new RequestThread(testFramework, mUrl, runBlocke r); 1098 RequestThread thread1 = new RequestThread(mUrl, runBlocker);
1121 RequestThread thread2 = new RequestThread(testFramework, mUrl404, runBlo cker); 1099 RequestThread thread2 = new RequestThread(mUrl404, runBlocker);
1122 1100
1123 thread1.start(); 1101 thread1.start();
1124 thread1.join(); 1102 thread1.join();
1125 thread2.start(); 1103 thread2.start();
1126 thread2.join(); 1104 thread2.join();
1127 assertEquals(200, thread1.mCallback.mResponseInfo.getHttpStatusCode()); 1105 assertEquals(200, thread1.mCallback.mResponseInfo.getHttpStatusCode());
1128 assertEquals(404, thread2.mCallback.mResponseInfo.getHttpStatusCode()); 1106 assertEquals(404, thread2.mCallback.mResponseInfo.getHttpStatusCode());
1129 } 1107 }
1130 1108
1131 @SmallTest 1109 @SmallTest
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 ExperimentalCronetEngine.Builder builder = 1156 ExperimentalCronetEngine.Builder builder =
1179 new ExperimentalCronetEngine.Builder(getContext()); 1157 new ExperimentalCronetEngine.Builder(getContext());
1180 builder.enableHttp2(false); 1158 builder.enableHttp2(false);
1181 builder.enableQuic(true); 1159 builder.enableQuic(true);
1182 builder.enableSdch(true); 1160 builder.enableSdch(true);
1183 builder.addQuicHint("example.com", 12, 34); 1161 builder.addQuicHint("example.com", 12, 34);
1184 builder.setCertVerifierData("test_cert_verifier_data"); 1162 builder.setCertVerifierData("test_cert_verifier_data");
1185 builder.enableHttpCache(HTTP_CACHE_IN_MEMORY, 54321); 1163 builder.enableHttpCache(HTTP_CACHE_IN_MEMORY, 54321);
1186 builder.setUserAgent("efgh"); 1164 builder.setUserAgent("efgh");
1187 builder.setExperimentalOptions("ijkl"); 1165 builder.setExperimentalOptions("ijkl");
1188 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext())) ; 1166 builder.setStoragePath(getTestStorage(getContext()));
1189 builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false); 1167 builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false);
1190 nativeVerifyUrlRequestContextConfig( 1168 nativeVerifyUrlRequestContextConfig(
1191 CronetUrlRequestContext.createNativeUrlRequestContextConfig( 1169 CronetUrlRequestContext.createNativeUrlRequestContextConfig(
1192 (CronetEngineBuilderImpl) builder.mBuilderDelegate), 1170 (CronetEngineBuilderImpl) builder.mBuilderDelegate),
1193 CronetTestFramework.getTestStorage(getContext())); 1171 getTestStorage(getContext()));
1194 } 1172 }
1195 1173
1196 // Verifies that CronetEngine.Builder config from testCronetEngineBuilderCon fig() is properly 1174 // Verifies that CronetEngine.Builder config from testCronetEngineBuilderCon fig() is properly
1197 // translated to a native UrlRequestContextConfig. 1175 // translated to a native UrlRequestContextConfig.
1198 private static native void nativeVerifyUrlRequestContextConfig(long config, String storagePath); 1176 private static native void nativeVerifyUrlRequestContextConfig(long config, String storagePath);
1199 1177
1200 private static class TestBadLibraryLoader extends CronetEngine.Builder.Libra ryLoader { 1178 private static class TestBadLibraryLoader extends CronetEngine.Builder.Libra ryLoader {
1201 private boolean mWasCalled = false; 1179 private boolean mWasCalled = false;
1202 1180
1203 public void loadLibrary(String libName) { 1181 public void loadLibrary(String libName) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 String resolverTestHostname = "some-weird-hostname"; 1238 String resolverTestHostname = "some-weird-hostname";
1261 URL testUrl = new URL(mUrl); 1239 URL testUrl = new URL(mUrl);
1262 ExperimentalCronetEngine.Builder cronetEngineBuilder = 1240 ExperimentalCronetEngine.Builder cronetEngineBuilder =
1263 new ExperimentalCronetEngine.Builder(getContext()); 1241 new ExperimentalCronetEngine.Builder(getContext());
1264 JSONObject hostResolverRules = new JSONObject().put( 1242 JSONObject hostResolverRules = new JSONObject().put(
1265 "host_resolver_rules", "MAP " + resolverTestHostname + " " + tes tUrl.getHost()); 1243 "host_resolver_rules", "MAP " + resolverTestHostname + " " + tes tUrl.getHost());
1266 JSONObject experimentalOptions = 1244 JSONObject experimentalOptions =
1267 new JSONObject().put("HostResolverRules", hostResolverRules); 1245 new JSONObject().put("HostResolverRules", hostResolverRules);
1268 cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString( )); 1246 cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString( ));
1269 1247
1270 final CronetTestFramework testFramework = 1248 final CronetEngine cronetEngine = cronetEngineBuilder.build();
1271 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, cron etEngineBuilder);
1272 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 1249 TestUrlRequestCallback callback = new TestUrlRequestCallback();
1273 URL requestUrl = 1250 URL requestUrl =
1274 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl .getFile()); 1251 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl .getFile());
1275 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( 1252 UrlRequest.Builder urlRequestBuilder = cronetEngine.newUrlRequestBuilder (
1276 requestUrl.toString(), callback, callback.getExecutor()); 1253 requestUrl.toString(), callback, callback.getExecutor());
1277 urlRequestBuilder.build().start(); 1254 urlRequestBuilder.build().start();
1278 callback.blockForDone(); 1255 callback.blockForDone();
1279 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 1256 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
1280 } 1257 }
1281 1258
1282 /** 1259 /**
1283 * Runs {@code r} on {@code engine}'s network thread. 1260 * Runs {@code r} on {@code engine}'s network thread.
1284 */ 1261 */
1285 private static void postToNetworkThread(final CronetEngine engine, final Run nable r) { 1262 private static void postToNetworkThread(final CronetEngine engine, final Run nable r) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 } 1322 }
1346 // Test that valid thread priority range (-20..19) is working. 1323 // Test that valid thread priority range (-20..19) is working.
1347 for (int threadPriority = -20; threadPriority < 20; threadPriority++) { 1324 for (int threadPriority = -20; threadPriority < 20; threadPriority++) {
1348 builder.setThreadPriority(threadPriority); 1325 builder.setThreadPriority(threadPriority);
1349 CronetEngine engine = builder.build(); 1326 CronetEngine engine = builder.build();
1350 assertEquals(threadPriority, getThreadPriority(engine)); 1327 assertEquals(threadPriority, getThreadPriority(engine));
1351 engine.shutdown(); 1328 engine.shutdown();
1352 } 1329 }
1353 } 1330 }
1354 } 1331 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698