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

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

Issue 1273173002: Added Network Quality Estimator Real-time interface to Cronet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments on patch set 6 Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.ContextWrapper; 8 import android.content.ContextWrapper;
9 import android.os.ConditionVariable; 9 import android.os.ConditionVariable;
10 import android.os.Handler; 10 import android.os.Handler;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 72
73 @Override 73 @Override
74 public void onFailed(UrlRequest request, 74 public void onFailed(UrlRequest request,
75 ResponseInfo info, 75 ResponseInfo info,
76 UrlRequestException error) { 76 UrlRequestException error) {
77 super.onFailed(request, info, error); 77 super.onFailed(request, info, error);
78 mActivity.mUrlRequestContext.shutdown(); 78 mActivity.mUrlRequestContext.shutdown();
79 } 79 }
80 } 80 }
81 81
82 static class TestNetworkQualityObserver
83 implements NetworkQualityRTTObserver, NetworkQualityThroughputObserv er {
84 int mRTTObservationCount;
85 int mThroughputObservationCount;
86
87 public void onRTTObservation(int rttMs, int when, int source) {
88 mRTTObservationCount++;
89 }
90
91 public void onThroughputObservation(int throughputKbps, int when, int so urce) {
92 mThroughputObservationCount++;
93 }
94
95 public int rttObservationCount() {
96 return mRTTObservationCount;
97 }
98
99 public int throughputObservationCount() {
100 return mThroughputObservationCount;
101 }
102 }
103
82 @SmallTest 104 @SmallTest
83 @Feature({"Cronet"}) 105 @Feature({"Cronet"})
84 public void testConfigUserAgent() throws Exception { 106 public void testConfigUserAgent() throws Exception {
85 String userAgentName = "User-Agent"; 107 String userAgentName = "User-Agent";
86 String userAgentValue = "User-Agent-Value"; 108 String userAgentValue = "User-Agent-Value";
87 UrlRequestContextConfig config = new UrlRequestContextConfig(); 109 UrlRequestContextConfig config = new UrlRequestContextConfig();
88 config.setUserAgent(userAgentValue); 110 config.setUserAgent(userAgentValue);
89 config.setLibraryName("cronet_tests"); 111 config.setLibraryName("cronet_tests");
90 String[] commandLineArgs = { 112 String[] commandLineArgs = {
91 CronetTestActivity.CONFIG_KEY, config.toString() 113 CronetTestActivity.CONFIG_KEY, config.toString()
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 // Proxy logic configured to use the test server as its proxy. 169 // Proxy logic configured to use the test server as its proxy.
148 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); 170 assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
149 assertEquals(serverHostPort, listener.mResponseInfo.getProxyServer()); 171 assertEquals(serverHostPort, listener.mResponseInfo.getProxyServer());
150 assertEquals( 172 assertEquals(
151 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt", 173 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt",
152 listener.mResponseInfo.getUrl()); 174 listener.mResponseInfo.getUrl());
153 } 175 }
154 176
155 @SmallTest 177 @SmallTest
156 @Feature({"Cronet"}) 178 @Feature({"Cronet"})
179 public void testRealTimeNetworkQualityObservationsNotEnabled() throws Except ion {
180 mActivity = launchCronetTestApp();
181 TestNetworkQualityObserver networkQualityObserver = new TestNetworkQuali tyObserver();
182 mActivity.mUrlRequestContext.addRTTObserver(networkQualityObserver);
183 mActivity.mUrlRequestContext.addThroughputObserver(networkQualityObserve r);
184 TestUrlRequestListener listener = new TestUrlRequestListener();
185 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
186 TEST_URL, listener, listener.getExecutor());
187 urlRequest.start();
188 listener.blockForDone();
189 assertEquals(0, networkQualityObserver.rttObservationCount());
190 assertEquals(0, networkQualityObserver.throughputObservationCount());
191 mActivity.mUrlRequestContext.shutdown();
192 }
193
194 @SmallTest
195 @Feature({"Cronet"})
196 public void testRealTimeNetworkQualityObservationsObserverRemoved() throws E xception {
197 mActivity = launchCronetTestApp();
198 TestNetworkQualityObserver networkQualityObserver = new TestNetworkQuali tyObserver();
199 mActivity.mUrlRequestContext.enableNetworkQualityEstimator(true, true);
200 mActivity.mUrlRequestContext.addRTTObserver(networkQualityObserver);
201 mActivity.mUrlRequestContext.addThroughputObserver(networkQualityObserve r);
202 mActivity.mUrlRequestContext.removeRTTObserver(networkQualityObserver);
203 mActivity.mUrlRequestContext.removeThroughputObserver(networkQualityObse rver);
204 TestUrlRequestListener listener = new TestUrlRequestListener();
205 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
206 TEST_URL, listener, listener.getExecutor());
207 urlRequest.start();
208 listener.blockForDone();
209 assertEquals(0, networkQualityObserver.rttObservationCount());
210 assertEquals(0, networkQualityObserver.throughputObservationCount());
211 mActivity.mUrlRequestContext.shutdown();
212 }
213
214 @SmallTest
215 @Feature({"Cronet"})
216 public void testRealTimeNetworkQualityObservations() throws Exception {
217 mActivity = launchCronetTestApp();
218 TestNetworkQualityObserver networkQualityObserver = new TestNetworkQuali tyObserver();
219 mActivity.mUrlRequestContext.enableNetworkQualityEstimator(true, true);
220 mActivity.mUrlRequestContext.addRTTObserver(networkQualityObserver);
221 mActivity.mUrlRequestContext.addThroughputObserver(networkQualityObserve r);
222 TestUrlRequestListener listener = new TestUrlRequestListener();
223 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
224 TEST_URL, listener, listener.getExecutor());
225 urlRequest.start();
226 listener.blockForDone();
227 assertTrue(networkQualityObserver.rttObservationCount() > 0);
228 assertTrue(networkQualityObserver.throughputObservationCount() > 0);
229 mActivity.mUrlRequestContext.shutdown();
230 }
231
232 @SmallTest
233 @Feature({"Cronet"})
157 public void testShutdown() throws Exception { 234 public void testShutdown() throws Exception {
158 mActivity = launchCronetTestApp(); 235 mActivity = launchCronetTestApp();
159 TestUrlRequestListener listener = new ShutdownTestUrlRequestListener(); 236 TestUrlRequestListener listener = new ShutdownTestUrlRequestListener();
160 // Block listener when response starts to verify that shutdown fails 237 // Block listener when response starts to verify that shutdown fails
161 // if there are active requests. 238 // if there are active requests.
162 listener.setAutoAdvance(false); 239 listener.setAutoAdvance(false);
163 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 240 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
164 TEST_URL, listener, listener.getExecutor()); 241 TEST_URL, listener, listener.getExecutor());
165 urlRequest.start(); 242 urlRequest.start();
166 try { 243 try {
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 new CronetUrlRequestContext(mActivity, mActivity.getContextConfi g()); 745 new CronetUrlRequestContext(mActivity, mActivity.getContextConfi g());
669 CronetUrlRequestContext secondContext = new CronetUrlRequestContext( 746 CronetUrlRequestContext secondContext = new CronetUrlRequestContext(
670 mActivity.getApplicationContext(), mActivity.getContextConfig()) ; 747 mActivity.getApplicationContext(), mActivity.getContextConfig()) ;
671 CronetUrlRequestContext thirdContext = new CronetUrlRequestContext( 748 CronetUrlRequestContext thirdContext = new CronetUrlRequestContext(
672 new ContextWrapper(mActivity), mActivity.getContextConfig()); 749 new ContextWrapper(mActivity), mActivity.getContextConfig());
673 firstContext.shutdown(); 750 firstContext.shutdown();
674 secondContext.shutdown(); 751 secondContext.shutdown();
675 thirdContext.shutdown(); 752 thirdContext.shutdown();
676 } 753 }
677 } 754 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698