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

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

Issue 1093793002: Allow setting Cronet NetLog level to LOG_ALL (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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.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;
11 import android.os.Looper; 11 import android.os.Looper;
12 import android.test.suitebuilder.annotation.SmallTest; 12 import android.test.suitebuilder.annotation.SmallTest;
13 13
14 import org.chromium.base.PathUtils; 14 import org.chromium.base.PathUtils;
15 import org.chromium.base.test.util.Feature; 15 import org.chromium.base.test.util.Feature;
16 import org.chromium.net.TestUrlRequestListener.ResponseStep; 16 import org.chromium.net.TestUrlRequestListener.ResponseStep;
17 17
18 import java.io.BufferedReader;
18 import java.io.File; 19 import java.io.File;
20 import java.io.FileReader;
19 21
20 /** 22 /**
21 * Test CronetUrlRequestContext. 23 * Test CronetUrlRequestContext.
22 */ 24 */
23 public class CronetUrlRequestContextTest extends CronetTestBase { 25 public class CronetUrlRequestContextTest extends CronetTestBase {
24 // URLs used for tests. 26 // URLs used for tests.
25 private static final String TEST_URL = "http://127.0.0.1:8000"; 27 private static final String TEST_URL = "http://127.0.0.1:8000";
26 private static final String URL_404 = "http://127.0.0.1:8000/notfound404"; 28 private static final String URL_404 = "http://127.0.0.1:8000/notfound404";
27 private static final String MOCK_CRONET_TEST_FAILED_URL = 29 private static final String MOCK_CRONET_TEST_FAILED_URL =
28 "http://mock.failed.request/-2"; 30 "http://mock.failed.request/-2";
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 public void testNetLog() throws Exception { 272 public void testNetLog() throws Exception {
271 Context context = getInstrumentation().getTargetContext(); 273 Context context = getInstrumentation().getTargetContext();
272 File directory = new File(PathUtils.getDataDirectory(context)); 274 File directory = new File(PathUtils.getDataDirectory(context));
273 File file = File.createTempFile("cronet", "json", directory); 275 File file = File.createTempFile("cronet", "json", directory);
274 CronetUrlRequestContext requestContext = new CronetUrlRequestContext( 276 CronetUrlRequestContext requestContext = new CronetUrlRequestContext(
275 context, 277 context,
276 new UrlRequestContextConfig().setLibraryName("cronet_tests")); 278 new UrlRequestContextConfig().setLibraryName("cronet_tests"));
277 // Start NetLog immediately after the request context is created to make 279 // Start NetLog immediately after the request context is created to make
278 // sure that the call won't crash the app even when the native request 280 // sure that the call won't crash the app even when the native request
279 // context is not fully initialized. See crbug.com/470196. 281 // context is not fully initialized. See crbug.com/470196.
280 requestContext.startNetLogToFile(file.getPath()); 282 requestContext.startNetLogToFile(file.getPath(), false);
281 283
282 // Start a request. 284 // Start a request.
283 TestUrlRequestListener listener = new TestUrlRequestListener(); 285 TestUrlRequestListener listener = new TestUrlRequestListener();
284 UrlRequest request = requestContext.createRequest( 286 UrlRequest request = requestContext.createRequest(
285 TEST_URL, listener, listener.getExecutor()); 287 TEST_URL, listener, listener.getExecutor());
286 request.start(); 288 request.start();
287 listener.blockForDone(); 289 listener.blockForDone();
288 requestContext.stopNetLog(); 290 requestContext.stopNetLog();
289 assertTrue(file.exists()); 291 assertTrue(file.exists());
290 assertTrue(file.length() != 0); 292 assertTrue(file.length() != 0);
293 assertFalse(hasBytesInNetLog(file));
291 assertTrue(file.delete()); 294 assertTrue(file.delete());
292 assertTrue(!file.exists()); 295 assertTrue(!file.exists());
293 } 296 }
294 297
295 @SmallTest 298 @SmallTest
296 @Feature({"Cronet"}) 299 @Feature({"Cronet"})
297 public void testNetLogAfterShutdown() throws Exception { 300 public void testNetLogAfterShutdown() throws Exception {
298 mActivity = launchCronetTestApp(); 301 mActivity = launchCronetTestApp();
299 TestUrlRequestListener listener = new TestUrlRequestListener(); 302 TestUrlRequestListener listener = new TestUrlRequestListener();
300 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 303 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
301 TEST_URL, listener, listener.getExecutor()); 304 TEST_URL, listener, listener.getExecutor());
302 urlRequest.start(); 305 urlRequest.start();
303 listener.blockForDone(); 306 listener.blockForDone();
304 mActivity.mUrlRequestContext.shutdown(); 307 mActivity.mUrlRequestContext.shutdown();
305 308
306 File directory = new File(PathUtils.getDataDirectory( 309 File directory = new File(PathUtils.getDataDirectory(
307 getInstrumentation().getTargetContext())); 310 getInstrumentation().getTargetContext()));
308 File file = File.createTempFile("cronet", "json", directory); 311 File file = File.createTempFile("cronet", "json", directory);
309 try { 312 try {
310 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 313 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(),
314 false);
311 fail("Should throw an exception."); 315 fail("Should throw an exception.");
312 } catch (Exception e) { 316 } catch (Exception e) {
313 assertEquals("Context is shut down.", e.getMessage()); 317 assertEquals("Context is shut down.", e.getMessage());
314 } 318 }
319 assertFalse(hasBytesInNetLog(file));
315 assertTrue(file.delete()); 320 assertTrue(file.delete());
316 assertTrue(!file.exists()); 321 assertTrue(!file.exists());
317 } 322 }
318 323
319 @SmallTest 324 @SmallTest
320 @Feature({"Cronet"}) 325 @Feature({"Cronet"})
321 public void testNetLogStartMultipleTimes() throws Exception { 326 public void testNetLogStartMultipleTimes() throws Exception {
322 mActivity = launchCronetTestApp(); 327 mActivity = launchCronetTestApp();
323 File directory = new File(PathUtils.getDataDirectory( 328 File directory = new File(PathUtils.getDataDirectory(
324 getInstrumentation().getTargetContext())); 329 getInstrumentation().getTargetContext()));
325 File file = File.createTempFile("cronet", "json", directory); 330 File file = File.createTempFile("cronet", "json", directory);
326 // Start NetLog multiple times. 331 // Start NetLog multiple times.
327 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 332 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(), false);
328 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 333 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(), false);
329 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 334 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(), false);
330 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 335 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(), false);
331 // Start a request. 336 // Start a request.
332 TestUrlRequestListener listener = new TestUrlRequestListener(); 337 TestUrlRequestListener listener = new TestUrlRequestListener();
333 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 338 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
334 TEST_URL, listener, listener.getExecutor()); 339 TEST_URL, listener, listener.getExecutor());
335 urlRequest.start(); 340 urlRequest.start();
336 listener.blockForDone(); 341 listener.blockForDone();
337 mActivity.mUrlRequestContext.stopNetLog(); 342 mActivity.mUrlRequestContext.stopNetLog();
338 assertTrue(file.exists()); 343 assertTrue(file.exists());
339 assertTrue(file.length() != 0); 344 assertTrue(file.length() != 0);
345 assertFalse(hasBytesInNetLog(file));
340 assertTrue(file.delete()); 346 assertTrue(file.delete());
341 assertTrue(!file.exists()); 347 assertTrue(!file.exists());
342 } 348 }
343 349
344 @SmallTest 350 @SmallTest
345 @Feature({"Cronet"}) 351 @Feature({"Cronet"})
346 public void testNetLogStopMultipleTimes() throws Exception { 352 public void testNetLogStopMultipleTimes() throws Exception {
347 mActivity = launchCronetTestApp(); 353 mActivity = launchCronetTestApp();
348 File directory = new File(PathUtils.getDataDirectory( 354 File directory = new File(PathUtils.getDataDirectory(
349 getInstrumentation().getTargetContext())); 355 getInstrumentation().getTargetContext()));
350 File file = File.createTempFile("cronet", "json", directory); 356 File file = File.createTempFile("cronet", "json", directory);
351 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath()); 357 mActivity.mUrlRequestContext.startNetLogToFile(file.getPath(), false);
352 // Start a request. 358 // Start a request.
353 TestUrlRequestListener listener = new TestUrlRequestListener(); 359 TestUrlRequestListener listener = new TestUrlRequestListener();
354 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 360 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
355 TEST_URL, listener, listener.getExecutor()); 361 TEST_URL, listener, listener.getExecutor());
356 urlRequest.start(); 362 urlRequest.start();
357 listener.blockForDone(); 363 listener.blockForDone();
358 // Stop NetLog multiple times. 364 // Stop NetLog multiple times.
359 mActivity.mUrlRequestContext.stopNetLog(); 365 mActivity.mUrlRequestContext.stopNetLog();
360 mActivity.mUrlRequestContext.stopNetLog(); 366 mActivity.mUrlRequestContext.stopNetLog();
361 mActivity.mUrlRequestContext.stopNetLog(); 367 mActivity.mUrlRequestContext.stopNetLog();
362 mActivity.mUrlRequestContext.stopNetLog(); 368 mActivity.mUrlRequestContext.stopNetLog();
363 mActivity.mUrlRequestContext.stopNetLog(); 369 mActivity.mUrlRequestContext.stopNetLog();
364 assertTrue(file.exists()); 370 assertTrue(file.exists());
365 assertTrue(file.length() != 0); 371 assertTrue(file.length() != 0);
372 assertFalse(hasBytesInNetLog(file));
366 assertTrue(file.delete()); 373 assertTrue(file.delete());
367 assertTrue(!file.exists()); 374 assertTrue(!file.exists());
368 } 375 }
369 376
377 @SmallTest
378 @Feature({"Cronet"})
379 public void testNetLogWithBytes() throws Exception {
380 Context context = getInstrumentation().getTargetContext();
381 File directory = new File(PathUtils.getDataDirectory(context));
382 File file = File.createTempFile("cronet", "json", directory);
383 CronetUrlRequestContext requestContext = new CronetUrlRequestContext(
384 context,
385 new UrlRequestContextConfig().setLibraryName("cronet_tests"));
386 // Start NetLog with logAll as true.
387 requestContext.startNetLogToFile(file.getPath(), true);
388 // Start a request.
389 TestUrlRequestListener listener = new TestUrlRequestListener();
390 UrlRequest request = requestContext.createRequest(
391 TEST_URL, listener, listener.getExecutor());
392 request.start();
393 listener.blockForDone();
394 requestContext.stopNetLog();
395 assertTrue(file.exists());
396 assertTrue(file.length() != 0);
397 assertTrue(hasBytesInNetLog(file));
398 assertTrue(file.delete());
399 assertTrue(!file.exists());
400 }
401
402 private boolean hasBytesInNetLog(File logFile) throws Exception {
403 BufferedReader logReader = new BufferedReader(new FileReader(logFile));
404 try {
405 String logLine;
406 while ((logLine = logReader.readLine()) != null) {
407 if (logLine.contains("\"hex_encoded_bytes\"")) {
408 return true;
409 }
410 }
411 return false;
412 } finally {
413 logReader.close();
414 }
415 }
416
370 private void enableCache(UrlRequestContextConfig.HttpCache cacheType) 417 private void enableCache(UrlRequestContextConfig.HttpCache cacheType)
371 throws Exception { 418 throws Exception {
372 UrlRequestContextConfig config = new UrlRequestContextConfig(); 419 UrlRequestContextConfig config = new UrlRequestContextConfig();
373 config.setLibraryName("cronet_tests"); 420 config.setLibraryName("cronet_tests");
374 if (cacheType == UrlRequestContextConfig.HttpCache.DISK 421 if (cacheType == UrlRequestContextConfig.HttpCache.DISK
375 || cacheType == UrlRequestContextConfig.HttpCache.DISK_NO_HTTP) { 422 || cacheType == UrlRequestContextConfig.HttpCache.DISK_NO_HTTP) {
376 config.setStoragePath(prepareTestStorage()); 423 config.setStoragePath(prepareTestStorage());
377 } 424 }
378 425
379 config.enableHttpCache(cacheType, 1000 * 1024); 426 config.enableHttpCache(cacheType, 1000 * 1024);
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 new CronetUrlRequestContext(mActivity, mActivity.getContextConfi g()); 634 new CronetUrlRequestContext(mActivity, mActivity.getContextConfi g());
588 CronetUrlRequestContext secondContext = new CronetUrlRequestContext( 635 CronetUrlRequestContext secondContext = new CronetUrlRequestContext(
589 mActivity.getApplicationContext(), mActivity.getContextConfig()) ; 636 mActivity.getApplicationContext(), mActivity.getContextConfig()) ;
590 CronetUrlRequestContext thirdContext = new CronetUrlRequestContext( 637 CronetUrlRequestContext thirdContext = new CronetUrlRequestContext(
591 new ContextWrapper(mActivity), mActivity.getContextConfig()); 638 new ContextWrapper(mActivity), mActivity.getContextConfig());
592 firstContext.shutdown(); 639 firstContext.shutdown();
593 secondContext.shutdown(); 640 secondContext.shutdown();
594 thirdContext.shutdown(); 641 thirdContext.shutdown();
595 } 642 }
596 } 643 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698