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

Side by Side Diff: components/cronet/android/test/javatests/src/org/chromium/net/SdchTest.java

Issue 1817553002: Add host resolver rules experimental flag for Cronet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: delete unused definitions, rebase, and fix test Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.os.ConditionVariable; 7 import android.os.ConditionVariable;
8 import android.test.suitebuilder.annotation.SmallTest; 8 import android.test.suitebuilder.annotation.SmallTest;
9 9
10 import org.chromium.base.test.util.Feature; 10 import org.chromium.base.test.util.Feature;
11 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; 11 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet;
12 import org.chromium.net.impl.ChromiumUrlRequestFactory; 12 import org.chromium.net.impl.ChromiumUrlRequestFactory;
13 import org.chromium.net.impl.CronetUrlRequestContext; 13 import org.chromium.net.impl.CronetUrlRequestContext;
14 import org.json.JSONException;
15 import org.json.JSONObject;
14 16
15 import java.io.BufferedReader; 17 import java.io.BufferedReader;
16 import java.io.FileReader; 18 import java.io.FileReader;
17 import java.io.IOException; 19 import java.io.IOException;
18 import java.util.ArrayList; 20 import java.util.ArrayList;
19 import java.util.Arrays; 21 import java.util.Arrays;
20 import java.util.HashMap; 22 import java.util.HashMap;
21 import java.util.List; 23 import java.util.List;
22 import java.util.Map; 24 import java.util.Map;
23 25
24 /** 26 /**
25 * Tests Sdch support. 27 * Tests Sdch support.
26 */ 28 */
27 public class SdchTest extends CronetTestBase { 29 public class SdchTest extends CronetTestBase {
28 private CronetTestFramework mTestFramework; 30 private CronetTestFramework mTestFramework;
29 31
30 private enum Sdch { 32 private enum Sdch {
31 ENABLED, 33 ENABLED,
32 DISABLED, 34 DISABLED,
33 } 35 }
34 36
35 private enum Api { 37 private enum Api {
36 LEGACY, 38 LEGACY,
37 ASYNC, 39 ASYNC,
38 } 40 }
39 41
40 @SuppressWarnings("deprecation") 42 @SuppressWarnings("deprecation")
41 private void setUp(Sdch setting, Api api) { 43 private void setUp(Sdch setting, Api api) throws JSONException {
42 List<String> commandLineArgs = new ArrayList<String>(); 44 List<String> commandLineArgs = new ArrayList<String>();
43 commandLineArgs.add(CronetTestFramework.CACHE_KEY); 45 commandLineArgs.add(CronetTestFramework.CACHE_KEY);
44 commandLineArgs.add(CronetTestFramework.CACHE_DISK); 46 commandLineArgs.add(CronetTestFramework.CACHE_DISK);
45 if (setting == Sdch.ENABLED) { 47 if (setting == Sdch.ENABLED) {
46 commandLineArgs.add(CronetTestFramework.SDCH_KEY); 48 commandLineArgs.add(CronetTestFramework.SDCH_KEY);
47 commandLineArgs.add(CronetTestFramework.SDCH_ENABLE); 49 commandLineArgs.add(CronetTestFramework.SDCH_ENABLE);
48 } 50 }
49 51
50 if (api == Api.LEGACY) { 52 if (api == Api.LEGACY) {
51 commandLineArgs.add(CronetTestFramework.LIBRARY_INIT_KEY); 53 commandLineArgs.add(CronetTestFramework.LIBRARY_INIT_KEY);
52 commandLineArgs.add(CronetTestFramework.LibraryInitType.LEGACY); 54 commandLineArgs.add(CronetTestFramework.LibraryInitType.LEGACY);
53 } else { 55 } else {
54 commandLineArgs.add(CronetTestFramework.LIBRARY_INIT_KEY); 56 commandLineArgs.add(CronetTestFramework.LIBRARY_INIT_KEY);
55 commandLineArgs.add(CronetTestFramework.LibraryInitType.CRONET); 57 commandLineArgs.add(CronetTestFramework.LibraryInitType.CRONET);
56 } 58 }
57 59
58 String[] args = new String[commandLineArgs.size()]; 60 String[] args = new String[commandLineArgs.size()];
59 mTestFramework = startCronetTestFrameworkWithUrlAndCommandLineArgs( 61 CronetEngine.Builder builder = new CronetEngine.Builder(getContext());
60 null, commandLineArgs.toArray(args)); 62 JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules ();
61 registerHostResolver(mTestFramework, api == Api.LEGACY); 63 JSONObject experimentalOptions =
64 new JSONObject().put("HostResolverRules", hostResolverParams);
65 builder.setExperimentalOptions(experimentalOptions.toString());
66 mTestFramework =
67 new CronetTestFramework(null, commandLineArgs.toArray(args), get Context(), builder);
62 // Start NativeTestServer. 68 // Start NativeTestServer.
63 assertTrue(NativeTestServer.startNativeTestServer(getContext())); 69 assertTrue(NativeTestServer.startNativeTestServer(getContext()));
64 } 70 }
65 71
66 @Override 72 @Override
67 protected void tearDown() throws Exception { 73 protected void tearDown() throws Exception {
68 NativeTestServer.shutdownNativeTestServer(); 74 NativeTestServer.shutdownNativeTestServer();
69 super.tearDown(); 75 super.tearDown();
70 } 76 }
71 77
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 callback1.mResponseInfo.getAllHeaders().get("Get-Dictionary")); 164 callback1.mResponseInfo.getAllHeaders().get("Get-Dictionary"));
159 165
160 observer.waitForDictionaryAdded(); 166 observer.waitForDictionaryAdded();
161 167
162 // Make a request to fetch encoded response at /sdch/test. 168 // Make a request to fetch encoded response at /sdch/test.
163 TestUrlRequestCallback callback2 = 169 TestUrlRequestCallback callback2 =
164 startAndWaitForComplete(mTestFramework.mCronetEngine, targetUrl) ; 170 startAndWaitForComplete(mTestFramework.mCronetEngine, targetUrl) ;
165 assertEquals(200, callback2.mResponseInfo.getHttpStatusCode()); 171 assertEquals(200, callback2.mResponseInfo.getHttpStatusCode());
166 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback2 .mResponseAsString); 172 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback2 .mResponseAsString);
167 173
168 // Wait for a bit until SimpleCache finished closing entries before
169 // calling shutdown on the CronetEngine.
170 // TODO(xunjieli): Remove once crbug.com/486120 is fixed.
171 Thread.sleep(5000);
172 mTestFramework.mCronetEngine.shutdown(); 174 mTestFramework.mCronetEngine.shutdown();
173 175
174 // Shutting down the context will make JsonPrefStore to flush pending 176 // Shutting down the context will make JsonPrefStore to flush pending
175 // writes to disk. 177 // writes to disk.
176 String dictUrl = NativeTestServer.getSdchURL() + "/sdch/dict/LeQxM80O"; 178 String dictUrl = NativeTestServer.getSdchURL() + "/sdch/dict/LeQxM80O";
177 assertTrue(fileContainsString("local_prefs.json", dictUrl)); 179 assertTrue(fileContainsString("local_prefs.json", dictUrl));
178 180
179 // Test persistence. 181 // Test persistence.
180 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder( 182 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(
181 null, mTestFramework.getCronetEngineBuilder()); 183 null, mTestFramework.getCronetEngineBuilder());
182 CronetUrlRequestContext newContext = (CronetUrlRequestContext) mTestFram ework.mCronetEngine; 184 CronetUrlRequestContext newContext = (CronetUrlRequestContext) mTestFram ework.mCronetEngine;
183 long newContextAdapter = getContextAdapter(newContext); 185 long newContextAdapter = getContextAdapter(newContext);
184 registerHostResolver(mTestFramework);
185 DictionaryAddedObserver newObserver = 186 DictionaryAddedObserver newObserver =
186 new DictionaryAddedObserver(targetUrl, newContextAdapter, false /** Legacy Api */); 187 new DictionaryAddedObserver(targetUrl, newContextAdapter, false /** Legacy Api */);
187 newObserver.waitForDictionaryAdded(); 188 newObserver.waitForDictionaryAdded();
188 189
189 // Make a request to fetch encoded response at /sdch/test. 190 // Make a request to fetch encoded response at /sdch/test.
190 TestUrlRequestCallback callback3 = startAndWaitForComplete(newContext, t argetUrl); 191 TestUrlRequestCallback callback3 = startAndWaitForComplete(newContext, t argetUrl);
191 assertEquals(200, callback3.mResponseInfo.getHttpStatusCode()); 192 assertEquals(200, callback3.mResponseInfo.getHttpStatusCode());
192 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback3 .mResponseAsString); 193 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback3 .mResponseAsString);
193 } 194 }
194 195
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 while ((line = reader.readLine()) != null) { 287 while ((line = reader.readLine()) != null) {
287 if (line.contains(content)) { 288 if (line.contains(content)) {
288 reader.close(); 289 reader.close();
289 return true; 290 return true;
290 } 291 }
291 } 292 }
292 reader.close(); 293 reader.close();
293 return false; 294 return false;
294 } 295 }
295 } 296 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698