Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java

Issue 1836983002: [Cronet] Initialize disable_quic_bidirectional_streams and QUIC protocol (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added tests Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..10557b5cbc65c07290ef90cd294c2c00e141911c
--- /dev/null
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java
@@ -0,0 +1,95 @@
+// Copyright 2016 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.test.suitebuilder.annotation.SmallTest;
+
+import org.chromium.base.test.util.Feature;
+import org.chromium.net.CronetTestBase.OnlyRunNativeCronet;
+import org.json.JSONObject;
+
+/**
+ * Tests functionality of BidirectionalStream's QUIC implementation.
+ */
+public class BidirectionalStreamQuicTest extends CronetTestBase {
+ private CronetTestFramework mTestFramework;
+ private enum QuicBidirectionalStreams {
+ ENABLED,
+ DISABLED,
+ }
+
+ private void setUp(QuicBidirectionalStreams enabled) throws Exception {
+ // Load library first to create MockCertVerifier.
+ System.loadLibrary("cronet_tests");
+ CronetEngine.Builder builder = new CronetEngine.Builder(getContext());
+
+ QuicTestServer.startQuicTestServer(getContext());
+
+ builder.enableQUIC(true);
+ JSONObject quicParams = new JSONObject().put("host_whitelist", "test.example.com");
+ if (enabled == QuicBidirectionalStreams.DISABLED) {
mef 2016/03/28 20:17:33 nits: The expression 'enabled == xyz.DISABLED' see
xunjieli 2016/03/28 20:25:51 I can s/enabled/type if that makes it less weird?
mef 2016/03/29 20:33:35 Acknowledged.
+ quicParams.put("quic_disable_bidirectional_streams", true);
+ }
+ JSONObject experimentalOptions = new JSONObject().put("QUIC", quicParams);
+ builder.setExperimentalOptions(experimentalOptions.toString());
+
+ builder.addQuicHint(QuicTestServer.getServerHost(), QuicTestServer.getServerPort(),
+ QuicTestServer.getServerPort());
+
+ builder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVerifier());
+
+ mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, builder);
+ registerHostResolver(mTestFramework);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ QuicTestServer.shutdownQuicTestServer();
+ super.tearDown();
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunNativeCronet
+ // Test that QUIC is negotiated.
+ public void testSimpleGet() throws Exception {
+ setUp(QuicBidirectionalStreams.ENABLED);
+ String path = "/simple.txt";
+ String quicURL = QuicTestServer.getServerURL() + path;
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback();
+ BidirectionalStream stream = new BidirectionalStream
+ .Builder(quicURL, callback, callback.getExecutor(),
+ mTestFramework.mCronetEngine)
+ .setHttpMethod("GET")
+ .build();
+ stream.start();
+ callback.blockForDone();
+ assertTrue(stream.isDone());
+ assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
+ assertEquals("This is a simple text file served by QUIC.\n", callback.mResponseAsString);
+ assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol());
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunNativeCronet
+ public void testQuicBidirectionalStreamDisabled() throws Exception {
+ setUp(QuicBidirectionalStreams.DISABLED);
+ String path = "/simple.txt";
+ String quicURL = QuicTestServer.getServerURL() + path;
+
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback();
+ BidirectionalStream stream = new BidirectionalStream
+ .Builder(quicURL, callback, callback.getExecutor(),
+ mTestFramework.mCronetEngine)
+ .setHttpMethod("GET")
+ .build();
+ stream.start();
+ callback.blockForDone();
+ assertTrue(stream.isDone());
+ assertTrue(callback.mOnErrorCalled);
+ assertNull(callback.mResponseInfo);
+ }
+}
« no previous file with comments | « components/cronet/android/cronet_bidirectional_stream_adapter.cc ('k') | net/url_request/url_request_context_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698