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