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; | |
9 import android.os.ConditionVariable; | 8 import android.os.ConditionVariable; |
10 import android.os.Handler; | 9 import android.os.Handler; |
11 import android.os.Looper; | 10 import android.os.Looper; |
12 import android.os.StrictMode; | 11 import android.os.StrictMode; |
13 import android.test.suitebuilder.annotation.SmallTest; | 12 import android.test.suitebuilder.annotation.SmallTest; |
14 | 13 |
15 import org.chromium.base.FileUtils; | 14 import org.chromium.base.FileUtils; |
16 import org.chromium.base.PathUtils; | 15 import org.chromium.base.PathUtils; |
17 import org.chromium.base.annotations.JNINamespace; | 16 import org.chromium.base.annotations.JNINamespace; |
18 import org.chromium.base.test.util.Feature; | 17 import org.chromium.base.test.util.Feature; |
19 import org.chromium.net.MetricsTestUtil.TestExecutor; | 18 import org.chromium.net.MetricsTestUtil.TestExecutor; |
20 import org.chromium.net.TestUrlRequestCallback.ResponseStep; | 19 import org.chromium.net.TestUrlRequestCallback.ResponseStep; |
20 import org.chromium.net.impl.CronetEngineBase; | |
21 import org.chromium.net.impl.CronetEngineBuilderImpl; | |
21 import org.chromium.net.impl.CronetLibraryLoader; | 22 import org.chromium.net.impl.CronetLibraryLoader; |
22 import org.chromium.net.impl.CronetUrlRequestContext; | 23 import org.chromium.net.impl.CronetUrlRequestContext; |
23 import org.chromium.net.test.EmbeddedTestServer; | 24 import org.chromium.net.test.EmbeddedTestServer; |
24 import org.json.JSONObject; | 25 import org.json.JSONObject; |
25 | 26 |
26 import java.io.BufferedReader; | 27 import java.io.BufferedReader; |
27 import java.io.File; | 28 import java.io.File; |
28 import java.io.FileReader; | 29 import java.io.FileReader; |
29 import java.net.URL; | 30 import java.net.URL; |
30 import java.util.Arrays; | 31 import java.util.Arrays; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
82 mUrl = url; | 83 mUrl = url; |
83 mRunBlocker = runBlocker; | 84 mRunBlocker = runBlocker; |
84 } | 85 } |
85 | 86 |
86 @Override | 87 @Override |
87 public void run() { | 88 public void run() { |
88 mRunBlocker.block(); | 89 mRunBlocker.block(); |
89 CronetEngine cronetEngine = mTestFramework.initCronetEngine(); | 90 CronetEngine cronetEngine = mTestFramework.initCronetEngine(); |
90 mCallback = new TestUrlRequestCallback(); | 91 mCallback = new TestUrlRequestCallback(); |
91 UrlRequest.Builder urlRequestBuilder = | 92 UrlRequest.Builder urlRequestBuilder = |
92 new UrlRequest.Builder(mUrl, mCallback, mCallback.getExecuto r(), cronetEngine); | 93 cronetEngine.newUrlRequestBuilder(mUrl, mCallback, mCallback .getExecutor()); |
93 urlRequestBuilder.build().start(); | 94 urlRequestBuilder.build().start(); |
94 mCallback.blockForDone(); | 95 mCallback.blockForDone(); |
95 } | 96 } |
96 } | 97 } |
97 | 98 |
98 /** | 99 /** |
99 * Callback that shutdowns the request context when request has succeeded | 100 * Callback that shutdowns the request context when request has succeeded |
100 * or failed. | 101 * or failed. |
101 */ | 102 */ |
102 static class ShutdownTestUrlRequestCallback extends TestUrlRequestCallback { | 103 static class ShutdownTestUrlRequestCallback extends TestUrlRequestCallback { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
148 return mNetworkQualityThread; | 149 return mNetworkQualityThread; |
149 } | 150 } |
150 } | 151 } |
151 | 152 |
152 @SmallTest | 153 @SmallTest |
153 @Feature({"Cronet"}) | 154 @Feature({"Cronet"}) |
154 @SuppressWarnings("deprecation") | 155 @SuppressWarnings("deprecation") |
155 public void testConfigUserAgent() throws Exception { | 156 public void testConfigUserAgent() throws Exception { |
156 String userAgentName = "User-Agent"; | 157 String userAgentName = "User-Agent"; |
157 String userAgentValue = "User-Agent-Value"; | 158 String userAgentValue = "User-Agent-Value"; |
158 CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getC ontext()); | 159 ExperimentalCronetEngine.Builder cronetEngineBuilder = |
160 new ExperimentalCronetEngine.Builder(getContext()); | |
159 if (testingJavaImpl()) { | 161 if (testingJavaImpl()) { |
160 cronetEngineBuilder.enableLegacyMode(true); | 162 cronetEngineBuilder.enableLegacyMode(true); |
161 } | 163 } |
162 cronetEngineBuilder.setUserAgent(userAgentValue); | 164 cronetEngineBuilder.setUserAgent(userAgentValue); |
163 cronetEngineBuilder.setLibraryName("cronet_tests"); | 165 CronetTestUtil.setLibraryName(cronetEngineBuilder, "cronet_tests"); |
164 final CronetTestFramework testFramework = | 166 final CronetTestFramework testFramework = |
165 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron etEngineBuilder); | 167 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron etEngineBuilder); |
166 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re turns false if it's | 168 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re turns false if it's |
167 // already running | 169 // already running |
168 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 170 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
169 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 171 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
170 UrlRequest.Builder urlRequestBuilder = | 172 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
171 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAge ntName), callback, | 173 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call back.getExecutor()); |
172 callback.getExecutor(), testFramework.mCronetEngine); | |
173 urlRequestBuilder.build().start(); | 174 urlRequestBuilder.build().start(); |
174 callback.blockForDone(); | 175 callback.blockForDone(); |
175 assertEquals(userAgentValue, callback.mResponseAsString); | 176 assertEquals(userAgentValue, callback.mResponseAsString); |
176 } | 177 } |
177 | 178 |
178 @SmallTest | 179 @SmallTest |
179 @Feature({"Cronet"}) | 180 @Feature({"Cronet"}) |
180 @OnlyRunNativeCronet | 181 @OnlyRunNativeCronet |
181 public void testDataReductionProxyEnabled() throws Exception { | 182 public void testDataReductionProxyEnabled() throws Exception { |
182 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit(); | 183 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki pLibraryInit(); |
183 | 184 |
184 // Ensure native code is loaded before trying to start test server. | 185 // Ensure native code is loaded before trying to start test server. |
185 new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests").bu ild().shutdown(); | 186 ExperimentalCronetEngine.Builder engineBuilder = |
187 new ExperimentalCronetEngine.Builder(getContext()); | |
188 CronetTestUtil.setLibraryName(engineBuilder, "cronet_tests"); | |
189 engineBuilder.build().shutdown(); | |
186 | 190 |
187 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 191 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
188 if (!NativeTestServer.isDataReductionProxySupported()) { | 192 if (!NativeTestServer.isDataReductionProxySupported()) { |
189 return; | 193 return; |
190 } | 194 } |
191 String serverHostPort = NativeTestServer.getHostPort(); | 195 String serverHostPort = NativeTestServer.getHostPort(); |
192 | 196 |
193 // Enable the Data Reduction Proxy and configure it to use the test | 197 // Enable the Data Reduction Proxy and configure it to use the test |
194 // server as its primary proxy, and to check successfully that this | 198 // server as its primary proxy, and to check successfully that this |
195 // proxy is OK to use. | 199 // proxy is OK to use. |
196 CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getC ontext()); | 200 ExperimentalCronetEngine.Builder cronetEngineBuilder = |
201 new ExperimentalCronetEngine.Builder(getContext()); | |
197 cronetEngineBuilder.enableDataReductionProxy("test-key"); | 202 cronetEngineBuilder.enableDataReductionProxy("test-key"); |
198 cronetEngineBuilder.setDataReductionProxyOptions(serverHostPort, "unused .net:9999", | 203 cronetEngineBuilder.setDataReductionProxyOptions(serverHostPort, "unused .net:9999", |
199 NativeTestServer.getFileURL("/secureproxychecksuccess.txt")); | 204 NativeTestServer.getFileURL("/secureproxychecksuccess.txt")); |
200 cronetEngineBuilder.setLibraryName("cronet_tests"); | 205 CronetTestUtil.setLibraryName(cronetEngineBuilder, "cronet_tests"); |
201 testFramework.mCronetEngine = cronetEngineBuilder.build(); | 206 testFramework.mCronetEngine = (CronetEngineBase) cronetEngineBuilder.bui ld(); |
202 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 207 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
203 | 208 |
204 // Construct and start a request that can only be returned by the test | 209 // Construct and start a request that can only be returned by the test |
205 // server. This request will fail if the configuration logic for the | 210 // server. This request will fail if the configuration logic for the |
206 // Data Reduction Proxy is not used. | 211 // Data Reduction Proxy is not used. |
207 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 212 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
208 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt", callback, | 213 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt", callback, |
209 callback.getExecutor(), testFramework.mCronetEngine); | 214 callback.getExecutor()); |
210 urlRequestBuilder.build().start(); | 215 urlRequestBuilder.build().start(); |
211 callback.blockForDone(); | 216 callback.blockForDone(); |
212 | 217 |
213 // Verify that the request is successful and that the Data Reduction | 218 // Verify that the request is successful and that the Data Reduction |
214 // Proxy logic configured to use the test server as its proxy. | 219 // Proxy logic configured to use the test server as its proxy. |
215 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 220 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
216 assertEquals(serverHostPort, callback.mResponseInfo.getProxyServer()); | 221 assertEquals(serverHostPort, callback.mResponseInfo.getProxyServer()); |
217 assertEquals("http://DomainThatDoesnt.Resolve/datareductionproxysuccess. txt", | 222 assertEquals("http://DomainThatDoesnt.Resolve/datareductionproxysuccess. txt", |
218 callback.mResponseInfo.getUrl()); | 223 callback.mResponseInfo.getUrl()); |
219 } | 224 } |
220 | 225 |
221 @SmallTest | 226 @SmallTest |
222 @Feature({"Cronet"}) | 227 @Feature({"Cronet"}) |
223 public void testRealTimeNetworkQualityObservationsNotEnabled() throws Except ion { | 228 public void testRealTimeNetworkQualityObservationsNotEnabled() throws Except ion { |
224 CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(get Context()); | 229 ExperimentalCronetEngine.Builder mCronetEngineBuilder = |
230 new ExperimentalCronetEngine.Builder(getContext()); | |
225 final CronetTestFramework testFramework = | 231 final CronetTestFramework testFramework = |
226 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); | 232 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); |
227 Executor networkQualityExecutor = Executors.newSingleThreadExecutor(); | 233 Executor networkQualityExecutor = Executors.newSingleThreadExecutor(); |
228 TestNetworkQualityRttListener rttListener = | 234 TestNetworkQualityRttListener rttListener = |
229 new TestNetworkQualityRttListener(networkQualityExecutor); | 235 new TestNetworkQualityRttListener(networkQualityExecutor); |
230 TestNetworkQualityThroughputListener throughputListener = | 236 TestNetworkQualityThroughputListener throughputListener = |
231 new TestNetworkQualityThroughputListener(networkQualityExecutor, null); | 237 new TestNetworkQualityThroughputListener(networkQualityExecutor, null); |
232 try { | 238 try { |
233 testFramework.mCronetEngine.addRttListener(rttListener); | 239 testFramework.mCronetEngine.addRttListener(rttListener); |
234 fail("Should throw an exception."); | 240 fail("Should throw an exception."); |
235 } catch (IllegalStateException e) { | 241 } catch (IllegalStateException e) { |
236 } | 242 } |
237 try { | 243 try { |
238 testFramework.mCronetEngine.addThroughputListener(throughputListener ); | 244 testFramework.mCronetEngine.addThroughputListener(throughputListener ); |
239 fail("Should throw an exception."); | 245 fail("Should throw an exception."); |
240 } catch (IllegalStateException e) { | 246 } catch (IllegalStateException e) { |
241 } | 247 } |
242 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 248 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
243 UrlRequest.Builder builder = new UrlRequest.Builder( | 249 UrlRequest.Builder builder = testFramework.mCronetEngine.newUrlRequestBu ilder( |
244 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 250 mUrl, callback, callback.getExecutor()); |
245 UrlRequest urlRequest = builder.build(); | 251 UrlRequest urlRequest = builder.build(); |
246 | 252 |
247 urlRequest.start(); | 253 urlRequest.start(); |
248 callback.blockForDone(); | 254 callback.blockForDone(); |
249 assertEquals(0, rttListener.rttObservationCount()); | 255 assertEquals(0, rttListener.rttObservationCount()); |
250 assertEquals(0, throughputListener.throughputObservationCount()); | 256 assertEquals(0, throughputListener.throughputObservationCount()); |
251 testFramework.mCronetEngine.shutdown(); | 257 testFramework.mCronetEngine.shutdown(); |
252 } | 258 } |
253 | 259 |
254 @SmallTest | 260 @SmallTest |
255 @Feature({"Cronet"}) | 261 @Feature({"Cronet"}) |
256 public void testRealTimeNetworkQualityObservationsListenerRemoved() throws E xception { | 262 public void testRealTimeNetworkQualityObservationsListenerRemoved() throws E xception { |
257 CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(get Context()); | 263 ExperimentalCronetEngine.Builder mCronetEngineBuilder = |
264 new ExperimentalCronetEngine.Builder(getContext()); | |
258 TestExecutor networkQualityExecutor = new TestExecutor(); | 265 TestExecutor networkQualityExecutor = new TestExecutor(); |
259 TestNetworkQualityRttListener rttListener = | 266 TestNetworkQualityRttListener rttListener = |
260 new TestNetworkQualityRttListener(networkQualityExecutor); | 267 new TestNetworkQualityRttListener(networkQualityExecutor); |
261 mCronetEngineBuilder.enableNetworkQualityEstimator(true); | 268 mCronetEngineBuilder.enableNetworkQualityEstimator(true); |
262 final CronetTestFramework testFramework = | 269 final CronetTestFramework testFramework = |
263 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); | 270 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); |
264 testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(t rue, true); | 271 testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(t rue, true); |
265 | 272 |
266 testFramework.mCronetEngine.addRttListener(rttListener); | 273 testFramework.mCronetEngine.addRttListener(rttListener); |
267 testFramework.mCronetEngine.removeRttListener(rttListener); | 274 testFramework.mCronetEngine.removeRttListener(rttListener); |
268 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 275 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
269 UrlRequest.Builder builder = new UrlRequest.Builder( | 276 UrlRequest.Builder builder = testFramework.mCronetEngine.newUrlRequestBu ilder( |
270 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 277 mUrl, callback, callback.getExecutor()); |
271 UrlRequest urlRequest = builder.build(); | 278 UrlRequest urlRequest = builder.build(); |
272 urlRequest.start(); | 279 urlRequest.start(); |
273 callback.blockForDone(); | 280 callback.blockForDone(); |
274 networkQualityExecutor.runAllTasks(); | 281 networkQualityExecutor.runAllTasks(); |
275 assertEquals(0, rttListener.rttObservationCount()); | 282 assertEquals(0, rttListener.rttObservationCount()); |
276 testFramework.mCronetEngine.shutdown(); | 283 testFramework.mCronetEngine.shutdown(); |
277 } | 284 } |
278 | 285 |
279 @SmallTest | 286 @SmallTest |
280 @Feature({"Cronet"}) | 287 @Feature({"Cronet"}) |
281 public void testRealTimeNetworkQualityObservationsQuicDisabled() throws Exce ption { | 288 public void testRealTimeNetworkQualityObservationsQuicDisabled() throws Exce ption { |
282 CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(get Context()); | 289 ExperimentalCronetEngine.Builder mCronetEngineBuilder = |
290 new ExperimentalCronetEngine.Builder(getContext()); | |
283 Executor listenersExecutor = Executors.newSingleThreadExecutor(new Execu torThreadFactory()); | 291 Executor listenersExecutor = Executors.newSingleThreadExecutor(new Execu torThreadFactory()); |
284 ConditionVariable waitForThroughput = new ConditionVariable(); | 292 ConditionVariable waitForThroughput = new ConditionVariable(); |
285 TestNetworkQualityRttListener rttListener = | 293 TestNetworkQualityRttListener rttListener = |
286 new TestNetworkQualityRttListener(listenersExecutor); | 294 new TestNetworkQualityRttListener(listenersExecutor); |
287 TestNetworkQualityThroughputListener throughputListener = | 295 TestNetworkQualityThroughputListener throughputListener = |
288 new TestNetworkQualityThroughputListener(listenersExecutor, wait ForThroughput); | 296 new TestNetworkQualityThroughputListener(listenersExecutor, wait ForThroughput); |
289 mCronetEngineBuilder.enableHttp2(true).enableQuic(false).enableNetworkQu alityEstimator( | 297 mCronetEngineBuilder.enableNetworkQualityEstimator(true).enableHttp2(tru e).enableQuic( |
290 true); | 298 false); |
291 final CronetTestFramework testFramework = | 299 final CronetTestFramework testFramework = |
292 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); | 300 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro netEngineBuilder); |
293 testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(t rue, true); | 301 testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(t rue, true); |
294 | 302 |
295 testFramework.mCronetEngine.addRttListener(rttListener); | 303 testFramework.mCronetEngine.addRttListener(rttListener); |
296 testFramework.mCronetEngine.addThroughputListener(throughputListener); | 304 testFramework.mCronetEngine.addThroughputListener(throughputListener); |
297 | 305 |
298 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 306 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
299 UrlRequest.Builder builder = new UrlRequest.Builder( | 307 UrlRequest.Builder builder = testFramework.mCronetEngine.newUrlRequestBu ilder( |
300 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 308 mUrl, callback, callback.getExecutor()); |
301 UrlRequest urlRequest = builder.build(); | 309 UrlRequest urlRequest = builder.build(); |
302 urlRequest.start(); | 310 urlRequest.start(); |
303 callback.blockForDone(); | 311 callback.blockForDone(); |
304 | 312 |
305 // Throughput observation is posted to the network quality estimator on the network thread | 313 // Throughput observation is posted to the network quality estimator on the network thread |
306 // after the UrlRequest is completed. The observations are then eventual ly posted to | 314 // after the UrlRequest is completed. The observations are then eventual ly posted to |
307 // throughput listeners on the executor provided to network quality. | 315 // throughput listeners on the executor provided to network quality. |
308 waitForThroughput.block(); | 316 waitForThroughput.block(); |
309 assertTrue(throughputListener.throughputObservationCount() > 0); | 317 assertTrue(throughputListener.throughputObservationCount() > 0); |
310 | 318 |
(...skipping 26 matching lines...) Expand all Loading... | |
337 @Feature({"Cronet"}) | 345 @Feature({"Cronet"}) |
338 // TODO: Remove the annotation after fixing http://crbug.com/637979 & http:/ /crbug.com/637972 | 346 // TODO: Remove the annotation after fixing http://crbug.com/637979 & http:/ /crbug.com/637972 |
339 @OnlyRunNativeCronet | 347 @OnlyRunNativeCronet |
340 public void testShutdown() throws Exception { | 348 public void testShutdown() throws Exception { |
341 final CronetTestFramework testFramework = startCronetTestFramework(); | 349 final CronetTestFramework testFramework = startCronetTestFramework(); |
342 ShutdownTestUrlRequestCallback callback = | 350 ShutdownTestUrlRequestCallback callback = |
343 new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine); | 351 new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine); |
344 // Block callback when response starts to verify that shutdown fails | 352 // Block callback when response starts to verify that shutdown fails |
345 // if there are active requests. | 353 // if there are active requests. |
346 callback.setAutoAdvance(false); | 354 callback.setAutoAdvance(false); |
347 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 355 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
348 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 356 mUrl, callback, callback.getExecutor()); |
349 UrlRequest urlRequest = urlRequestBuilder.build(); | 357 UrlRequest urlRequest = urlRequestBuilder.build(); |
350 urlRequest.start(); | 358 urlRequest.start(); |
351 try { | 359 try { |
352 testFramework.mCronetEngine.shutdown(); | 360 testFramework.mCronetEngine.shutdown(); |
353 fail("Should throw an exception"); | 361 fail("Should throw an exception"); |
354 } catch (Exception e) { | 362 } catch (Exception e) { |
355 assertEquals("Cannot shutdown with active requests.", | 363 assertEquals("Cannot shutdown with active requests.", |
356 e.getMessage()); | 364 e.getMessage()); |
357 } | 365 } |
358 | 366 |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
473 } | 481 } |
474 | 482 |
475 @SmallTest | 483 @SmallTest |
476 @Feature({"Cronet"}) | 484 @Feature({"Cronet"}) |
477 // TODO: Remove the annotation after fixing http://crbug.com/637972 | 485 // TODO: Remove the annotation after fixing http://crbug.com/637972 |
478 @OnlyRunNativeCronet | 486 @OnlyRunNativeCronet |
479 public void testShutdownAfterError() throws Exception { | 487 public void testShutdownAfterError() throws Exception { |
480 final CronetTestFramework testFramework = startCronetTestFramework(); | 488 final CronetTestFramework testFramework = startCronetTestFramework(); |
481 ShutdownTestUrlRequestCallback callback = | 489 ShutdownTestUrlRequestCallback callback = |
482 new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine); | 490 new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine); |
483 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(MOCK_CRONE T_TEST_FAILED_URL, | 491 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
484 callback, callback.getExecutor(), testFramework.mCronetEngine); | 492 MOCK_CRONET_TEST_FAILED_URL, callback, callback.getExecutor()); |
485 urlRequestBuilder.build().start(); | 493 urlRequestBuilder.build().start(); |
486 callback.blockForDone(); | 494 callback.blockForDone(); |
487 assertTrue(callback.mOnErrorCalled); | 495 assertTrue(callback.mOnErrorCalled); |
488 callback.blockForCallbackToComplete(); | 496 callback.blockForCallbackToComplete(); |
489 callback.shutdownExecutor(); | 497 callback.shutdownExecutor(); |
490 } | 498 } |
491 | 499 |
492 @SmallTest | 500 @SmallTest |
493 @Feature({"Cronet"}) | 501 @Feature({"Cronet"}) |
494 public void testShutdownAfterCancel() throws Exception { | 502 public void testShutdownAfterCancel() throws Exception { |
495 final CronetTestFramework testFramework = startCronetTestFramework(); | 503 final CronetTestFramework testFramework = startCronetTestFramework(); |
496 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 504 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
497 // Block callback when response starts to verify that shutdown fails | 505 // Block callback when response starts to verify that shutdown fails |
498 // if there are active requests. | 506 // if there are active requests. |
499 callback.setAutoAdvance(false); | 507 callback.setAutoAdvance(false); |
500 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 508 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
501 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 509 mUrl, callback, callback.getExecutor()); |
502 UrlRequest urlRequest = urlRequestBuilder.build(); | 510 UrlRequest urlRequest = urlRequestBuilder.build(); |
503 urlRequest.start(); | 511 urlRequest.start(); |
504 try { | 512 try { |
505 testFramework.mCronetEngine.shutdown(); | 513 testFramework.mCronetEngine.shutdown(); |
506 fail("Should throw an exception"); | 514 fail("Should throw an exception"); |
507 } catch (Exception e) { | 515 } catch (Exception e) { |
508 assertEquals("Cannot shutdown with active requests.", | 516 assertEquals("Cannot shutdown with active requests.", |
509 e.getMessage()); | 517 e.getMessage()); |
510 } | 518 } |
511 callback.waitForNextStep(); | 519 callback.waitForNextStep(); |
512 assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep); | 520 assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep); |
513 urlRequest.cancel(); | 521 urlRequest.cancel(); |
514 testFramework.mCronetEngine.shutdown(); | 522 testFramework.mCronetEngine.shutdown(); |
515 } | 523 } |
516 | 524 |
517 @SmallTest | 525 @SmallTest |
518 @Feature({"Cronet"}) | 526 @Feature({"Cronet"}) |
519 @OnlyRunNativeCronet // No netlogs for pure java impl | 527 @OnlyRunNativeCronet // No netlogs for pure java impl |
520 public void testNetLog() throws Exception { | 528 public void testNetLog() throws Exception { |
521 Context context = getContext(); | 529 Context context = getContext(); |
522 File directory = new File(PathUtils.getDataDirectory()); | 530 File directory = new File(PathUtils.getDataDirectory()); |
523 File file = File.createTempFile("cronet", "json", directory); | 531 File file = File.createTempFile("cronet", "json", directory); |
524 CronetEngine cronetEngine = new CronetUrlRequestContext( | 532 CronetEngine cronetEngine = new CronetUrlRequestContext( |
525 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 533 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
526 // Start NetLog immediately after the request context is created to make | 534 // Start NetLog immediately after the request context is created to make |
527 // sure that the call won't crash the app even when the native request | 535 // sure that the call won't crash the app even when the native request |
528 // context is not fully initialized. See crbug.com/470196. | 536 // context is not fully initialized. See crbug.com/470196. |
529 cronetEngine.startNetLogToFile(file.getPath(), false); | 537 cronetEngine.startNetLogToFile(file.getPath(), false); |
530 | 538 |
531 // Start a request. | 539 // Start a request. |
532 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 540 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
533 UrlRequest.Builder urlRequestBuilder = | 541 UrlRequest.Builder urlRequestBuilder = |
534 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 542 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
535 urlRequestBuilder.build().start(); | 543 urlRequestBuilder.build().start(); |
536 callback.blockForDone(); | 544 callback.blockForDone(); |
537 cronetEngine.stopNetLog(); | 545 cronetEngine.stopNetLog(); |
538 assertTrue(file.exists()); | 546 assertTrue(file.exists()); |
539 assertTrue(file.length() != 0); | 547 assertTrue(file.length() != 0); |
540 assertFalse(hasBytesInNetLog(file)); | 548 assertFalse(hasBytesInNetLog(file)); |
541 assertTrue(file.delete()); | 549 assertTrue(file.delete()); |
542 assertTrue(!file.exists()); | 550 assertTrue(!file.exists()); |
543 } | 551 } |
544 | 552 |
545 @SmallTest | 553 @SmallTest |
546 @Feature({"Cronet"}) | 554 @Feature({"Cronet"}) |
547 @OnlyRunNativeCronet // No netlogs for pure java impl | 555 @OnlyRunNativeCronet // No netlogs for pure java impl |
548 public void testBoundedFileNetLog() throws Exception { | 556 public void testBoundedFileNetLog() throws Exception { |
549 Context context = getContext(); | 557 Context context = getContext(); |
550 File directory = new File(PathUtils.getDataDirectory()); | 558 File directory = new File(PathUtils.getDataDirectory()); |
551 File netLogDir = new File(directory, "NetLog"); | 559 File netLogDir = new File(directory, "NetLog"); |
552 assertFalse(netLogDir.exists()); | 560 assertFalse(netLogDir.exists()); |
553 assertTrue(netLogDir.mkdir()); | 561 assertTrue(netLogDir.mkdir()); |
554 File eventFile = new File(netLogDir, "event_file_0.json"); | 562 File eventFile = new File(netLogDir, "event_file_0.json"); |
555 CronetEngine cronetEngine = new CronetUrlRequestContext( | 563 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( |
556 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 564 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
557 // Start NetLog immediately after the request context is created to make | 565 // Start NetLog immediately after the request context is created to make |
558 // sure that the call won't crash the app even when the native request | 566 // sure that the call won't crash the app even when the native request |
559 // context is not fully initialized. See crbug.com/470196. | 567 // context is not fully initialized. See crbug.com/470196. |
560 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE ); | 568 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE ); |
561 | 569 |
562 // Start a request. | 570 // Start a request. |
563 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 571 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
564 UrlRequest.Builder urlRequestBuilder = | 572 UrlRequest.Builder urlRequestBuilder = |
565 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 573 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
566 urlRequestBuilder.build().start(); | 574 urlRequestBuilder.build().start(); |
567 callback.blockForDone(); | 575 callback.blockForDone(); |
568 cronetEngine.stopNetLog(); | 576 cronetEngine.stopNetLog(); |
569 assertTrue(eventFile.exists()); | 577 assertTrue(eventFile.exists()); |
570 assertTrue(eventFile.length() != 0); | 578 assertTrue(eventFile.length() != 0); |
571 assertFalse(hasBytesInNetLog(eventFile)); | 579 assertFalse(hasBytesInNetLog(eventFile)); |
572 FileUtils.recursivelyDeleteFile(netLogDir); | 580 FileUtils.recursivelyDeleteFile(netLogDir); |
573 assertFalse(netLogDir.exists()); | 581 assertFalse(netLogDir.exists()); |
574 } | 582 } |
575 | 583 |
576 @SmallTest | 584 @SmallTest |
577 @Feature({"Cronet"}) | 585 @Feature({"Cronet"}) |
578 @OnlyRunNativeCronet // No netlogs for pure java impl | 586 @OnlyRunNativeCronet // No netlogs for pure java impl |
579 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 587 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
580 // will take care of it. crbug.com/623701. | 588 // will take care of it. crbug.com/623701. |
581 public void testNoStopNetLog() throws Exception { | 589 public void testNoStopNetLog() throws Exception { |
582 Context context = getContext(); | 590 Context context = getContext(); |
583 File directory = new File(PathUtils.getDataDirectory()); | 591 File directory = new File(PathUtils.getDataDirectory()); |
584 File file = File.createTempFile("cronet", "json", directory); | 592 File file = File.createTempFile("cronet", "json", directory); |
585 CronetEngine cronetEngine = new CronetUrlRequestContext( | 593 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( |
586 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 594 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
587 cronetEngine.startNetLogToFile(file.getPath(), false); | 595 cronetEngine.startNetLogToFile(file.getPath(), false); |
588 | 596 |
589 // Start a request. | 597 // Start a request. |
590 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 598 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
591 UrlRequest.Builder urlRequestBuilder = | 599 UrlRequest.Builder urlRequestBuilder = |
592 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 600 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
593 urlRequestBuilder.build().start(); | 601 urlRequestBuilder.build().start(); |
594 callback.blockForDone(); | 602 callback.blockForDone(); |
595 // Shut down the engine without calling stopNetLog. | 603 // Shut down the engine without calling stopNetLog. |
596 cronetEngine.shutdown(); | 604 cronetEngine.shutdown(); |
597 assertTrue(file.exists()); | 605 assertTrue(file.exists()); |
598 assertTrue(file.length() != 0); | 606 assertTrue(file.length() != 0); |
599 assertFalse(hasBytesInNetLog(file)); | 607 assertFalse(hasBytesInNetLog(file)); |
600 assertTrue(file.delete()); | 608 assertTrue(file.delete()); |
601 assertTrue(!file.exists()); | 609 assertTrue(!file.exists()); |
602 } | 610 } |
603 | 611 |
604 @SmallTest | 612 @SmallTest |
605 @Feature({"Cronet"}) | 613 @Feature({"Cronet"}) |
606 @OnlyRunNativeCronet // No netlogs for pure java impl | 614 @OnlyRunNativeCronet // No netlogs for pure java impl |
607 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 615 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
608 // will take care of it. crbug.com/623701. | 616 // will take care of it. crbug.com/623701. |
609 public void testNoStopBoundedFileNetLog() throws Exception { | 617 public void testNoStopBoundedFileNetLog() throws Exception { |
610 Context context = getContext(); | 618 Context context = getContext(); |
611 File directory = new File(PathUtils.getDataDirectory()); | 619 File directory = new File(PathUtils.getDataDirectory()); |
612 File netLogDir = new File(directory, "NetLog"); | 620 File netLogDir = new File(directory, "NetLog"); |
613 assertFalse(netLogDir.exists()); | 621 assertFalse(netLogDir.exists()); |
614 assertTrue(netLogDir.mkdir()); | 622 assertTrue(netLogDir.mkdir()); |
615 File eventFile = new File(netLogDir, "event_file_0.json"); | 623 File eventFile = new File(netLogDir, "event_file_0.json"); |
616 CronetEngine cronetEngine = new CronetUrlRequestContext( | 624 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( |
617 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 625 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
618 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE ); | 626 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE ); |
619 | 627 |
620 // Start a request. | 628 // Start a request. |
621 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 629 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
622 UrlRequest.Builder urlRequestBuilder = | 630 UrlRequest.Builder urlRequestBuilder = |
623 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 631 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
624 urlRequestBuilder.build().start(); | 632 urlRequestBuilder.build().start(); |
625 callback.blockForDone(); | 633 callback.blockForDone(); |
626 // Shut down the engine without calling stopNetLog. | 634 // Shut down the engine without calling stopNetLog. |
627 cronetEngine.shutdown(); | 635 cronetEngine.shutdown(); |
628 assertTrue(eventFile.exists()); | 636 assertTrue(eventFile.exists()); |
629 assertTrue(eventFile.length() != 0); | 637 assertTrue(eventFile.length() != 0); |
630 | 638 |
631 FileUtils.recursivelyDeleteFile(netLogDir); | 639 FileUtils.recursivelyDeleteFile(netLogDir); |
632 assertFalse(netLogDir.exists()); | 640 assertFalse(netLogDir.exists()); |
633 } | 641 } |
634 | 642 |
635 @SmallTest | 643 @SmallTest |
636 @Feature({"Cronet"}) | 644 @Feature({"Cronet"}) |
637 @OnlyRunNativeCronet | 645 @OnlyRunNativeCronet |
638 // Tests that NetLog contains events emitted by all live CronetEngines. | 646 // Tests that NetLog contains events emitted by all live CronetEngines. |
639 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { | 647 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { |
640 Context context = getContext(); | 648 Context context = getContext(); |
641 File directory = new File(PathUtils.getDataDirectory()); | 649 File directory = new File(PathUtils.getDataDirectory()); |
642 File file1 = File.createTempFile("cronet1", "json", directory); | 650 File file1 = File.createTempFile("cronet1", "json", directory); |
643 File file2 = File.createTempFile("cronet2", "json", directory); | 651 File file2 = File.createTempFile("cronet2", "json", directory); |
644 CronetEngine cronetEngine1 = new CronetUrlRequestContext( | 652 CronetEngine cronetEngine1 = new CronetUrlRequestContext( |
645 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 653 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
646 CronetEngine cronetEngine2 = new CronetUrlRequestContext( | 654 CronetEngine cronetEngine2 = new CronetUrlRequestContext( |
647 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 655 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
648 | 656 |
649 cronetEngine1.startNetLogToFile(file1.getPath(), false); | 657 cronetEngine1.startNetLogToFile(file1.getPath(), false); |
650 cronetEngine2.startNetLogToFile(file2.getPath(), false); | 658 cronetEngine2.startNetLogToFile(file2.getPath(), false); |
651 | 659 |
652 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 660 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
653 // initialized before testing the logs. | 661 // initialized before testing the logs. |
654 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 662 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
655 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 663 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
656 | 664 |
657 // Use cronetEngine1 to make a request to mUrl404. | 665 // Use cronetEngine1 to make a request to mUrl404. |
(...skipping 26 matching lines...) Expand all Loading... | |
684 File netLogDir1 = new File(directory, "NetLog1"); | 692 File netLogDir1 = new File(directory, "NetLog1"); |
685 assertFalse(netLogDir1.exists()); | 693 assertFalse(netLogDir1.exists()); |
686 assertTrue(netLogDir1.mkdir()); | 694 assertTrue(netLogDir1.mkdir()); |
687 File netLogDir2 = new File(directory, "NetLog2"); | 695 File netLogDir2 = new File(directory, "NetLog2"); |
688 assertFalse(netLogDir2.exists()); | 696 assertFalse(netLogDir2.exists()); |
689 assertTrue(netLogDir2.mkdir()); | 697 assertTrue(netLogDir2.mkdir()); |
690 File eventFile1 = new File(netLogDir1, "event_file_0.json"); | 698 File eventFile1 = new File(netLogDir1, "event_file_0.json"); |
691 File eventFile2 = new File(netLogDir2, "event_file_0.json"); | 699 File eventFile2 = new File(netLogDir2, "event_file_0.json"); |
692 | 700 |
693 CronetUrlRequestContext cronetEngine1 = new CronetUrlRequestContext( | 701 CronetUrlRequestContext cronetEngine1 = new CronetUrlRequestContext( |
694 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 702 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
695 CronetUrlRequestContext cronetEngine2 = new CronetUrlRequestContext( | 703 CronetUrlRequestContext cronetEngine2 = new CronetUrlRequestContext( |
696 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 704 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
697 | 705 |
698 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI ZE); | 706 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI ZE); |
699 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI ZE); | 707 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI ZE); |
700 | 708 |
701 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 709 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
702 // initialized before testing the logs. | 710 // initialized before testing the logs. |
703 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 711 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
704 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 712 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
705 | 713 |
706 // Use cronetEngine1 to make a request to mUrl404. | 714 // Use cronetEngine1 to make a request to mUrl404. |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
772 } | 780 } |
773 Executor directExecutor = new Executor() { | 781 Executor directExecutor = new Executor() { |
774 @Override | 782 @Override |
775 public void execute(Runnable command) { | 783 public void execute(Runnable command) { |
776 command.run(); | 784 command.run(); |
777 } | 785 } |
778 }; | 786 }; |
779 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); | 787 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); |
780 callback.setAllowDirectExecutor(true); | 788 callback.setAllowDirectExecutor(true); |
781 UrlRequest.Builder urlRequestBuilder = | 789 UrlRequest.Builder urlRequestBuilder = |
782 new UrlRequest.Builder(url, callback, directExecutor, testFramew ork.mCronetEngine); | 790 testFramework.mCronetEngine.newUrlRequestBuilder(url, callback, directExecutor); |
783 urlRequestBuilder.allowDirectExecutor(); | 791 urlRequestBuilder.allowDirectExecutor(); |
784 urlRequestBuilder.build().start(); | 792 urlRequestBuilder.build().start(); |
785 callback.blockForDone(); | 793 callback.blockForDone(); |
786 assertTrue(thrown.get() instanceof RuntimeException); | 794 assertTrue(thrown.get() instanceof RuntimeException); |
787 } | 795 } |
788 | 796 |
789 @SmallTest | 797 @SmallTest |
790 @Feature({"Cronet"}) | 798 @Feature({"Cronet"}) |
791 @OnlyRunNativeCronet | 799 @OnlyRunNativeCronet |
792 // Tests that if CronetEngine is shut down when reading from disk cache, | 800 // Tests that if CronetEngine is shut down when reading from disk cache, |
(...skipping 23 matching lines...) Expand all Loading... | |
816 throw new RuntimeException("Unexpected"); | 824 throw new RuntimeException("Unexpected"); |
817 } | 825 } |
818 | 826 |
819 @Override | 827 @Override |
820 public void onFailed( | 828 public void onFailed( |
821 UrlRequest request, UrlResponseInfo info, UrlRequestExceptio n error) { | 829 UrlRequest request, UrlResponseInfo info, UrlRequestExceptio n error) { |
822 throw new RuntimeException("Unexpected"); | 830 throw new RuntimeException("Unexpected"); |
823 } | 831 } |
824 } | 832 } |
825 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); | 833 CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); |
826 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 834 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
827 url, callback, callback.getExecutor(), testFramework.mCronetEngi ne); | 835 url, callback, callback.getExecutor()); |
828 urlRequestBuilder.build().start(); | 836 urlRequestBuilder.build().start(); |
829 callback.blockForDone(); | 837 callback.blockForDone(); |
830 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 838 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
831 assertTrue(callback.mResponseInfo.wasCached()); | 839 assertTrue(callback.mResponseInfo.wasCached()); |
832 assertTrue(callback.mOnCanceledCalled); | 840 assertTrue(callback.mOnCanceledCalled); |
833 } | 841 } |
834 | 842 |
835 @SmallTest | 843 @SmallTest |
836 @Feature({"Cronet"}) | 844 @Feature({"Cronet"}) |
837 @OnlyRunNativeCronet | 845 @OnlyRunNativeCronet |
838 public void testNetLogAfterShutdown() throws Exception { | 846 public void testNetLogAfterShutdown() throws Exception { |
839 final CronetTestFramework testFramework = startCronetTestFramework(); | 847 final CronetTestFramework testFramework = startCronetTestFramework(); |
840 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 848 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
841 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 849 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
842 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 850 mUrl, callback, callback.getExecutor()); |
843 urlRequestBuilder.build().start(); | 851 urlRequestBuilder.build().start(); |
844 callback.blockForDone(); | 852 callback.blockForDone(); |
845 testFramework.mCronetEngine.shutdown(); | 853 testFramework.mCronetEngine.shutdown(); |
846 | 854 |
847 File directory = new File(PathUtils.getDataDirectory()); | 855 File directory = new File(PathUtils.getDataDirectory()); |
848 File file = File.createTempFile("cronet", "json", directory); | 856 File file = File.createTempFile("cronet", "json", directory); |
849 try { | 857 try { |
850 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false) ; | 858 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false) ; |
851 fail("Should throw an exception."); | 859 fail("Should throw an exception."); |
852 } catch (Exception e) { | 860 } catch (Exception e) { |
853 assertEquals("Engine is shut down.", e.getMessage()); | 861 assertEquals("Engine is shut down.", e.getMessage()); |
854 } | 862 } |
855 assertFalse(hasBytesInNetLog(file)); | 863 assertFalse(hasBytesInNetLog(file)); |
856 assertTrue(file.delete()); | 864 assertTrue(file.delete()); |
857 assertTrue(!file.exists()); | 865 assertTrue(!file.exists()); |
858 } | 866 } |
859 | 867 |
860 @SmallTest | 868 @SmallTest |
861 @Feature({"Cronet"}) | 869 @Feature({"Cronet"}) |
862 @OnlyRunNativeCronet | 870 @OnlyRunNativeCronet |
863 public void testBoundedFileNetLogAfterShutdown() throws Exception { | 871 public void testBoundedFileNetLogAfterShutdown() throws Exception { |
864 final CronetTestFramework testFramework = startCronetTestFramework(); | 872 final CronetTestFramework testFramework = startCronetTestFramework(); |
865 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 873 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
866 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 874 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
867 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 875 mUrl, callback, callback.getExecutor()); |
868 urlRequestBuilder.build().start(); | 876 urlRequestBuilder.build().start(); |
869 callback.blockForDone(); | 877 callback.blockForDone(); |
870 testFramework.mCronetEngine.shutdown(); | 878 testFramework.mCronetEngine.shutdown(); |
871 | 879 |
872 File directory = new File(PathUtils.getDataDirectory()); | 880 File directory = new File(PathUtils.getDataDirectory()); |
873 File netLogDir = new File(directory, "NetLog"); | 881 File netLogDir = new File(directory, "NetLog"); |
874 assertFalse(netLogDir.exists()); | 882 assertFalse(netLogDir.exists()); |
875 assertTrue(netLogDir.mkdir()); | 883 assertTrue(netLogDir.mkdir()); |
876 File constantsFile = new File(netLogDir, "constants.json"); | 884 File constantsFile = new File(netLogDir, "constants.json"); |
877 try { | 885 try { |
(...skipping 14 matching lines...) Expand all Loading... | |
892 final CronetTestFramework testFramework = startCronetTestFramework(); | 900 final CronetTestFramework testFramework = startCronetTestFramework(); |
893 File directory = new File(PathUtils.getDataDirectory()); | 901 File directory = new File(PathUtils.getDataDirectory()); |
894 File file = File.createTempFile("cronet", "json", directory); | 902 File file = File.createTempFile("cronet", "json", directory); |
895 // Start NetLog multiple times. | 903 // Start NetLog multiple times. |
896 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 904 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
897 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 905 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
898 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 906 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
899 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 907 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
900 // Start a request. | 908 // Start a request. |
901 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 909 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
902 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 910 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
903 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 911 mUrl, callback, callback.getExecutor()); |
904 urlRequestBuilder.build().start(); | 912 urlRequestBuilder.build().start(); |
905 callback.blockForDone(); | 913 callback.blockForDone(); |
906 testFramework.mCronetEngine.stopNetLog(); | 914 testFramework.mCronetEngine.stopNetLog(); |
907 assertTrue(file.exists()); | 915 assertTrue(file.exists()); |
908 assertTrue(file.length() != 0); | 916 assertTrue(file.length() != 0); |
909 assertFalse(hasBytesInNetLog(file)); | 917 assertFalse(hasBytesInNetLog(file)); |
910 assertTrue(file.delete()); | 918 assertTrue(file.delete()); |
911 assertTrue(!file.exists()); | 919 assertTrue(!file.exists()); |
912 } | 920 } |
913 | 921 |
914 @SmallTest | 922 @SmallTest |
915 @Feature({"Cronet"}) | 923 @Feature({"Cronet"}) |
916 public void testBoundedFileNetLogStartMultipleTimes() throws Exception { | 924 public void testBoundedFileNetLogStartMultipleTimes() throws Exception { |
917 final CronetTestFramework testFramework = startCronetTestFramework(); | 925 final CronetTestFramework testFramework = startCronetTestFramework(); |
918 File directory = new File(PathUtils.getDataDirectory()); | 926 File directory = new File(PathUtils.getDataDirectory()); |
919 File netLogDir = new File(directory, "NetLog"); | 927 File netLogDir = new File(directory, "NetLog"); |
920 assertFalse(netLogDir.exists()); | 928 assertFalse(netLogDir.exists()); |
921 assertTrue(netLogDir.mkdir()); | 929 assertTrue(netLogDir.mkdir()); |
922 File eventFile = new File(netLogDir, "event_file_0.json"); | 930 File eventFile = new File(netLogDir, "event_file_0.json"); |
923 // Start NetLog multiple times. This should be equivalent to starting Ne tLog | 931 // Start NetLog multiple times. This should be equivalent to starting Ne tLog |
924 // once. Each subsequent start (without calling stopNetLog) should be a no-op. | 932 // once. Each subsequent start (without calling stopNetLog) should be a no-op. |
925 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); | 933 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); |
926 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); | 934 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); |
927 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); | 935 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); |
928 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); | 936 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); |
929 // Start a request. | 937 // Start a request. |
930 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 938 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
931 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 939 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
932 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 940 mUrl, callback, callback.getExecutor()); |
933 urlRequestBuilder.build().start(); | 941 urlRequestBuilder.build().start(); |
934 callback.blockForDone(); | 942 callback.blockForDone(); |
935 testFramework.mCronetEngine.stopNetLog(); | 943 testFramework.mCronetEngine.stopNetLog(); |
936 assertTrue(eventFile.exists()); | 944 assertTrue(eventFile.exists()); |
937 assertTrue(eventFile.length() != 0); | 945 assertTrue(eventFile.length() != 0); |
938 assertFalse(hasBytesInNetLog(eventFile)); | 946 assertFalse(hasBytesInNetLog(eventFile)); |
939 FileUtils.recursivelyDeleteFile(netLogDir); | 947 FileUtils.recursivelyDeleteFile(netLogDir); |
940 assertFalse(netLogDir.exists()); | 948 assertFalse(netLogDir.exists()); |
941 } | 949 } |
942 | 950 |
943 @SmallTest | 951 @SmallTest |
944 @Feature({"Cronet"}) | 952 @Feature({"Cronet"}) |
945 public void testNetLogStopMultipleTimes() throws Exception { | 953 public void testNetLogStopMultipleTimes() throws Exception { |
946 final CronetTestFramework testFramework = startCronetTestFramework(); | 954 final CronetTestFramework testFramework = startCronetTestFramework(); |
947 File directory = new File(PathUtils.getDataDirectory()); | 955 File directory = new File(PathUtils.getDataDirectory()); |
948 File file = File.createTempFile("cronet", "json", directory); | 956 File file = File.createTempFile("cronet", "json", directory); |
949 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 957 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
950 // Start a request. | 958 // Start a request. |
951 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 959 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
952 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 960 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
953 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 961 mUrl, callback, callback.getExecutor()); |
954 urlRequestBuilder.build().start(); | 962 urlRequestBuilder.build().start(); |
955 callback.blockForDone(); | 963 callback.blockForDone(); |
956 // Stop NetLog multiple times. | 964 // Stop NetLog multiple times. |
957 testFramework.mCronetEngine.stopNetLog(); | 965 testFramework.mCronetEngine.stopNetLog(); |
958 testFramework.mCronetEngine.stopNetLog(); | 966 testFramework.mCronetEngine.stopNetLog(); |
959 testFramework.mCronetEngine.stopNetLog(); | 967 testFramework.mCronetEngine.stopNetLog(); |
960 testFramework.mCronetEngine.stopNetLog(); | 968 testFramework.mCronetEngine.stopNetLog(); |
961 testFramework.mCronetEngine.stopNetLog(); | 969 testFramework.mCronetEngine.stopNetLog(); |
962 assertTrue(file.exists()); | 970 assertTrue(file.exists()); |
963 assertTrue(file.length() != 0); | 971 assertTrue(file.length() != 0); |
964 assertFalse(hasBytesInNetLog(file)); | 972 assertFalse(hasBytesInNetLog(file)); |
965 assertTrue(file.delete()); | 973 assertTrue(file.delete()); |
966 assertTrue(!file.exists()); | 974 assertTrue(!file.exists()); |
967 } | 975 } |
968 | 976 |
969 @SmallTest | 977 @SmallTest |
970 @Feature({"Cronet"}) | 978 @Feature({"Cronet"}) |
971 public void testBoundedFileNetLogStopMultipleTimes() throws Exception { | 979 public void testBoundedFileNetLogStopMultipleTimes() throws Exception { |
972 final CronetTestFramework testFramework = startCronetTestFramework(); | 980 final CronetTestFramework testFramework = startCronetTestFramework(); |
973 File directory = new File(PathUtils.getDataDirectory()); | 981 File directory = new File(PathUtils.getDataDirectory()); |
974 File netLogDir = new File(directory, "NetLog"); | 982 File netLogDir = new File(directory, "NetLog"); |
975 assertFalse(netLogDir.exists()); | 983 assertFalse(netLogDir.exists()); |
976 assertTrue(netLogDir.mkdir()); | 984 assertTrue(netLogDir.mkdir()); |
977 File eventFile = new File(netLogDir, "event_file_0.json"); | 985 File eventFile = new File(netLogDir, "event_file_0.json"); |
978 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); | 986 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false , MAX_FILE_SIZE); |
979 // Start a request. | 987 // Start a request. |
980 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 988 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
981 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 989 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
982 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 990 mUrl, callback, callback.getExecutor()); |
983 urlRequestBuilder.build().start(); | 991 urlRequestBuilder.build().start(); |
984 callback.blockForDone(); | 992 callback.blockForDone(); |
985 // Stop NetLog multiple times. This should be equivalent to stopping Net Log once. | 993 // Stop NetLog multiple times. This should be equivalent to stopping Net Log once. |
986 // Each subsequent stop (without calling startNetLogToDisk first) should be a no-op. | 994 // Each subsequent stop (without calling startNetLogToDisk first) should be a no-op. |
987 testFramework.mCronetEngine.stopNetLog(); | 995 testFramework.mCronetEngine.stopNetLog(); |
988 testFramework.mCronetEngine.stopNetLog(); | 996 testFramework.mCronetEngine.stopNetLog(); |
989 testFramework.mCronetEngine.stopNetLog(); | 997 testFramework.mCronetEngine.stopNetLog(); |
990 testFramework.mCronetEngine.stopNetLog(); | 998 testFramework.mCronetEngine.stopNetLog(); |
991 testFramework.mCronetEngine.stopNetLog(); | 999 testFramework.mCronetEngine.stopNetLog(); |
992 assertTrue(eventFile.exists()); | 1000 assertTrue(eventFile.exists()); |
993 assertTrue(eventFile.length() != 0); | 1001 assertTrue(eventFile.length() != 0); |
994 assertFalse(hasBytesInNetLog(eventFile)); | 1002 assertFalse(hasBytesInNetLog(eventFile)); |
995 FileUtils.recursivelyDeleteFile(netLogDir); | 1003 FileUtils.recursivelyDeleteFile(netLogDir); |
996 assertFalse(netLogDir.exists()); | 1004 assertFalse(netLogDir.exists()); |
997 } | 1005 } |
998 | 1006 |
999 @SmallTest | 1007 @SmallTest |
1000 @Feature({"Cronet"}) | 1008 @Feature({"Cronet"}) |
1001 @OnlyRunNativeCronet | 1009 @OnlyRunNativeCronet |
1002 public void testNetLogWithBytes() throws Exception { | 1010 public void testNetLogWithBytes() throws Exception { |
1003 Context context = getContext(); | 1011 Context context = getContext(); |
1004 File directory = new File(PathUtils.getDataDirectory()); | 1012 File directory = new File(PathUtils.getDataDirectory()); |
1005 File file = File.createTempFile("cronet", "json", directory); | 1013 File file = File.createTempFile("cronet", "json", directory); |
1006 CronetEngine cronetEngine = new CronetUrlRequestContext( | 1014 CronetEngine cronetEngine = new CronetUrlRequestContext( |
1007 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 1015 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
1008 // Start NetLog with logAll as true. | 1016 // Start NetLog with logAll as true. |
1009 cronetEngine.startNetLogToFile(file.getPath(), true); | 1017 cronetEngine.startNetLogToFile(file.getPath(), true); |
1010 // Start a request. | 1018 // Start a request. |
1011 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1019 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1012 UrlRequest.Builder urlRequestBuilder = | 1020 UrlRequest.Builder urlRequestBuilder = |
1013 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 1021 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
1014 urlRequestBuilder.build().start(); | 1022 urlRequestBuilder.build().start(); |
1015 callback.blockForDone(); | 1023 callback.blockForDone(); |
1016 cronetEngine.stopNetLog(); | 1024 cronetEngine.stopNetLog(); |
1017 assertTrue(file.exists()); | 1025 assertTrue(file.exists()); |
1018 assertTrue(file.length() != 0); | 1026 assertTrue(file.length() != 0); |
1019 assertTrue(hasBytesInNetLog(file)); | 1027 assertTrue(hasBytesInNetLog(file)); |
1020 assertTrue(file.delete()); | 1028 assertTrue(file.delete()); |
1021 assertTrue(!file.exists()); | 1029 assertTrue(!file.exists()); |
1022 } | 1030 } |
1023 | 1031 |
1024 @SmallTest | 1032 @SmallTest |
1025 @Feature({"Cronet"}) | 1033 @Feature({"Cronet"}) |
1026 @OnlyRunNativeCronet | 1034 @OnlyRunNativeCronet |
1027 public void testBoundedFileNetLogWithBytes() throws Exception { | 1035 public void testBoundedFileNetLogWithBytes() throws Exception { |
1028 Context context = getContext(); | 1036 Context context = getContext(); |
1029 File directory = new File(PathUtils.getDataDirectory()); | 1037 File directory = new File(PathUtils.getDataDirectory()); |
1030 File netLogDir = new File(directory, "NetLog"); | 1038 File netLogDir = new File(directory, "NetLog"); |
1031 assertFalse(netLogDir.exists()); | 1039 assertFalse(netLogDir.exists()); |
1032 assertTrue(netLogDir.mkdir()); | 1040 assertTrue(netLogDir.mkdir()); |
1033 File eventFile = new File(netLogDir, "event_file_0.json"); | 1041 File eventFile = new File(netLogDir, "event_file_0.json"); |
1034 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 1042 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( |
1035 new CronetEngine.Builder(context).setLibraryName("cronet_tests") ); | 1043 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test s")); |
1036 // Start NetLog with logAll as true. | 1044 // Start NetLog with logAll as true. |
1037 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE) ; | 1045 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE) ; |
1038 // Start a request. | 1046 // Start a request. |
1039 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1047 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1040 UrlRequest.Builder urlRequestBuilder = | 1048 UrlRequest.Builder urlRequestBuilder = |
1041 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 1049 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
1042 urlRequestBuilder.build().start(); | 1050 urlRequestBuilder.build().start(); |
1043 callback.blockForDone(); | 1051 callback.blockForDone(); |
1044 cronetEngine.stopNetLog(); | 1052 cronetEngine.stopNetLog(); |
1045 | 1053 |
1046 assertTrue(eventFile.exists()); | 1054 assertTrue(eventFile.exists()); |
1047 assertTrue(eventFile.length() != 0); | 1055 assertTrue(eventFile.length() != 0); |
1048 assertTrue(hasBytesInNetLog(eventFile)); | 1056 assertTrue(hasBytesInNetLog(eventFile)); |
1049 FileUtils.recursivelyDeleteFile(netLogDir); | 1057 FileUtils.recursivelyDeleteFile(netLogDir); |
1050 assertFalse(netLogDir.exists()); | 1058 assertFalse(netLogDir.exists()); |
1051 } | 1059 } |
(...skipping 18 matching lines...) Expand all Loading... | |
1070 } | 1078 } |
1071 | 1079 |
1072 /** | 1080 /** |
1073 * Helper method to make a request to {@code url}, wait for it to | 1081 * Helper method to make a request to {@code url}, wait for it to |
1074 * complete, and check that the status code is the same as {@code expectedSt atusCode}. | 1082 * complete, and check that the status code is the same as {@code expectedSt atusCode}. |
1075 */ | 1083 */ |
1076 private void makeRequestAndCheckStatus( | 1084 private void makeRequestAndCheckStatus( |
1077 CronetEngine engine, String url, int expectedStatusCode) { | 1085 CronetEngine engine, String url, int expectedStatusCode) { |
1078 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1086 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1079 UrlRequest request = | 1087 UrlRequest request = |
1080 new UrlRequest.Builder(url, callback, callback.getExecutor(), en gine).build(); | 1088 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( )).build(); |
1081 request.start(); | 1089 request.start(); |
1082 callback.blockForDone(); | 1090 callback.blockForDone(); |
1083 assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCod e()); | 1091 assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCod e()); |
1084 } | 1092 } |
1085 | 1093 |
1086 private CronetTestFramework startCronetTestFrameworkWithCacheEnabled(int cac heType) | 1094 private CronetTestFramework startCronetTestFrameworkWithCacheEnabled(int cac heType) |
1087 throws Exception { | 1095 throws Exception { |
1088 String cacheTypeString = ""; | 1096 String cacheTypeString = ""; |
1089 if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK) { | 1097 if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK) { |
1090 cacheTypeString = CronetTestFramework.CACHE_DISK; | 1098 cacheTypeString = CronetTestFramework.CACHE_DISK; |
(...skipping 10 matching lines...) Expand all Loading... | |
1101 } | 1109 } |
1102 | 1110 |
1103 private void checkRequestCaching(CronetEngine engine, String url, boolean ex pectCached) { | 1111 private void checkRequestCaching(CronetEngine engine, String url, boolean ex pectCached) { |
1104 checkRequestCaching(engine, url, expectCached, false); | 1112 checkRequestCaching(engine, url, expectCached, false); |
1105 } | 1113 } |
1106 | 1114 |
1107 private void checkRequestCaching( | 1115 private void checkRequestCaching( |
1108 CronetEngine engine, String url, boolean expectCached, boolean disab leCache) { | 1116 CronetEngine engine, String url, boolean expectCached, boolean disab leCache) { |
1109 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1117 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1110 UrlRequest.Builder urlRequestBuilder = | 1118 UrlRequest.Builder urlRequestBuilder = |
1111 new UrlRequest.Builder(url, callback, callback.getExecutor(), en gine); | 1119 engine.newUrlRequestBuilder(url, callback, callback.getExecutor( )); |
1112 if (disableCache) { | 1120 if (disableCache) { |
1113 urlRequestBuilder.disableCache(); | 1121 urlRequestBuilder.disableCache(); |
1114 } | 1122 } |
1115 urlRequestBuilder.build().start(); | 1123 urlRequestBuilder.build().start(); |
1116 callback.blockForDone(); | 1124 callback.blockForDone(); |
1117 assertEquals(expectCached, callback.mResponseInfo.wasCached()); | 1125 assertEquals(expectCached, callback.mResponseInfo.wasCached()); |
1118 assertEquals("this is a cacheable file\n", callback.mResponseAsString); | 1126 assertEquals("this is a cacheable file\n", callback.mResponseAsString); |
1119 } | 1127 } |
1120 | 1128 |
1121 @SmallTest | 1129 @SmallTest |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1180 // When cache is enabled, the second request is cached. | 1188 // When cache is enabled, the second request is cached. |
1181 checkRequestCaching(testFramework.mCronetEngine, url, false, true /** di sable cache */); | 1189 checkRequestCaching(testFramework.mCronetEngine, url, false, true /** di sable cache */); |
1182 checkRequestCaching(testFramework.mCronetEngine, url, true); | 1190 checkRequestCaching(testFramework.mCronetEngine, url, true); |
1183 | 1191 |
1184 // Shut down the server, next request should have a cached response. | 1192 // Shut down the server, next request should have a cached response. |
1185 NativeTestServer.shutdownNativeTestServer(); | 1193 NativeTestServer.shutdownNativeTestServer(); |
1186 checkRequestCaching(testFramework.mCronetEngine, url, true); | 1194 checkRequestCaching(testFramework.mCronetEngine, url, true); |
1187 | 1195 |
1188 // Cache is disabled after server is shut down, request should fail. | 1196 // Cache is disabled after server is shut down, request should fail. |
1189 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1197 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1190 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 1198 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
1191 url, callback, callback.getExecutor(), testFramework.mCronetEngi ne); | 1199 url, callback, callback.getExecutor()); |
1192 urlRequestBuilder.disableCache(); | 1200 urlRequestBuilder.disableCache(); |
1193 urlRequestBuilder.build().start(); | 1201 urlRequestBuilder.build().start(); |
1194 callback.blockForDone(); | 1202 callback.blockForDone(); |
1195 assertNotNull(callback.mError); | 1203 assertNotNull(callback.mError); |
1196 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED ", | 1204 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED ", |
1197 callback.mError.getMessage()); | 1205 callback.mError.getMessage()); |
1198 } | 1206 } |
1199 | 1207 |
1200 @SmallTest | 1208 @SmallTest |
1201 @Feature({"Cronet"}) | 1209 @Feature({"Cronet"}) |
1202 public void testEnableHttpCacheDiskNewEngine() throws Exception { | 1210 public void testEnableHttpCacheDiskNewEngine() throws Exception { |
1203 final CronetTestFramework testFramework = | 1211 final CronetTestFramework testFramework = |
1204 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); | 1212 startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HT TP_CACHE_DISK); |
1205 String url = NativeTestServer.getFileURL("/cacheable.txt"); | 1213 String url = NativeTestServer.getFileURL("/cacheable.txt"); |
1206 checkRequestCaching(testFramework.mCronetEngine, url, false); | 1214 checkRequestCaching(testFramework.mCronetEngine, url, false); |
1207 checkRequestCaching(testFramework.mCronetEngine, url, true); | 1215 checkRequestCaching(testFramework.mCronetEngine, url, true); |
1208 NativeTestServer.shutdownNativeTestServer(); | 1216 NativeTestServer.shutdownNativeTestServer(); |
1209 checkRequestCaching(testFramework.mCronetEngine, url, true); | 1217 checkRequestCaching(testFramework.mCronetEngine, url, true); |
1210 | 1218 |
1211 // Shutdown original context and create another that uses the same cache . | 1219 // Shutdown original context and create another that uses the same cache . |
1212 testFramework.mCronetEngine.shutdown(); | 1220 testFramework.mCronetEngine.shutdown(); |
1213 testFramework.mCronetEngine = testFramework.getCronetEngineBuilder().bui ld(); | 1221 testFramework.mCronetEngine = |
1222 (CronetEngineBase) testFramework.getCronetEngineBuilder().build( ); | |
1214 checkRequestCaching(testFramework.mCronetEngine, url, true); | 1223 checkRequestCaching(testFramework.mCronetEngine, url, true); |
1215 } | 1224 } |
1216 | 1225 |
1217 @SmallTest | 1226 @SmallTest |
1218 @Feature({"Cronet"}) | 1227 @Feature({"Cronet"}) |
1219 public void testInitEngineAndStartRequest() { | 1228 public void testInitEngineAndStartRequest() { |
1220 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); | 1229 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); |
1221 | 1230 |
1222 // Immediately make a request after initializing the engine. | 1231 // Immediately make a request after initializing the engine. |
1223 CronetEngine cronetEngine = testFramework.initCronetEngine(); | 1232 CronetEngine cronetEngine = testFramework.initCronetEngine(); |
1224 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1233 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1225 UrlRequest.Builder urlRequestBuilder = | 1234 UrlRequest.Builder urlRequestBuilder = |
1226 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 1235 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
1227 urlRequestBuilder.build().start(); | 1236 urlRequestBuilder.build().start(); |
1228 callback.blockForDone(); | 1237 callback.blockForDone(); |
1229 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1238 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1230 } | 1239 } |
1231 | 1240 |
1232 @SmallTest | 1241 @SmallTest |
1233 @Feature({"Cronet"}) | 1242 @Feature({"Cronet"}) |
1234 public void testEmptyGetCertVerifierData() { | 1243 public void testEmptyGetCertVerifierData() { |
1235 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); | 1244 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); |
1236 | 1245 |
1237 // Immediately make a request after initializing the engine. | 1246 // Immediately make a request after initializing the engine. |
1238 CronetEngine cronetEngine = testFramework.initCronetEngine(); | 1247 ExperimentalCronetEngine cronetEngine = testFramework.initCronetEngine() ; |
1239 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1248 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1240 UrlRequest.Builder urlRequestBuilder = | 1249 UrlRequest.Builder urlRequestBuilder = |
1241 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c ronetEngine); | 1250 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx ecutor()); |
1242 urlRequestBuilder.build().start(); | 1251 urlRequestBuilder.build().start(); |
1243 callback.blockForDone(); | 1252 callback.blockForDone(); |
1244 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1253 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1245 | 1254 |
1246 try { | 1255 try { |
1247 cronetEngine.getCertVerifierData(-1); | 1256 cronetEngine.getCertVerifierData(-1); |
1248 fail("Should throw an exception"); | 1257 fail("Should throw an exception"); |
1249 } catch (Exception e) { | 1258 } catch (Exception e) { |
1250 assertEquals("timeout must be a positive value", e.getMessage()); | 1259 assertEquals("timeout must be a positive value", e.getMessage()); |
1251 } | 1260 } |
1252 // Because mUrl is http, getCertVerifierData() will return empty data. | 1261 // Because mUrl is http, getCertVerifierData() will return empty data. |
1253 String data = cronetEngine.getCertVerifierData(100); | 1262 String data = cronetEngine.getCertVerifierData(100); |
1254 assertTrue(data.isEmpty()); | 1263 assertTrue(data.isEmpty()); |
1255 } | 1264 } |
1256 | 1265 |
1257 @SmallTest | 1266 @SmallTest |
1258 @Feature({"Cronet"}) | 1267 @Feature({"Cronet"}) |
1259 public void testInitEngineStartTwoRequests() throws Exception { | 1268 public void testInitEngineStartTwoRequests() throws Exception { |
1260 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); | 1269 CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibra ryInit(); |
1261 | 1270 |
1262 // Make two requests after initializing the context. | 1271 // Make two requests after initializing the context. |
1263 CronetEngine cronetEngine = testFramework.initCronetEngine(); | 1272 CronetEngine cronetEngine = testFramework.initCronetEngine(); |
1264 int[] statusCodes = {0, 0}; | 1273 int[] statusCodes = {0, 0}; |
1265 String[] urls = {mUrl, mUrl404}; | 1274 String[] urls = {mUrl, mUrl404}; |
1266 for (int i = 0; i < 2; i++) { | 1275 for (int i = 0; i < 2; i++) { |
1267 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1276 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1268 UrlRequest.Builder urlRequestBuilder = | 1277 UrlRequest.Builder urlRequestBuilder = |
1269 new UrlRequest.Builder(urls[i], callback, callback.getExecut or(), cronetEngine); | 1278 cronetEngine.newUrlRequestBuilder(urls[i], callback, callbac k.getExecutor()); |
1270 urlRequestBuilder.build().start(); | 1279 urlRequestBuilder.build().start(); |
1271 callback.blockForDone(); | 1280 callback.blockForDone(); |
1272 statusCodes[i] = callback.mResponseInfo.getHttpStatusCode(); | 1281 statusCodes[i] = callback.mResponseInfo.getHttpStatusCode(); |
1273 } | 1282 } |
1274 assertEquals(200, statusCodes[0]); | 1283 assertEquals(200, statusCodes[0]); |
1275 assertEquals(404, statusCodes[1]); | 1284 assertEquals(404, statusCodes[1]); |
1276 } | 1285 } |
1277 | 1286 |
1278 @SmallTest | 1287 @SmallTest |
1279 @Feature({"Cronet"}) | 1288 @Feature({"Cronet"}) |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1312 } | 1321 } |
1313 | 1322 |
1314 @SmallTest | 1323 @SmallTest |
1315 @Feature({"Cronet"}) | 1324 @Feature({"Cronet"}) |
1316 public void testInitDifferentEngines() throws Exception { | 1325 public void testInitDifferentEngines() throws Exception { |
1317 // Test that concurrently instantiating Cronet context's upon various | 1326 // Test that concurrently instantiating Cronet context's upon various |
1318 // different versions of the same Android Context does not cause crashes | 1327 // different versions of the same Android Context does not cause crashes |
1319 // like crbug.com/453845 | 1328 // like crbug.com/453845 |
1320 final CronetTestFramework testFramework = startCronetTestFramework(); | 1329 final CronetTestFramework testFramework = startCronetTestFramework(); |
1321 CronetEngine firstEngine = | 1330 CronetEngine firstEngine = |
1322 new CronetUrlRequestContext(testFramework.createCronetEngineBuil der(getContext())); | 1331 new CronetUrlRequestContext(CronetTestUtil.getCronetEngineBuilde rImpl( |
1332 testFramework.createCronetEngineBuilder(getContext()))); | |
1323 CronetEngine secondEngine = new CronetUrlRequestContext( | 1333 CronetEngine secondEngine = new CronetUrlRequestContext( |
1324 testFramework.createCronetEngineBuilder(getContext().getApplicat ionContext())); | 1334 CronetTestUtil.getCronetEngineBuilderImpl(testFramework.createCr onetEngineBuilder( |
1325 CronetEngine thirdEngine = new CronetUrlRequestContext( | 1335 getContext().getApplicationContext()))); |
1326 testFramework.createCronetEngineBuilder(new ContextWrapper(getCo ntext()))); | 1336 CronetEngine thirdEngine = |
1337 new CronetUrlRequestContext(CronetTestUtil.getCronetEngineBuilde rImpl( | |
1338 testFramework.createCronetEngineBuilder(getContext()))); | |
pauljensen
2016/10/03 15:22:38
please add back "new ContextWrapper("
kapishnikov
2016/10/03 23:49:29
Done.
| |
1327 firstEngine.shutdown(); | 1339 firstEngine.shutdown(); |
1328 secondEngine.shutdown(); | 1340 secondEngine.shutdown(); |
1329 thirdEngine.shutdown(); | 1341 thirdEngine.shutdown(); |
1330 } | 1342 } |
1331 | 1343 |
1332 @SmallTest | 1344 @SmallTest |
1333 @Feature({"Cronet"}) | 1345 @Feature({"Cronet"}) |
1334 public void testGetGlobalMetricsDeltas() throws Exception { | 1346 public void testGetGlobalMetricsDeltas() throws Exception { |
1335 final CronetTestFramework testFramework = startCronetTestFramework(); | 1347 final CronetTestFramework testFramework = startCronetTestFramework(); |
1336 | 1348 |
1337 byte delta1[] = testFramework.mCronetEngine.getGlobalMetricsDeltas(); | 1349 byte delta1[] = testFramework.mCronetEngine.getGlobalMetricsDeltas(); |
1338 | 1350 |
1339 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1351 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1340 UrlRequest.Builder builder = new UrlRequest.Builder( | 1352 UrlRequest.Builder builder = testFramework.mCronetEngine.newUrlRequestBu ilder( |
1341 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng ine); | 1353 mUrl, callback, callback.getExecutor()); |
1342 builder.build().start(); | 1354 builder.build().start(); |
1343 callback.blockForDone(); | 1355 callback.blockForDone(); |
1344 byte delta2[] = testFramework.mCronetEngine.getGlobalMetricsDeltas(); | 1356 byte delta2[] = testFramework.mCronetEngine.getGlobalMetricsDeltas(); |
1345 assertTrue(delta2.length != 0); | 1357 assertTrue(delta2.length != 0); |
1346 assertFalse(Arrays.equals(delta1, delta2)); | 1358 assertFalse(Arrays.equals(delta1, delta2)); |
1347 } | 1359 } |
1348 | 1360 |
1349 @SmallTest | 1361 @SmallTest |
1350 @Feature({"Cronet"}) | 1362 @Feature({"Cronet"}) |
1351 public void testCronetEngineBuilderConfig() throws Exception { | 1363 public void testCronetEngineBuilderConfig() throws Exception { |
1352 // This is to prompt load of native library. | 1364 // This is to prompt load of native library. |
1353 startCronetTestFramework(); | 1365 startCronetTestFramework(); |
1354 // Verify CronetEngine.Builder config is passed down accurately to nativ e code. | 1366 // Verify CronetEngine.Builder config is passed down accurately to nativ e code. |
1355 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 1367 CronetEngineBuilderImpl builder = new CronetEngineBuilderImpl(getContext ()); |
1356 builder.enableHttp2(false); | 1368 builder.enableHttp2(false); |
1357 builder.enableQuic(true); | 1369 builder.enableQuic(true); |
1358 builder.enableSdch(true); | 1370 builder.enableSdch(true); |
1359 builder.addQuicHint("example.com", 12, 34); | 1371 builder.addQuicHint("example.com", 12, 34); |
1360 builder.setCertVerifierData("test_cert_verifier_data"); | 1372 builder.setCertVerifierData("test_cert_verifier_data"); |
1361 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 54321 ); | 1373 builder.enableHttpCache(CronetEngineBuilderImpl.HTTP_CACHE_IN_MEMORY, 54 321); |
1362 builder.enableDataReductionProxy("abcd"); | 1374 builder.enableDataReductionProxy("abcd"); |
1363 builder.setUserAgent("efgh"); | 1375 builder.setUserAgent("efgh"); |
1364 builder.setExperimentalOptions("ijkl"); | 1376 builder.setExperimentalOptions("ijkl"); |
1365 builder.setDataReductionProxyOptions("mnop", "qrst", "uvwx"); | 1377 builder.setDataReductionProxyOptions("mnop", "qrst", "uvwx"); |
1366 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext())) ; | 1378 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext())) ; |
1367 builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false); | 1379 builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false); |
1368 nativeVerifyUrlRequestContextConfig( | 1380 nativeVerifyUrlRequestContextConfig( |
1369 CronetUrlRequestContext.createNativeUrlRequestContextConfig(getC ontext(), builder), | 1381 CronetUrlRequestContext.createNativeUrlRequestContextConfig(getC ontext(), builder), |
1370 CronetTestFramework.getTestStorage(getContext())); | 1382 CronetTestFramework.getTestStorage(getContext())); |
1371 } | 1383 } |
(...skipping 12 matching lines...) Expand all Loading... | |
1384 | 1396 |
1385 boolean wasCalled() { | 1397 boolean wasCalled() { |
1386 return mWasCalled; | 1398 return mWasCalled; |
1387 } | 1399 } |
1388 } | 1400 } |
1389 | 1401 |
1390 @SmallTest | 1402 @SmallTest |
1391 @Feature({"Cronet"}) | 1403 @Feature({"Cronet"}) |
1392 @OnlyRunNativeCronet | 1404 @OnlyRunNativeCronet |
1393 public void testSkipLibraryLoading() throws Exception { | 1405 public void testSkipLibraryLoading() throws Exception { |
1394 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 1406 CronetEngineBuilderImpl builder = new CronetEngineBuilderImpl(getContext ()); |
1395 TestBadLibraryLoader loader = new TestBadLibraryLoader(); | 1407 TestBadLibraryLoader loader = new TestBadLibraryLoader(); |
1396 builder.setLibraryLoader(loader).setLibraryName("cronet_tests"); | 1408 builder.setLibraryLoader(loader).setLibraryName("cronet_tests"); |
1397 try { | 1409 try { |
1398 // ensureInitialized() calls native code to check the version right after library load | 1410 // ensureInitialized() calls native code to check the version right after library load |
1399 // and will error with the message below if library loading was skip ped | 1411 // and will error with the message below if library loading was skip ped |
1400 CronetLibraryLoader.ensureInitialized(getContext(), builder); | 1412 CronetLibraryLoader.ensureInitialized(getContext(), builder); |
1401 fail("Native library should not be loaded"); | 1413 fail("Native library should not be loaded"); |
1402 } catch (UnsatisfiedLinkError e) { | 1414 } catch (UnsatisfiedLinkError e) { |
1403 assertTrue(loader.wasCalled()); | 1415 assertTrue(loader.wasCalled()); |
1404 } | 1416 } |
1405 } | 1417 } |
1406 | 1418 |
1407 // Creates a CronetEngine on another thread and then one on the main thread. This shouldn't | 1419 // Creates a CronetEngine on another thread and then one on the main thread. This shouldn't |
1408 // crash. | 1420 // crash. |
1409 @SmallTest | 1421 @SmallTest |
1410 @Feature({"Cronet"}) | 1422 @Feature({"Cronet"}) |
1411 public void testThreadedStartup() throws Exception { | 1423 public void testThreadedStartup() throws Exception { |
1412 final ConditionVariable otherThreadDone = new ConditionVariable(); | 1424 final ConditionVariable otherThreadDone = new ConditionVariable(); |
1413 final ConditionVariable uiThreadDone = new ConditionVariable(); | 1425 final ConditionVariable uiThreadDone = new ConditionVariable(); |
1414 new Handler(Looper.getMainLooper()).post(new Runnable() { | 1426 new Handler(Looper.getMainLooper()).post(new Runnable() { |
1415 public void run() { | 1427 public void run() { |
1416 final CronetEngine.Builder builder = | 1428 final ExperimentalCronetEngine.Builder builder = |
1417 new CronetEngine.Builder(getContext()).setLibraryName("c ronet_tests"); | 1429 new ExperimentalCronetEngine.Builder(getContext()); |
1430 CronetTestUtil.setLibraryName(builder, "cronet_tests"); | |
1418 new Thread() { | 1431 new Thread() { |
1419 public void run() { | 1432 public void run() { |
1420 CronetEngine cronetEngine = builder.build(); | 1433 CronetEngine cronetEngine = builder.build(); |
1421 otherThreadDone.open(); | 1434 otherThreadDone.open(); |
1422 cronetEngine.shutdown(); | 1435 cronetEngine.shutdown(); |
1423 } | 1436 } |
1424 }.start(); | 1437 }.start(); |
1425 otherThreadDone.block(); | 1438 otherThreadDone.block(); |
1426 builder.build().shutdown(); | 1439 builder.build().shutdown(); |
1427 uiThreadDone.open(); | 1440 uiThreadDone.open(); |
1428 } | 1441 } |
1429 }); | 1442 }); |
1430 assertTrue(uiThreadDone.block(1000)); | 1443 assertTrue(uiThreadDone.block(1000)); |
1431 } | 1444 } |
1432 | 1445 |
1433 @SmallTest | 1446 @SmallTest |
1434 @Feature({"Cronet"}) | 1447 @Feature({"Cronet"}) |
1435 public void testHostResolverRules() throws Exception { | 1448 public void testHostResolverRules() throws Exception { |
1436 String resolverTestHostname = "some-weird-hostname"; | 1449 String resolverTestHostname = "some-weird-hostname"; |
1437 URL testUrl = new URL(mUrl); | 1450 URL testUrl = new URL(mUrl); |
1438 CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getC ontext()); | 1451 ExperimentalCronetEngine.Builder cronetEngineBuilder = |
1452 new ExperimentalCronetEngine.Builder(getContext()); | |
1439 JSONObject hostResolverRules = new JSONObject().put( | 1453 JSONObject hostResolverRules = new JSONObject().put( |
1440 "host_resolver_rules", "MAP " + resolverTestHostname + " " + tes tUrl.getHost()); | 1454 "host_resolver_rules", "MAP " + resolverTestHostname + " " + tes tUrl.getHost()); |
1441 JSONObject experimentalOptions = | 1455 JSONObject experimentalOptions = |
1442 new JSONObject().put("HostResolverRules", hostResolverRules); | 1456 new JSONObject().put("HostResolverRules", hostResolverRules); |
1443 cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString( )); | 1457 cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString( )); |
1444 | 1458 |
1445 final CronetTestFramework testFramework = | 1459 final CronetTestFramework testFramework = |
1446 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, cron etEngineBuilder); | 1460 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, cron etEngineBuilder); |
1447 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1461 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1448 URL requestUrl = | 1462 URL requestUrl = |
1449 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl .getFile()); | 1463 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl .getFile()); |
1450 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(requestUrl .toString(), | 1464 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr lRequestBuilder( |
1451 callback, callback.getExecutor(), testFramework.mCronetEngine); | 1465 requestUrl.toString(), callback, callback.getExecutor()); |
1452 urlRequestBuilder.build().start(); | 1466 urlRequestBuilder.build().start(); |
1453 callback.blockForDone(); | 1467 callback.blockForDone(); |
1454 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1468 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1455 } | 1469 } |
1456 } | 1470 } |
OLD | NEW |