OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |