Chromium Code Reviews| 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 |