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

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

Issue 1138493002: [Cronet] Added a unit test in QuicTest to test async API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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.app.Activity; 7 import android.app.Activity;
8 import android.content.Intent; 8 import android.content.Intent;
9 import android.os.Bundle; 9 import android.os.Bundle;
10 import android.os.Environment; 10 import android.os.Environment;
11 import android.util.Log;
12 11
12 import static junit.framework.Assert.assertEquals;
13 import static junit.framework.Assert.assertTrue; 13 import static junit.framework.Assert.assertTrue;
14 14
15 import org.chromium.base.Log;
15 import org.chromium.base.PathUtils; 16 import org.chromium.base.PathUtils;
16 import org.chromium.base.annotations.SuppressFBWarnings; 17 import org.chromium.base.annotations.SuppressFBWarnings;
17 import org.chromium.net.urlconnection.CronetURLStreamHandlerFactory; 18 import org.chromium.net.urlconnection.CronetURLStreamHandlerFactory;
18 19
19 import java.io.ByteArrayInputStream; 20 import java.io.ByteArrayInputStream;
20 import java.io.File; 21 import java.io.File;
21 import java.io.InputStream; 22 import java.io.InputStream;
22 23
23 import java.nio.channels.Channels; 24 import java.nio.channels.Channels;
24 import java.nio.channels.ReadableByteChannel; 25 import java.nio.channels.ReadableByteChannel;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 HttpUrlRequestFactory mRequestFactory; 66 HttpUrlRequestFactory mRequestFactory;
66 @SuppressFBWarnings("URF_UNREAD_FIELD") 67 @SuppressFBWarnings("URF_UNREAD_FIELD")
67 HistogramManager mHistogramManager; 68 HistogramManager mHistogramManager;
68 69
69 String mUrl; 70 String mUrl;
70 71
71 boolean mLoading = false; 72 boolean mLoading = false;
72 73
73 int mHttpStatusCode = 0; 74 int mHttpStatusCode = 0;
74 75
76 // UrlRequestContextConfig used for this activity.
77 private UrlRequestContextConfig mConfig;
78
75 class TestHttpUrlRequestListener implements HttpUrlRequestListener { 79 class TestHttpUrlRequestListener implements HttpUrlRequestListener {
76 public TestHttpUrlRequestListener() { 80 public TestHttpUrlRequestListener() {
77 } 81 }
78 82
79 @Override 83 @Override
80 public void onResponseStarted(HttpUrlRequest request) { 84 public void onResponseStarted(HttpUrlRequest request) {
81 mHttpStatusCode = request.getHttpStatusCode(); 85 mHttpStatusCode = request.getHttpStatusCode();
82 } 86 }
83 87
84 @Override 88 @Override
85 public void onRequestComplete(HttpUrlRequest request) { 89 public void onRequestComplete(HttpUrlRequest request) {
86 mLoading = false; 90 mLoading = false;
87 } 91 }
88 } 92 }
89 93
90 @Override 94 @Override
91 protected void onCreate(final Bundle savedInstanceState) { 95 protected void onCreate(final Bundle savedInstanceState) {
92 super.onCreate(savedInstanceState); 96 super.onCreate(savedInstanceState);
93 prepareTestStorage(); 97 prepareTestStorage();
94 98
99 // Print out extra arguments passed in starting this activity.
xunjieli 2015/05/08 15:53:56 This is moved here from getCommandLineArg(String k
100 Intent intent = getIntent();
101 Bundle extras = intent.getExtras();
102 Log.i(TAG, "Cronet extras: " + extras);
103 if (extras != null) {
104 String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY);
105 if (commandLine != null) {
106 assertEquals(0, commandLine.length % 2);
107 for (int i = 0; i < commandLine.length / 2; i++) {
108 Log.i(TAG, "Cronet commandLine %s = %s", commandLine[i * 2],
109 commandLine[i * 2 + 1]);
110 }
111 }
112 }
113
114 // Initializes UrlRequestContextConfig from commandLine args.
115 mConfig = initializeContextConfig();
116 Log.i(TAG, "Using Config: " + mConfig.toString());
117
95 String initString = getCommandLineArg(LIBRARY_INIT_KEY); 118 String initString = getCommandLineArg(LIBRARY_INIT_KEY);
96 if (LIBRARY_INIT_SKIP.equals(initString)) { 119 if (LIBRARY_INIT_SKIP.equals(initString)) {
97 return; 120 return;
98 } 121 }
99 122
100 if (LIBRARY_INIT_WRAPPER.equals(initString)) { 123 if (LIBRARY_INIT_WRAPPER.equals(initString)) {
101 mStreamHandlerFactory = 124 mStreamHandlerFactory =
102 new CronetURLStreamHandlerFactory(this, getContextConfig()); 125 new CronetURLStreamHandlerFactory(this, mConfig);
103 } 126 }
104 127
105 mUrlRequestContext = initRequestContext(); 128 mUrlRequestContext = initRequestContext();
106 mHistogramManager = HistogramManager.createHistogramManager(); 129 mHistogramManager = HistogramManager.createHistogramManager();
107 130
108 if (LIBRARY_INIT_CRONET_ONLY.equals(initString)) { 131 if (LIBRARY_INIT_CRONET_ONLY.equals(initString)) {
109 return; 132 return;
110 } 133 }
111 134
112 mRequestFactory = initRequestFactory(); 135 mRequestFactory = initRequestFactory();
(...skipping 23 matching lines...) Expand all
136 for (File c : path.listFiles()) { 159 for (File c : path.listFiles()) {
137 if (!recursiveDelete(c)) { 160 if (!recursiveDelete(c)) {
138 return false; 161 return false;
139 } 162 }
140 } 163 }
141 } 164 }
142 return path.delete(); 165 return path.delete();
143 } 166 }
144 167
145 UrlRequestContextConfig getContextConfig() { 168 UrlRequestContextConfig getContextConfig() {
169 return mConfig;
170 }
171
172 private UrlRequestContextConfig initializeContextConfig() {
146 UrlRequestContextConfig config = new UrlRequestContextConfig(); 173 UrlRequestContextConfig config = new UrlRequestContextConfig();
147
148 String cacheString = getCommandLineArg(CACHE_KEY);
149 if (CACHE_DISK.equals(cacheString)) {
150 config.setStoragePath(getTestStorage());
151 config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK, 1000 * 1024);
152 } else if (CACHE_DISK_NO_HTTP.equals(cacheString)) {
153 config.setStoragePath(getTestStorage());
154 config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK_NO_HTT P, 1000 * 1024);
155 } else if (CACHE_IN_MEMORY.equals(cacheString)) {
156 config.enableHttpCache(UrlRequestContextConfig.HttpCache.IN_MEMORY, 100 * 1024);
157 }
158 config.enableSPDY(true).enableQUIC(true); 174 config.enableSPDY(true).enableQUIC(true);
159 175
160 // Override config if it is passed from the launcher. 176 // Override config if it is passed from the launcher.
161 String configString = getCommandLineArg(CONFIG_KEY); 177 String configString = getCommandLineArg(CONFIG_KEY);
162 if (configString != null) { 178 if (configString != null) {
163 try { 179 try {
164 Log.i(TAG, "Using Config: " + configString);
165 config = new UrlRequestContextConfig(configString); 180 config = new UrlRequestContextConfig(configString);
166 } catch (org.json.JSONException e) { 181 } catch (org.json.JSONException e) {
167 Log.e(TAG, "Invalid Config.", e); 182 Log.e(TAG, "Invalid Config.", e);
168 finish(); 183 finish();
169 return null; 184 return null;
170 } 185 }
171 } 186 }
172 187
188 String cacheString = getCommandLineArg(CACHE_KEY);
xunjieli 2015/05/08 15:53:56 This block of code is moved after the "Override co
mef 2015/05/13 17:00:03 Acknowledged. Good idea!
189 if (CACHE_DISK.equals(cacheString)) {
190 config.setStoragePath(getTestStorage());
191 config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK, 1000 * 1024);
192 } else if (CACHE_DISK_NO_HTTP.equals(cacheString)) {
193 config.setStoragePath(getTestStorage());
194 config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK_NO_HTT P, 1000 * 1024);
195 } else if (CACHE_IN_MEMORY.equals(cacheString)) {
196 config.enableHttpCache(UrlRequestContextConfig.HttpCache.IN_MEMORY, 100 * 1024);
197 }
198
173 // Setting this here so it isn't overridden on the command line 199 // Setting this here so it isn't overridden on the command line
174 config.setLibraryName("cronet_tests"); 200 config.setLibraryName("cronet_tests");
175 return config; 201 return config;
176 } 202 }
177 203
178 // Helper function to initialize request context. Also used in testing. 204 // Helper function to initialize request context. Also used in testing.
179 public UrlRequestContext initRequestContext() { 205 public UrlRequestContext initRequestContext() {
180 return UrlRequestContext.createContext(this, getContextConfig()); 206 return UrlRequestContext.createContext(this, mConfig);
181 } 207 }
182 208
183 // Helper function to initialize request factory. Also used in testing. 209 // Helper function to initialize request factory. Also used in testing.
184 public HttpUrlRequestFactory initRequestFactory() { 210 public HttpUrlRequestFactory initRequestFactory() {
185 return HttpUrlRequestFactory.createFactory(this, getContextConfig()); 211 return HttpUrlRequestFactory.createFactory(this, mConfig);
186 } 212 }
187 213
188 private static String getUrlFromIntent(Intent intent) { 214 private static String getUrlFromIntent(Intent intent) {
189 return intent != null ? intent.getDataString() : null; 215 return intent != null ? intent.getDataString() : null;
190 } 216 }
191 217
192 private String getCommandLineArg(String key) { 218 private String getCommandLineArg(String key) {
193 Intent intent = getIntent(); 219 Intent intent = getIntent();
194 Bundle extras = intent.getExtras(); 220 Bundle extras = intent.getExtras();
195 Log.i(TAG, "Cronet extras: " + extras);
196 if (extras != null) { 221 if (extras != null) {
197 String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY); 222 String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY);
198 if (commandLine != null) { 223 if (commandLine != null) {
199 for (int i = 0; i < commandLine.length; ++i) { 224 for (int i = 0; i < commandLine.length; ++i) {
200 Log.i(TAG,
201 "Cronet commandLine[" + i + "]=" + commandLine[i]);
202 if (commandLine[i].equals(key)) { 225 if (commandLine[i].equals(key)) {
203 return commandLine[++i]; 226 return commandLine[++i];
204 } 227 }
205 } 228 }
206 } 229 }
207 } 230 }
208 return null; 231 return null;
209 } 232 }
210 233
211 private void applyCommandLineToHttpUrlRequest(HttpUrlRequest request) { 234 private void applyCommandLineToHttpUrlRequest(HttpUrlRequest request) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 283
261 public void stopNetLog() { 284 public void stopNetLog() {
262 if (mRequestFactory != null) { 285 if (mRequestFactory != null) {
263 mRequestFactory.stopNetLog(); 286 mRequestFactory.stopNetLog();
264 } 287 }
265 if (mUrlRequestContext != null) { 288 if (mUrlRequestContext != null) {
266 mUrlRequestContext.stopNetLog(); 289 mUrlRequestContext.stopNetLog();
267 } 290 }
268 } 291 }
269 } 292 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698