| 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 static org.chromium.base.CollectionUtil.newHashSet; | 7 import static org.chromium.base.CollectionUtil.newHashSet; |
| 8 | 8 |
| 9 import android.content.Context; | 9 import android.content.Context; |
| 10 import android.content.ContextWrapper; | 10 import android.content.ContextWrapper; |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 StrictMode.setThreadPolicy(threadPolicy); | 147 StrictMode.setThreadPolicy(threadPolicy); |
| 148 } | 148 } |
| 149 } | 149 } |
| 150 }); | 150 }); |
| 151 return mNetworkQualityThread; | 151 return mNetworkQualityThread; |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 | 154 |
| 155 @SmallTest | 155 @SmallTest |
| 156 @Feature({"Cronet"}) | 156 @Feature({"Cronet"}) |
| 157 @SuppressWarnings("deprecation") |
| 157 public void testConfigUserAgent() throws Exception { | 158 public void testConfigUserAgent() throws Exception { |
| 158 String userAgentName = "User-Agent"; | 159 String userAgentName = "User-Agent"; |
| 159 String userAgentValue = "User-Agent-Value"; | 160 String userAgentValue = "User-Agent-Value"; |
| 160 CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getC
ontext()); | 161 CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getC
ontext()); |
| 161 if (testingJavaImpl()) { | 162 if (testingJavaImpl()) { |
| 162 cronetEngineBuilder.enableLegacyMode(true); | 163 cronetEngineBuilder.enableLegacyMode(true); |
| 163 } | 164 } |
| 164 cronetEngineBuilder.setUserAgent(userAgentValue); | 165 cronetEngineBuilder.setUserAgent(userAgentValue); |
| 165 cronetEngineBuilder.setLibraryName("cronet_tests"); | 166 cronetEngineBuilder.setLibraryName("cronet_tests"); |
| 166 mTestFramework = | 167 mTestFramework = |
| 167 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron
etEngineBuilder); | 168 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron
etEngineBuilder); |
| 168 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re
turns false if it's | 169 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re
turns false if it's |
| 169 // already running | 170 // already running |
| 170 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 171 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
| 171 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 172 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 172 UrlRequest.Builder urlRequestBuilder = | 173 UrlRequest.Builder urlRequestBuilder = |
| 173 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAge
ntName), callback, | 174 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAge
ntName), callback, |
| 174 callback.getExecutor(), mTestFramework.mCronetEngine); | 175 callback.getExecutor(), mTestFramework.mCronetEngine); |
| 175 urlRequestBuilder.build().start(); | 176 urlRequestBuilder.build().start(); |
| 176 callback.blockForDone(); | 177 callback.blockForDone(); |
| 177 assertEquals(userAgentValue, callback.mResponseAsString); | 178 assertEquals(userAgentValue, callback.mResponseAsString); |
| 178 } | 179 } |
| 179 | 180 |
| 180 @SmallTest | 181 @SmallTest |
| 181 @Feature({"Cronet"}) | 182 @Feature({"Cronet"}) |
| 182 @OnlyRunNativeCronet | 183 @OnlyRunNativeCronet |
| 183 // TODO(xunjieli): Remove annotation after crbug.com/539519 is fixed. | |
| 184 @SuppressWarnings("deprecation") | |
| 185 public void testDataReductionProxyEnabled() throws Exception { | 184 public void testDataReductionProxyEnabled() throws Exception { |
| 186 mTestFramework = startCronetTestFrameworkAndSkipLibraryInit(); | 185 mTestFramework = startCronetTestFrameworkAndSkipLibraryInit(); |
| 187 | 186 |
| 188 // Ensure native code is loaded before trying to start test server. | 187 // Ensure native code is loaded before trying to start test server. |
| 189 new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests").bu
ild().shutdown(); | 188 new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests").bu
ild().shutdown(); |
| 190 | 189 |
| 191 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 190 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
| 192 if (!NativeTestServer.isDataReductionProxySupported()) { | 191 if (!NativeTestServer.isDataReductionProxySupported()) { |
| 193 return; | 192 return; |
| 194 } | 193 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 mTestFramework.mCronetEngine.addRttListener(rttListener); | 236 mTestFramework.mCronetEngine.addRttListener(rttListener); |
| 238 fail("Should throw an exception."); | 237 fail("Should throw an exception."); |
| 239 } catch (IllegalStateException e) { | 238 } catch (IllegalStateException e) { |
| 240 } | 239 } |
| 241 try { | 240 try { |
| 242 mTestFramework.mCronetEngine.addThroughputListener(throughputListene
r); | 241 mTestFramework.mCronetEngine.addThroughputListener(throughputListene
r); |
| 243 fail("Should throw an exception."); | 242 fail("Should throw an exception."); |
| 244 } catch (IllegalStateException e) { | 243 } catch (IllegalStateException e) { |
| 245 } | 244 } |
| 246 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 245 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 247 UrlRequest urlRequest = | 246 UrlRequest.Builder builder = new UrlRequest.Builder( |
| 248 mTestFramework.mCronetEngine.createRequest(mUrl, callback, callb
ack.getExecutor()); | 247 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn
gine); |
| 248 UrlRequest urlRequest = builder.build(); |
| 249 |
| 249 urlRequest.start(); | 250 urlRequest.start(); |
| 250 callback.blockForDone(); | 251 callback.blockForDone(); |
| 251 assertEquals(0, rttListener.rttObservationCount()); | 252 assertEquals(0, rttListener.rttObservationCount()); |
| 252 assertEquals(0, throughputListener.throughputObservationCount()); | 253 assertEquals(0, throughputListener.throughputObservationCount()); |
| 253 mTestFramework.mCronetEngine.shutdown(); | 254 mTestFramework.mCronetEngine.shutdown(); |
| 254 } | 255 } |
| 255 | 256 |
| 256 @SmallTest | 257 @SmallTest |
| 257 @Feature({"Cronet"}) | 258 @Feature({"Cronet"}) |
| 258 public void testRealTimeNetworkQualityObservationsListenerRemoved() throws E
xception { | 259 public void testRealTimeNetworkQualityObservationsListenerRemoved() throws E
xception { |
| 259 CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(get
Context()); | 260 CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(get
Context()); |
| 260 TestExecutor networkQualityExecutor = new TestExecutor(); | 261 TestExecutor networkQualityExecutor = new TestExecutor(); |
| 261 TestNetworkQualityRttListener rttListener = | 262 TestNetworkQualityRttListener rttListener = |
| 262 new TestNetworkQualityRttListener(networkQualityExecutor); | 263 new TestNetworkQualityRttListener(networkQualityExecutor); |
| 263 mCronetEngineBuilder.enableNetworkQualityEstimator(true); | 264 mCronetEngineBuilder.enableNetworkQualityEstimator(true); |
| 264 mTestFramework = | 265 mTestFramework = |
| 265 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro
netEngineBuilder); | 266 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCro
netEngineBuilder); |
| 266 mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(
true, true); | 267 mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(
true, true); |
| 267 | 268 |
| 268 mTestFramework.mCronetEngine.addRttListener(rttListener); | 269 mTestFramework.mCronetEngine.addRttListener(rttListener); |
| 269 mTestFramework.mCronetEngine.removeRttListener(rttListener); | 270 mTestFramework.mCronetEngine.removeRttListener(rttListener); |
| 270 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 271 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 271 UrlRequest urlRequest = | 272 UrlRequest.Builder builder = new UrlRequest.Builder( |
| 272 mTestFramework.mCronetEngine.createRequest(mUrl, callback, callb
ack.getExecutor()); | 273 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn
gine); |
| 274 UrlRequest urlRequest = builder.build(); |
| 273 urlRequest.start(); | 275 urlRequest.start(); |
| 274 callback.blockForDone(); | 276 callback.blockForDone(); |
| 275 networkQualityExecutor.runAllTasks(); | 277 networkQualityExecutor.runAllTasks(); |
| 276 assertEquals(0, rttListener.rttObservationCount()); | 278 assertEquals(0, rttListener.rttObservationCount()); |
| 277 mTestFramework.mCronetEngine.shutdown(); | 279 mTestFramework.mCronetEngine.shutdown(); |
| 278 } | 280 } |
| 279 | 281 |
| 280 @SmallTest | 282 @SmallTest |
| 281 @Feature({"Cronet"}) | 283 @Feature({"Cronet"}) |
| 282 public void testRealTimeNetworkQualityObservationsQuicDisabled() throws Exce
ption { | 284 public void testRealTimeNetworkQualityObservationsQuicDisabled() throws Exce
ption { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 296 mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(
true, true); | 298 mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(
true, true); |
| 297 // requestFinishedListenerExecutor should not be used for notifying the
RTT and | 299 // requestFinishedListenerExecutor should not be used for notifying the
RTT and |
| 298 // throughput listeners. | 300 // throughput listeners. |
| 299 mTestFramework.mCronetEngine.setRequestFinishedListenerExecutor( | 301 mTestFramework.mCronetEngine.setRequestFinishedListenerExecutor( |
| 300 requestFinishedListenerExecutor); | 302 requestFinishedListenerExecutor); |
| 301 | 303 |
| 302 mTestFramework.mCronetEngine.addRttListener(rttListener); | 304 mTestFramework.mCronetEngine.addRttListener(rttListener); |
| 303 mTestFramework.mCronetEngine.addThroughputListener(throughputListener); | 305 mTestFramework.mCronetEngine.addThroughputListener(throughputListener); |
| 304 | 306 |
| 305 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 307 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 306 UrlRequest urlRequest = | 308 UrlRequest.Builder builder = new UrlRequest.Builder( |
| 307 mTestFramework.mCronetEngine.createRequest(mUrl, callback, callb
ack.getExecutor()); | 309 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn
gine); |
| 310 UrlRequest urlRequest = builder.build(); |
| 308 urlRequest.start(); | 311 urlRequest.start(); |
| 309 callback.blockForDone(); | 312 callback.blockForDone(); |
| 310 | 313 |
| 311 // Throughput observation is posted to the network quality estimator on
the network thread | 314 // Throughput observation is posted to the network quality estimator on
the network thread |
| 312 // after the UrlRequest is completed. The observations are then eventual
ly posted to | 315 // after the UrlRequest is completed. The observations are then eventual
ly posted to |
| 313 // throughput listeners on the executor provided to network quality. | 316 // throughput listeners on the executor provided to network quality. |
| 314 waitForThroughput.block(); | 317 waitForThroughput.block(); |
| 315 assertTrue(throughputListener.throughputObservationCount() > 0); | 318 assertTrue(throughputListener.throughputObservationCount() > 0); |
| 316 | 319 |
| 317 // Check RTT observation count after throughput observation has been rec
eived. This ensures | 320 // Check RTT observation count after throughput observation has been rec
eived. This ensures |
| (...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 } | 1283 } |
| 1281 }.start(); | 1284 }.start(); |
| 1282 otherThreadDone.block(); | 1285 otherThreadDone.block(); |
| 1283 builder.build().shutdown(); | 1286 builder.build().shutdown(); |
| 1284 uiThreadDone.open(); | 1287 uiThreadDone.open(); |
| 1285 } | 1288 } |
| 1286 }); | 1289 }); |
| 1287 assertTrue(uiThreadDone.block(1000)); | 1290 assertTrue(uiThreadDone.block(1000)); |
| 1288 } | 1291 } |
| 1289 } | 1292 } |
| OLD | NEW |