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