Chromium Code Reviews| Index: components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java |
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a1f9b2333e075894c4a5cc5a10ffd92af0dc2405 |
| --- /dev/null |
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java |
| @@ -0,0 +1,88 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.net; |
| + |
| +import android.support.test.filters.SmallTest; |
| + |
| +import org.chromium.base.test.util.Feature; |
| + |
| +/** |
| + * Simple test for Brotli support. |
| + */ |
| +public class BrotliTest extends CronetTestBase { |
| + private CronetTestFramework mTestFramework; |
| + |
| + @Override |
| + protected void setUp() throws Exception { |
| + super.setUp(); |
| + // Load library first to create MockCertVerifier. |
| + System.loadLibrary("cronet_tests"); |
| + assertTrue(Http2TestServer.startHttp2TestServer( |
| + getContext(), QuicTestServer.getServerCert(), QuicTestServer.getServerCertKey())); |
| + } |
| + |
| + @Override |
| + protected void tearDown() throws Exception { |
| + assertTrue(Http2TestServer.shutdownHttp2TestServer()); |
| + mTestFramework.mCronetEngine.shutdown(); |
| + super.tearDown(); |
| + } |
| + |
| + @SmallTest |
| + @Feature({"Cronet"}) |
| + @OnlyRunNativeCronet |
| + public void testBrotliAdvertised() throws Exception { |
| + ExperimentalCronetEngine.Builder builder = |
| + new ExperimentalCronetEngine.Builder(getContext()); |
| + builder.enableBrotli(true); |
| + CronetTestUtil.setMockCertVerifierForTesting( |
| + builder, QuicTestServer.createMockCertVerifier()); |
| + mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, builder); |
| + String url = Http2TestServer.getEchoAllHeadersUrl(); |
| + TestUrlRequestCallback callback = startAndWaitForComplete(url); |
| + assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| + assertTrue(callback.mResponseAsString.contains("accept-encoding: gzip, deflate, br")); |
| + } |
| + |
| + @SmallTest |
| + @Feature({"Cronet"}) |
| + @OnlyRunNativeCronet |
| + public void testBrotliNotAdvertised() throws Exception { |
| + ExperimentalCronetEngine.Builder builder = |
| + new ExperimentalCronetEngine.Builder(getContext()); |
| + CronetTestUtil.setMockCertVerifierForTesting( |
| + builder, QuicTestServer.createMockCertVerifier()); |
| + mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, builder); |
| + String url = Http2TestServer.getEchoAllHeadersUrl(); |
| + TestUrlRequestCallback callback = startAndWaitForComplete(url); |
| + assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| + assertFalse(callback.mResponseAsString.contains("accept-encoding: gzip, deflate, br")); |
|
mef
2017/04/12 17:45:49
Should this response exclude 'br'?
xunjieli
2017/04/13 21:26:15
Done. I used assertFalse(). But I agree this is a
|
| + } |
| + |
| + @SmallTest |
| + @Feature({"Cronet"}) |
| + @OnlyRunNativeCronet |
| + public void testBrotliDecoded() throws Exception { |
| + ExperimentalCronetEngine.Builder builder = |
| + new ExperimentalCronetEngine.Builder(getContext()); |
| + builder.enableBrotli(true); |
| + CronetTestUtil.setMockCertVerifierForTesting( |
| + builder, QuicTestServer.createMockCertVerifier()); |
| + mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, builder); |
| + String url = Http2TestServer.getServeSimpleBrotliResponse(); |
| + TestUrlRequestCallback callback = startAndWaitForComplete(url); |
| + assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
|
mef
2017/04/12 17:45:49
Should this also verify 'quicFox' response?
xunjieli
2017/04/13 21:26:14
Done. Sorry, I thought I did add the line, but loo
|
| + assertEquals(callback.mResponseInfo.getAllHeaders().get("content-encoding").get(0), "br"); |
| + } |
| + |
| + private TestUrlRequestCallback startAndWaitForComplete(String url) { |
| + TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| + UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( |
| + url, callback, callback.getExecutor()); |
| + builder.build().start(); |
| + callback.blockForDone(); |
| + return callback; |
| + } |
| +} |