OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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.support.test.filters.SmallTest; | 7 import android.support.test.filters.SmallTest; |
8 | 8 |
9 import org.chromium.base.test.util.Feature; | 9 import org.chromium.base.test.util.Feature; |
10 | 10 |
11 /** | 11 /** |
12 * Simple test for Brotli support. | 12 * Simple test for Brotli support. |
13 */ | 13 */ |
14 public class BrotliTest extends CronetTestBase { | 14 public class BrotliTest extends CronetTestBase { |
15 private CronetTestFramework mTestFramework; | 15 private CronetEngine mCronetEngine; |
16 | 16 |
17 @Override | 17 @Override |
18 protected void setUp() throws Exception { | 18 protected void setUp() throws Exception { |
19 super.setUp(); | 19 super.setUp(); |
20 // Load library first to create MockCertVerifier. | 20 // Load library first to create MockCertVerifier. |
21 System.loadLibrary("cronet_tests"); | 21 System.loadLibrary("cronet_tests"); |
22 assertTrue(Http2TestServer.startHttp2TestServer( | 22 assertTrue(Http2TestServer.startHttp2TestServer( |
23 getContext(), SERVER_CERT_PEM, SERVER_KEY_PKCS8_PEM)); | 23 getContext(), SERVER_CERT_PEM, SERVER_KEY_PKCS8_PEM)); |
24 } | 24 } |
25 | 25 |
26 @Override | 26 @Override |
27 protected void tearDown() throws Exception { | 27 protected void tearDown() throws Exception { |
28 assertTrue(Http2TestServer.shutdownHttp2TestServer()); | 28 assertTrue(Http2TestServer.shutdownHttp2TestServer()); |
29 mTestFramework.mCronetEngine.shutdown(); | 29 mCronetEngine.shutdown(); |
30 super.tearDown(); | 30 super.tearDown(); |
31 } | 31 } |
32 | 32 |
33 @SmallTest | 33 @SmallTest |
34 @Feature({"Cronet"}) | 34 @Feature({"Cronet"}) |
35 @OnlyRunNativeCronet | 35 @OnlyRunNativeCronet |
36 public void testBrotliAdvertised() throws Exception { | 36 public void testBrotliAdvertised() throws Exception { |
37 ExperimentalCronetEngine.Builder builder = | 37 ExperimentalCronetEngine.Builder builder = |
38 new ExperimentalCronetEngine.Builder(getContext()); | 38 new ExperimentalCronetEngine.Builder(getContext()); |
39 builder.enableBrotli(true); | 39 builder.enableBrotli(true); |
40 CronetTestUtil.setMockCertVerifierForTesting( | 40 CronetTestUtil.setMockCertVerifierForTesting( |
41 builder, QuicTestServer.createMockCertVerifier()); | 41 builder, QuicTestServer.createMockCertVerifier()); |
42 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(n
ull, builder); | 42 mCronetEngine = builder.build(); |
43 String url = Http2TestServer.getEchoAllHeadersUrl(); | 43 String url = Http2TestServer.getEchoAllHeadersUrl(); |
44 TestUrlRequestCallback callback = startAndWaitForComplete(url); | 44 TestUrlRequestCallback callback = startAndWaitForComplete(url); |
45 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 45 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
46 assertTrue(callback.mResponseAsString.contains("accept-encoding: gzip, d
eflate, br")); | 46 assertTrue(callback.mResponseAsString.contains("accept-encoding: gzip, d
eflate, br")); |
47 } | 47 } |
48 | 48 |
49 @SmallTest | 49 @SmallTest |
50 @Feature({"Cronet"}) | 50 @Feature({"Cronet"}) |
51 @OnlyRunNativeCronet | 51 @OnlyRunNativeCronet |
52 public void testBrotliNotAdvertised() throws Exception { | 52 public void testBrotliNotAdvertised() throws Exception { |
53 ExperimentalCronetEngine.Builder builder = | 53 ExperimentalCronetEngine.Builder builder = |
54 new ExperimentalCronetEngine.Builder(getContext()); | 54 new ExperimentalCronetEngine.Builder(getContext()); |
55 CronetTestUtil.setMockCertVerifierForTesting( | 55 CronetTestUtil.setMockCertVerifierForTesting( |
56 builder, QuicTestServer.createMockCertVerifier()); | 56 builder, QuicTestServer.createMockCertVerifier()); |
57 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(n
ull, builder); | 57 mCronetEngine = builder.build(); |
58 String url = Http2TestServer.getEchoAllHeadersUrl(); | 58 String url = Http2TestServer.getEchoAllHeadersUrl(); |
59 TestUrlRequestCallback callback = startAndWaitForComplete(url); | 59 TestUrlRequestCallback callback = startAndWaitForComplete(url); |
60 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 60 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
61 assertFalse(callback.mResponseAsString.contains("br")); | 61 assertFalse(callback.mResponseAsString.contains("br")); |
62 } | 62 } |
63 | 63 |
64 @SmallTest | 64 @SmallTest |
65 @Feature({"Cronet"}) | 65 @Feature({"Cronet"}) |
66 @OnlyRunNativeCronet | 66 @OnlyRunNativeCronet |
67 public void testBrotliDecoded() throws Exception { | 67 public void testBrotliDecoded() throws Exception { |
68 ExperimentalCronetEngine.Builder builder = | 68 ExperimentalCronetEngine.Builder builder = |
69 new ExperimentalCronetEngine.Builder(getContext()); | 69 new ExperimentalCronetEngine.Builder(getContext()); |
70 builder.enableBrotli(true); | 70 builder.enableBrotli(true); |
71 CronetTestUtil.setMockCertVerifierForTesting( | 71 CronetTestUtil.setMockCertVerifierForTesting( |
72 builder, QuicTestServer.createMockCertVerifier()); | 72 builder, QuicTestServer.createMockCertVerifier()); |
73 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(n
ull, builder); | 73 mCronetEngine = builder.build(); |
74 String url = Http2TestServer.getServeSimpleBrotliResponse(); | 74 String url = Http2TestServer.getServeSimpleBrotliResponse(); |
75 TestUrlRequestCallback callback = startAndWaitForComplete(url); | 75 TestUrlRequestCallback callback = startAndWaitForComplete(url); |
76 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 76 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
77 String expectedResponse = "The quick brown fox jumps over the lazy dog"; | 77 String expectedResponse = "The quick brown fox jumps over the lazy dog"; |
78 assertEquals(expectedResponse, callback.mResponseAsString); | 78 assertEquals(expectedResponse, callback.mResponseAsString); |
79 assertEquals(callback.mResponseInfo.getAllHeaders().get("content-encodin
g").get(0), "br"); | 79 assertEquals(callback.mResponseInfo.getAllHeaders().get("content-encodin
g").get(0), "br"); |
80 } | 80 } |
81 | 81 |
82 private TestUrlRequestCallback startAndWaitForComplete(String url) { | 82 private TestUrlRequestCallback startAndWaitForComplete(String url) { |
83 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 83 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
84 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( | 84 UrlRequest.Builder builder = |
85 url, callback, callback.getExecutor()); | 85 mCronetEngine.newUrlRequestBuilder(url, callback, callback.getEx
ecutor()); |
86 builder.build().start(); | 86 builder.build().start(); |
87 callback.blockForDone(); | 87 callback.blockForDone(); |
88 return callback; | 88 return callback; |
89 } | 89 } |
90 } | 90 } |
OLD | NEW |