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

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

Issue 2892013002: [Cronet] Clean up tests (Closed)
Patch Set: address comments Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.support.test.filters.MediumTest; 7 import android.support.test.filters.MediumTest;
8 8
9 import org.json.JSONObject; 9 import org.json.JSONObject;
10 10
11 import org.chromium.base.Log; 11 import org.chromium.base.Log;
12 import org.chromium.base.PathUtils; 12 import org.chromium.base.PathUtils;
13 import org.chromium.base.test.util.Feature; 13 import org.chromium.base.test.util.Feature;
14 14
15 import java.io.File; 15 import java.io.File;
16 import java.io.FileInputStream; 16 import java.io.FileInputStream;
17 import java.io.FileNotFoundException; 17 import java.io.FileNotFoundException;
18 import java.io.IOException; 18 import java.io.IOException;
19 19
20 /** 20 /**
21 * Tests for experimental options. 21 * Tests for experimental options.
22 */ 22 */
23 public class ExperimentalOptionsTest extends CronetTestBase { 23 public class ExperimentalOptionsTest extends CronetTestBase {
24 private static final String TAG = ExperimentalOptionsTest.class.getSimpleNam e(); 24 private static final String TAG = ExperimentalOptionsTest.class.getSimpleNam e();
25 private CronetTestFramework mTestFramework;
26 private ExperimentalCronetEngine.Builder mBuilder; 25 private ExperimentalCronetEngine.Builder mBuilder;
27 26
28 @Override 27 @Override
29 protected void setUp() throws Exception { 28 protected void setUp() throws Exception {
30 super.setUp(); 29 super.setUp();
31 mBuilder = new ExperimentalCronetEngine.Builder(getContext()); 30 mBuilder = new ExperimentalCronetEngine.Builder(getContext());
32 CronetTestUtil.setMockCertVerifierForTesting( 31 CronetTestUtil.setMockCertVerifierForTesting(
33 mBuilder, QuicTestServer.createMockCertVerifier()); 32 mBuilder, QuicTestServer.createMockCertVerifier());
34 assertTrue(Http2TestServer.startHttp2TestServer( 33 assertTrue(Http2TestServer.startHttp2TestServer(
35 getContext(), SERVER_CERT_PEM, SERVER_KEY_PKCS8_PEM)); 34 getContext(), SERVER_CERT_PEM, SERVER_KEY_PKCS8_PEM));
36 } 35 }
37 36
38 @Override 37 @Override
39 protected void tearDown() throws Exception { 38 protected void tearDown() throws Exception {
40 assertTrue(Http2TestServer.shutdownHttp2TestServer()); 39 assertTrue(Http2TestServer.shutdownHttp2TestServer());
41 if (mTestFramework != null && mTestFramework.mCronetEngine != null) {
42 mTestFramework.mCronetEngine.shutdown();
43 }
44 super.tearDown(); 40 super.tearDown();
45 } 41 }
46 42
47 @MediumTest 43 @MediumTest
48 @Feature({"Cronet"}) 44 @Feature({"Cronet"})
49 @OnlyRunNativeCronet 45 @OnlyRunNativeCronet
50 // Tests that NetLog writes effective experimental options to NetLog. 46 // Tests that NetLog writes effective experimental options to NetLog.
51 public void testNetLog() throws Exception { 47 public void testNetLog() throws Exception {
52 File directory = new File(PathUtils.getDataDirectory()); 48 File directory = new File(PathUtils.getDataDirectory());
53 File logfile = File.createTempFile("cronet", "json", directory); 49 File logfile = File.createTempFile("cronet", "json", directory);
54 JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules (); 50 JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules ();
55 JSONObject experimentalOptions = 51 JSONObject experimentalOptions =
56 new JSONObject().put("HostResolverRules", hostResolverParams); 52 new JSONObject().put("HostResolverRules", hostResolverParams);
57 mBuilder.setExperimentalOptions(experimentalOptions.toString()); 53 mBuilder.setExperimentalOptions(experimentalOptions.toString());
58 54
59 mTestFramework = new CronetTestFramework(null, null, getContext(), mBuil der); 55 CronetEngine cronetEngine = mBuilder.build();
60 mTestFramework.mCronetEngine.startNetLogToFile(logfile.getPath(), false) ; 56 cronetEngine.startNetLogToFile(logfile.getPath(), false);
61 String url = Http2TestServer.getEchoMethodUrl(); 57 String url = Http2TestServer.getEchoMethodUrl();
62 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 58 TestUrlRequestCallback callback = new TestUrlRequestCallback();
63 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB uilder( 59 UrlRequest.Builder builder =
64 url, callback, callback.getExecutor()); 60 cronetEngine.newUrlRequestBuilder(url, callback, callback.getExe cutor());
65 UrlRequest urlRequest = builder.build(); 61 UrlRequest urlRequest = builder.build();
66 urlRequest.start(); 62 urlRequest.start();
67 callback.blockForDone(); 63 callback.blockForDone();
68 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 64 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
69 assertEquals("GET", callback.mResponseAsString); 65 assertEquals("GET", callback.mResponseAsString);
70 mTestFramework.mCronetEngine.stopNetLog(); 66 cronetEngine.stopNetLog();
71 assertFileContainsString(logfile, "HostResolverRules"); 67 assertFileContainsString(logfile, "HostResolverRules");
72 assertTrue(logfile.delete()); 68 assertTrue(logfile.delete());
73 assertFalse(logfile.exists()); 69 assertFalse(logfile.exists());
70 cronetEngine.shutdown();
74 } 71 }
75 72
76 @MediumTest 73 @MediumTest
77 @Feature({"Cronet"}) 74 @Feature({"Cronet"})
78 @OnlyRunNativeCronet 75 @OnlyRunNativeCronet
79 public void testSetSSLKeyLogFile() throws Exception { 76 public void testSetSSLKeyLogFile() throws Exception {
80 String url = Http2TestServer.getEchoMethodUrl(); 77 String url = Http2TestServer.getEchoMethodUrl();
81 File dir = new File(PathUtils.getDataDirectory()); 78 File dir = new File(PathUtils.getDataDirectory());
82 File file = File.createTempFile("ssl_key_log_file", "", dir); 79 File file = File.createTempFile("ssl_key_log_file", "", dir);
83 80
84 JSONObject experimentalOptions = new JSONObject().put("ssl_key_log_file" , file.getPath()); 81 JSONObject experimentalOptions = new JSONObject().put("ssl_key_log_file" , file.getPath());
85 mBuilder.setExperimentalOptions(experimentalOptions.toString()); 82 mBuilder.setExperimentalOptions(experimentalOptions.toString());
86 mTestFramework = new CronetTestFramework(null, null, getContext(), mBuil der); 83 CronetEngine cronetEngine = mBuilder.build();
87 84
88 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 85 TestUrlRequestCallback callback = new TestUrlRequestCallback();
89 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB uilder( 86 UrlRequest.Builder builder =
90 url, callback, callback.getExecutor()); 87 cronetEngine.newUrlRequestBuilder(url, callback, callback.getExe cutor());
91 UrlRequest urlRequest = builder.build(); 88 UrlRequest urlRequest = builder.build();
92 urlRequest.start(); 89 urlRequest.start();
93 callback.blockForDone(); 90 callback.blockForDone();
94 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 91 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
95 assertEquals("GET", callback.mResponseAsString); 92 assertEquals("GET", callback.mResponseAsString);
96 93
97 assertFileContainsString(file, "CLIENT_RANDOM"); 94 assertFileContainsString(file, "CLIENT_RANDOM");
98 assertTrue(file.delete()); 95 assertTrue(file.delete());
99 assertFalse(file.exists()); 96 assertFalse(file.exists());
97 cronetEngine.shutdown();
100 } 98 }
101 99
102 // Helper method to assert that file contains content. It retries 5 times 100 // Helper method to assert that file contains content. It retries 5 times
103 // with a 100ms interval. 101 // with a 100ms interval.
104 private void assertFileContainsString(File file, String content) throws Exce ption { 102 private void assertFileContainsString(File file, String content) throws Exce ption {
105 boolean contains = false; 103 boolean contains = false;
106 for (int i = 0; i < 5; i++) { 104 for (int i = 0; i < 5; i++) {
107 contains = fileContainsString(file, content); 105 contains = fileContainsString(file, content);
108 if (contains) break; 106 if (contains) break;
109 Log.i(TAG, "Retrying..."); 107 Log.i(TAG, "Retrying...");
(...skipping 21 matching lines...) Expand all
131 // flushed to the disk. 129 // flushed to the disk.
132 Log.i(TAG, "file not found"); 130 Log.i(TAG, "file not found");
133 } finally { 131 } finally {
134 if (fileInputStream != null) { 132 if (fileInputStream != null) {
135 fileInputStream.close(); 133 fileInputStream.close();
136 } 134 }
137 } 135 }
138 return false; 136 return false;
139 } 137 }
140 } 138 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698