| 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 |