OLD | NEW |
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.test.suitebuilder.annotation.SmallTest; | 7 import android.test.suitebuilder.annotation.SmallTest; |
8 | 8 |
| 9 import org.json.JSONObject; |
| 10 |
9 import org.chromium.base.PathUtils; | 11 import org.chromium.base.PathUtils; |
10 import org.chromium.base.test.util.Feature; | 12 import org.chromium.base.test.util.Feature; |
11 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; | |
12 import org.json.JSONObject; | |
13 | 13 |
14 import java.io.BufferedReader; | 14 import java.io.BufferedReader; |
15 import java.io.File; | 15 import java.io.File; |
16 import java.io.FileReader; | 16 import java.io.FileReader; |
17 | 17 |
18 /** | 18 /** |
19 * Tests for experimental options. | 19 * Tests for experimental options. |
20 */ | 20 */ |
21 public class ExperimentalOptionsTest extends CronetTestBase { | 21 public class ExperimentalOptionsTest extends CronetTestBase { |
22 private static final String TAG = "cr.QuicTest"; | 22 private static final String TAG = "cr.QuicTest"; |
23 private CronetTestFramework mTestFramework; | 23 private CronetTestFramework mTestFramework; |
24 private CronetEngine.Builder mBuilder; | 24 private ExperimentalCronetEngine.Builder mBuilder; |
25 | 25 |
26 @Override | 26 @Override |
27 protected void setUp() throws Exception { | 27 protected void setUp() throws Exception { |
28 super.setUp(); | 28 super.setUp(); |
29 System.loadLibrary("cronet_tests"); | 29 System.loadLibrary("cronet_tests"); |
30 mBuilder = new CronetEngine.Builder(getContext()); | 30 mBuilder = new ExperimentalCronetEngine.Builder(getContext()); |
31 mBuilder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVeri
fier()); | 31 CronetTestUtil.setMockCertVerifierForTesting( |
| 32 mBuilder, QuicTestServer.createMockCertVerifier()); |
32 assertTrue(Http2TestServer.startHttp2TestServer( | 33 assertTrue(Http2TestServer.startHttp2TestServer( |
33 getContext(), QuicTestServer.getServerCert(), QuicTestServer.get
ServerCertKey())); | 34 getContext(), QuicTestServer.getServerCert(), QuicTestServer.get
ServerCertKey())); |
34 } | 35 } |
35 | 36 |
36 @Override | 37 @Override |
37 protected void tearDown() throws Exception { | 38 protected void tearDown() throws Exception { |
38 assertTrue(Http2TestServer.shutdownHttp2TestServer()); | 39 assertTrue(Http2TestServer.shutdownHttp2TestServer()); |
39 if (mTestFramework.mCronetEngine != null) { | 40 if (mTestFramework.mCronetEngine != null) { |
40 mTestFramework.mCronetEngine.shutdown(); | 41 mTestFramework.mCronetEngine.shutdown(); |
41 } | 42 } |
42 super.tearDown(); | 43 super.tearDown(); |
43 } | 44 } |
44 | 45 |
45 @SmallTest | 46 @SmallTest |
46 @Feature({"Cronet"}) | 47 @Feature({"Cronet"}) |
47 @OnlyRunNativeCronet | 48 @OnlyRunNativeCronet |
48 public void testSetSSLKeyLogFile() throws Exception { | 49 public void testSetSSLKeyLogFile() throws Exception { |
49 String url = Http2TestServer.getEchoMethodUrl(); | 50 String url = Http2TestServer.getEchoMethodUrl(); |
50 File dir = new File(PathUtils.getDataDirectory()); | 51 File dir = new File(PathUtils.getDataDirectory()); |
51 File file = File.createTempFile("ssl_key_log_file", "", dir); | 52 File file = File.createTempFile("ssl_key_log_file", "", dir); |
52 | 53 |
53 JSONObject experimentalOptions = new JSONObject().put("ssl_key_log_file"
, file.getPath()); | 54 JSONObject experimentalOptions = new JSONObject().put("ssl_key_log_file"
, file.getPath()); |
54 mBuilder.setExperimentalOptions(experimentalOptions.toString()); | 55 mBuilder.setExperimentalOptions(experimentalOptions.toString()); |
55 mTestFramework = new CronetTestFramework(null, null, getContext(), mBuil
der); | 56 mTestFramework = new CronetTestFramework(null, null, getContext(), mBuil
der); |
56 | 57 |
57 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 58 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
58 UrlRequest.Builder builder = new UrlRequest.Builder( | 59 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
59 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
ine); | 60 url, callback, callback.getExecutor()); |
60 UrlRequest urlRequest = builder.build(); | 61 UrlRequest urlRequest = builder.build(); |
61 urlRequest.start(); | 62 urlRequest.start(); |
62 callback.blockForDone(); | 63 callback.blockForDone(); |
63 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 64 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
64 assertEquals("GET", callback.mResponseAsString); | 65 assertEquals("GET", callback.mResponseAsString); |
65 | 66 |
66 assertTrue(file.exists()); | 67 assertTrue(file.exists()); |
67 assertTrue(file.length() != 0); | 68 assertTrue(file.length() != 0); |
68 BufferedReader logReader = new BufferedReader(new FileReader(file)); | 69 BufferedReader logReader = new BufferedReader(new FileReader(file)); |
69 boolean validFile = false; | 70 boolean validFile = false; |
70 try { | 71 try { |
71 String logLine; | 72 String logLine; |
72 while ((logLine = logReader.readLine()) != null) { | 73 while ((logLine = logReader.readLine()) != null) { |
73 if (logLine.contains("CLIENT_RANDOM")) { | 74 if (logLine.contains("CLIENT_RANDOM")) { |
74 validFile = true; | 75 validFile = true; |
75 break; | 76 break; |
76 } | 77 } |
77 } | 78 } |
78 } finally { | 79 } finally { |
79 logReader.close(); | 80 logReader.close(); |
80 } | 81 } |
81 assertTrue(validFile); | 82 assertTrue(validFile); |
82 assertTrue(file.delete()); | 83 assertTrue(file.delete()); |
83 assertTrue(!file.exists()); | 84 assertTrue(!file.exists()); |
84 } | 85 } |
85 } | 86 } |
OLD | NEW |