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

Side by Side Diff: chrome/browser/io_thread_unittest.cc

Issue 1892123003: Add components/network_session_configurator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add dependencies for iOS. Created 4 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/at_exit.h" 7 #include "base/at_exit.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 using ::testing::ReturnRef; 47 using ::testing::ReturnRef;
48 48
49 // Class used for accessing IOThread methods (friend of IOThread). 49 // Class used for accessing IOThread methods (friend of IOThread).
50 class IOThreadPeer { 50 class IOThreadPeer {
51 public: 51 public:
52 static net::HttpAuthPreferences* GetAuthPreferences(IOThread* io_thread) { 52 static net::HttpAuthPreferences* GetAuthPreferences(IOThread* io_thread) {
53 return io_thread->globals()->http_auth_preferences.get(); 53 return io_thread->globals()->http_auth_preferences.get();
54 } 54 }
55 }; 55 };
56 56
57 class NetworkSessionConfiguratorTest : public testing::Test {
58 public:
59 NetworkSessionConfiguratorTest()
60 : is_spdy_allowed_by_policy_(true), is_quic_allowed_by_policy_(true) {
61 field_trial_list_.reset(
62 new base::FieldTrialList(new base::MockEntropyProvider()));
63 variations::testing::ClearAllVariationParams();
64 }
65
66 void ParseFieldTrials() {
67 network_session_configurator_.ParseFieldTrials(
68 is_spdy_allowed_by_policy_, is_quic_allowed_by_policy_, &params_);
69 }
70
71 void ParseFieldTrialsAndCommandLine() {
72 network_session_configurator_.ParseFieldTrialsAndCommandLine(
73 is_spdy_allowed_by_policy_, is_quic_allowed_by_policy_, &params_);
74 }
75
76 bool is_spdy_allowed_by_policy_;
77 bool is_quic_allowed_by_policy_;
78 std::unique_ptr<base::FieldTrialList> field_trial_list_;
79 net::HttpNetworkSession::Params params_;
80
81 private:
82 IOThread::NetworkSessionConfigurator network_session_configurator_;
83 };
84
85 TEST_F(NetworkSessionConfiguratorTest, Defaults) {
86 ParseFieldTrialsAndCommandLine();
87
88 EXPECT_FALSE(params_.ignore_certificate_errors);
89 EXPECT_EQ(0u, params_.testing_fixed_http_port);
90 EXPECT_EQ(0u, params_.testing_fixed_https_port);
91 EXPECT_FALSE(params_.enable_spdy31);
92 EXPECT_TRUE(params_.enable_http2);
93 EXPECT_FALSE(params_.enable_tcp_fast_open_for_ssl);
94 EXPECT_FALSE(params_.parse_alternative_services);
95 EXPECT_FALSE(params_.enable_alternative_service_with_different_host);
96 EXPECT_FALSE(params_.enable_npn);
97 EXPECT_TRUE(params_.enable_priority_dependencies);
98 EXPECT_FALSE(params_.enable_quic);
99 EXPECT_FALSE(params_.enable_quic_for_proxies);
100 EXPECT_FALSE(IOThread::ShouldEnableQuicForDataReductionProxy());
101 }
102
103 TEST_F(NetworkSessionConfiguratorTest, IgnoreCertificateErrors) {
104 base::CommandLine::ForCurrentProcess()->AppendSwitch(
105 "ignore-certificate-errors");
106
107 ParseFieldTrialsAndCommandLine();
108
109 EXPECT_TRUE(params_.ignore_certificate_errors);
110 }
111
112 TEST_F(NetworkSessionConfiguratorTest, TestingFixedPort) {
113 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
114 "testing-fixed-http-port", "42");
115 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
116 "testing-fixed-https-port", "1234");
117
118 ParseFieldTrialsAndCommandLine();
119
120 EXPECT_EQ(42u, params_.testing_fixed_http_port);
121 EXPECT_EQ(1234u, params_.testing_fixed_https_port);
122 }
123
124 TEST_F(NetworkSessionConfiguratorTest, AltSvcFieldTrialEnabled) {
125 base::FieldTrialList::CreateFieldTrial("ParseAltSvc", "AltSvcEnabled");
126
127 ParseFieldTrials();
128
129 EXPECT_TRUE(params_.parse_alternative_services);
130 EXPECT_FALSE(params_.enable_alternative_service_with_different_host);
131 }
132
133 TEST_F(NetworkSessionConfiguratorTest, AltSvcFieldTrialDisabled) {
134 base::FieldTrialList::CreateFieldTrial("ParseAltSvc", "AltSvcDisabled");
135
136 ParseFieldTrials();
137
138 EXPECT_FALSE(params_.parse_alternative_services);
139 EXPECT_FALSE(params_.enable_alternative_service_with_different_host);
140 }
141
142 TEST_F(NetworkSessionConfiguratorTest, SpdyFieldTrialHoldbackEnabled) {
143 net::HttpStreamFactory::set_spdy_enabled(true);
144 base::FieldTrialList::CreateFieldTrial("SPDY", "SpdyDisabled");
145
146 ParseFieldTrials();
147
148 EXPECT_FALSE(net::HttpStreamFactory::spdy_enabled());
149 }
150
151 TEST_F(NetworkSessionConfiguratorTest, SpdyFieldTrialSpdy31Enabled) {
152 base::FieldTrialList::CreateFieldTrial("SPDY", "Spdy31Enabled");
153
154 ParseFieldTrials();
155
156 EXPECT_TRUE(params_.enable_spdy31);
157 EXPECT_FALSE(params_.enable_http2);
158 }
159
160 TEST_F(NetworkSessionConfiguratorTest, SpdyFieldTrialSpdy4Enabled) {
161 base::FieldTrialList::CreateFieldTrial("SPDY", "Spdy4Enabled");
162
163 ParseFieldTrials();
164
165 EXPECT_TRUE(params_.enable_spdy31);
166 EXPECT_TRUE(params_.enable_http2);
167 }
168
169 TEST_F(NetworkSessionConfiguratorTest, SpdyFieldTrialParametrized) {
170 std::map<std::string, std::string> field_trial_params;
171 field_trial_params["enable_spdy31"] = "false";
172 field_trial_params["enable_http2"] = "true";
173 variations::AssociateVariationParams("SPDY", "ParametrizedHTTP2Only",
174 field_trial_params);
175 base::FieldTrialList::CreateFieldTrial("SPDY", "ParametrizedHTTP2Only");
176
177 ParseFieldTrials();
178
179 EXPECT_FALSE(params_.enable_spdy31);
180 EXPECT_TRUE(params_.enable_http2);
181 }
182
183 TEST_F(NetworkSessionConfiguratorTest, SpdyCommandLineDisableHttp2) {
184 // Command line should overwrite field trial group.
185 base::CommandLine::ForCurrentProcess()->AppendSwitch("disable-http2");
186 base::FieldTrialList::CreateFieldTrial("SPDY", "Spdy4Enabled");
187
188 ParseFieldTrialsAndCommandLine();
189
190 EXPECT_FALSE(params_.enable_spdy31);
191 EXPECT_FALSE(params_.enable_http2);
192 }
193
194 TEST_F(NetworkSessionConfiguratorTest, SpdyDisallowedByPolicy) {
195 is_spdy_allowed_by_policy_ = false;
196
197 ParseFieldTrialsAndCommandLine();
198
199 EXPECT_FALSE(params_.enable_spdy31);
200 EXPECT_FALSE(params_.enable_http2);
201 }
202
203 TEST_F(NetworkSessionConfiguratorTest, NPNFieldTrialEnabled) {
204 base::FieldTrialList::CreateFieldTrial("NPN", "Enable-experiment");
205
206 ParseFieldTrials();
207
208 EXPECT_TRUE(params_.enable_npn);
209 }
210
211 TEST_F(NetworkSessionConfiguratorTest, NPNFieldTrialDisabled) {
212 base::FieldTrialList::CreateFieldTrial("NPN", "Disable-holdback");
213
214 ParseFieldTrials();
215
216 EXPECT_FALSE(params_.enable_npn);
217 }
218
219 TEST_F(NetworkSessionConfiguratorTest, PriorityDependenciesTrialEnabled) {
220 base::FieldTrialList::CreateFieldTrial("SpdyEnableDependencies",
221 "Enable-experiment");
222
223 ParseFieldTrials();
224
225 EXPECT_TRUE(params_.enable_priority_dependencies);
226 }
227
228 TEST_F(NetworkSessionConfiguratorTest, PriorityDependenciesTrialDisabled) {
229 base::FieldTrialList::CreateFieldTrial("SpdyEnableDependencies",
230 "Disable-holdback");
231
232 ParseFieldTrials();
233
234 EXPECT_FALSE(params_.enable_priority_dependencies);
235 }
236
237 TEST_F(NetworkSessionConfiguratorTest, EnableQuicFromFieldTrialGroup) {
238 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
239
240 ParseFieldTrials();
241
242 EXPECT_TRUE(params_.enable_quic);
243 EXPECT_FALSE(params_.disable_quic_on_timeout_with_open_streams);
244 EXPECT_TRUE(params_.enable_quic_for_proxies);
245 EXPECT_EQ(1350u, params_.quic_max_packet_length);
246 EXPECT_EQ(net::QuicTagVector(), params_.quic_connection_options);
247 EXPECT_FALSE(params_.quic_always_require_handshake_confirmation);
248 EXPECT_FALSE(params_.quic_disable_connection_pooling);
249 EXPECT_EQ(0.25f, params_.quic_load_server_info_timeout_srtt_multiplier);
250 EXPECT_FALSE(params_.quic_enable_connection_racing);
251 EXPECT_FALSE(params_.quic_enable_non_blocking_io);
252 EXPECT_FALSE(params_.quic_disable_disk_cache);
253 EXPECT_FALSE(params_.quic_prefer_aes);
254 EXPECT_FALSE(params_.parse_alternative_services);
255 EXPECT_FALSE(params_.enable_alternative_service_with_different_host);
256 EXPECT_EQ(0, params_.quic_max_number_of_lossy_connections);
257 EXPECT_EQ(1.0f, params_.quic_packet_loss_threshold);
258 EXPECT_FALSE(params_.quic_delay_tcp_race);
259 EXPECT_FALSE(params_.quic_close_sessions_on_ip_change);
260 EXPECT_EQ(net::kIdleConnectionTimeoutSeconds,
261 params_.quic_idle_connection_timeout_seconds);
262 EXPECT_FALSE(params_.quic_disable_preconnect_if_0rtt);
263 EXPECT_FALSE(params_.quic_migrate_sessions_on_network_change);
264 EXPECT_FALSE(params_.quic_migrate_sessions_early);
265 EXPECT_FALSE(IOThread::ShouldEnableQuicForDataReductionProxy());
266 EXPECT_TRUE(params_.quic_host_whitelist.empty());
267
268 net::HttpNetworkSession::Params default_params;
269 EXPECT_EQ(default_params.quic_supported_versions,
270 params_.quic_supported_versions);
271 }
272
273 TEST_F(NetworkSessionConfiguratorTest,
274 DisableQuicWhenConnectionTimesOutWithOpenStreamsFromFieldTrialParams) {
275 std::map<std::string, std::string> field_trial_params;
276 field_trial_params["disable_quic_on_timeout_with_open_streams"] = "true";
277 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
278 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
279
280 ParseFieldTrials();
281
282 EXPECT_TRUE(params_.disable_quic_on_timeout_with_open_streams);
283 }
284
285 TEST_F(NetworkSessionConfiguratorTest, EnableQuicFromQuicProxyFieldTrialGroup) {
286 const struct {
287 std::string field_trial_group_name;
288 bool expect_enable_quic;
289 } tests[] = {
290 {
291 std::string(), false,
292 },
293 {
294 "NotEnabled", false,
295 },
296 {
297 "Control", false,
298 },
299 {
300 "Disabled", false,
301 },
302 {
303 "EnabledControl", true,
304 },
305 {
306 "Enabled", true,
307 },
308 };
309
310 field_trial_list_.reset();
311 for (size_t i = 0; i < arraysize(tests); ++i) {
312 base::FieldTrialList field_trial_list(new base::MockEntropyProvider());
313 base::FieldTrialList::CreateFieldTrial(
314 data_reduction_proxy::params::GetQuicFieldTrialName(),
315 tests[i].field_trial_group_name);
316
317 ParseFieldTrials();
318
319 EXPECT_FALSE(params_.enable_quic) << i;
320 EXPECT_EQ(tests[i].expect_enable_quic, params_.enable_quic_for_proxies)
321 << i;
322 EXPECT_EQ(tests[i].expect_enable_quic,
323 IOThread::ShouldEnableQuicForDataReductionProxy())
324 << i;
325 }
326 }
327
328 TEST_F(NetworkSessionConfiguratorTest, EnableQuicFromCommandLine) {
329 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
330
331 ParseFieldTrialsAndCommandLine();
332
333 EXPECT_TRUE(params_.enable_quic);
334 EXPECT_TRUE(params_.enable_quic_for_proxies);
335 EXPECT_FALSE(IOThread::ShouldEnableQuicForDataReductionProxy());
336 }
337
338 TEST_F(NetworkSessionConfiguratorTest,
339 EnableAlternativeServicesFromCommandLineWithQuicDisabled) {
340 base::CommandLine::ForCurrentProcess()->AppendSwitch(
341 "enable-alternative-services");
342
343 ParseFieldTrialsAndCommandLine();
344
345 EXPECT_FALSE(params_.enable_quic);
346 EXPECT_TRUE(params_.parse_alternative_services);
347 EXPECT_TRUE(params_.enable_alternative_service_with_different_host);
348 }
349
350 TEST_F(NetworkSessionConfiguratorTest,
351 EnableAlternativeServicesFromCommandLineWithQuicEnabled) {
352 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
353 base::CommandLine::ForCurrentProcess()->AppendSwitch(
354 "enable-alternative-services");
355
356 ParseFieldTrialsAndCommandLine();
357
358 EXPECT_TRUE(params_.enable_quic);
359 EXPECT_TRUE(params_.parse_alternative_services);
360 EXPECT_TRUE(params_.enable_alternative_service_with_different_host);
361 }
362
363 TEST_F(NetworkSessionConfiguratorTest, PacketLengthFromCommandLine) {
364 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
365 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
366 "quic-max-packet-length", "1450");
367
368 ParseFieldTrialsAndCommandLine();
369
370 EXPECT_EQ(1450u, params_.quic_max_packet_length);
371 }
372
373 TEST_F(NetworkSessionConfiguratorTest,
374 QuicCloseSessionsOnIpChangeFromFieldTrialParams) {
375 std::map<std::string, std::string> field_trial_params;
376 field_trial_params["close_sessions_on_ip_change"] = "true";
377 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
378 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
379
380 ParseFieldTrials();
381
382 EXPECT_TRUE(params_.quic_close_sessions_on_ip_change);
383 }
384
385 TEST_F(NetworkSessionConfiguratorTest,
386 QuicIdleConnectionTimeoutSecondsFieldTrialParams) {
387 std::map<std::string, std::string> field_trial_params;
388 field_trial_params["idle_connection_timeout_seconds"] = "300";
389 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
390 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
391
392 ParseFieldTrials();
393
394 EXPECT_EQ(300, params_.quic_idle_connection_timeout_seconds);
395 }
396
397 TEST_F(NetworkSessionConfiguratorTest, QuicDisablePreConnectIfZeroRtt) {
398 std::map<std::string, std::string> field_trial_params;
399 field_trial_params["disable_preconnect_if_0rtt"] = "true";
400 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
401 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
402
403 ParseFieldTrials();
404
405 EXPECT_TRUE(params_.quic_disable_preconnect_if_0rtt);
406 }
407
408 TEST_F(NetworkSessionConfiguratorTest,
409 QuicMigrateSessionsOnNetworkChangeFromFieldTrialParams) {
410 std::map<std::string, std::string> field_trial_params;
411 field_trial_params["migrate_sessions_on_network_change"] = "true";
412 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
413 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
414
415 ParseFieldTrials();
416
417 EXPECT_TRUE(params_.quic_migrate_sessions_on_network_change);
418 }
419
420 TEST_F(NetworkSessionConfiguratorTest,
421 QuicMigrateSessionsEarlyFromFieldTrialParams) {
422 std::map<std::string, std::string> field_trial_params;
423 field_trial_params["migrate_sessions_early"] = "true";
424 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
425 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
426
427 ParseFieldTrials();
428
429 EXPECT_TRUE(params_.quic_migrate_sessions_early);
430 }
431
432 TEST_F(NetworkSessionConfiguratorTest, PacketLengthFromFieldTrialParams) {
433 std::map<std::string, std::string> field_trial_params;
434 field_trial_params["max_packet_length"] = "1450";
435 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
436 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
437
438 ParseFieldTrials();
439
440 EXPECT_EQ(1450u, params_.quic_max_packet_length);
441 }
442
443 TEST_F(NetworkSessionConfiguratorTest, QuicVersionFromCommandLine) {
444 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
445 std::string version =
446 net::QuicVersionToString(net::QuicSupportedVersions().back());
447 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII("quic-version",
448 version);
449
450 ParseFieldTrialsAndCommandLine();
451
452 net::QuicVersionVector supported_versions;
453 supported_versions.push_back(net::QuicSupportedVersions().back());
454 EXPECT_EQ(supported_versions, params_.quic_supported_versions);
455 }
456
457 TEST_F(NetworkSessionConfiguratorTest, QuicVersionFromFieldTrialParams) {
458 std::map<std::string, std::string> field_trial_params;
459 field_trial_params["quic_version"] =
460 net::QuicVersionToString(net::QuicSupportedVersions().back());
461 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
462 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
463
464 ParseFieldTrials();
465
466 net::QuicVersionVector supported_versions;
467 supported_versions.push_back(net::QuicSupportedVersions().back());
468 EXPECT_EQ(supported_versions, params_.quic_supported_versions);
469 }
470
471 TEST_F(NetworkSessionConfiguratorTest, QuicConnectionOptionsFromCommandLine) {
472 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
473 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
474 "quic-connection-options", "TIME,TBBR,REJ");
475
476 ParseFieldTrialsAndCommandLine();
477
478 net::QuicTagVector options;
479 options.push_back(net::kTIME);
480 options.push_back(net::kTBBR);
481 options.push_back(net::kREJ);
482 EXPECT_EQ(options, params_.quic_connection_options);
483 }
484
485 TEST_F(NetworkSessionConfiguratorTest,
486 QuicConnectionOptionsFromFieldTrialParams) {
487 std::map<std::string, std::string> field_trial_params;
488 field_trial_params["connection_options"] = "TIME,TBBR,REJ";
489 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
490 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
491
492 ParseFieldTrials();
493
494 net::QuicTagVector options;
495 options.push_back(net::kTIME);
496 options.push_back(net::kTBBR);
497 options.push_back(net::kREJ);
498 EXPECT_EQ(options, params_.quic_connection_options);
499 }
500
501 TEST_F(NetworkSessionConfiguratorTest,
502 QuicAlwaysRequireHandshakeConfirmationFromFieldTrialParams) {
503 std::map<std::string, std::string> field_trial_params;
504 field_trial_params["always_require_handshake_confirmation"] = "true";
505 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
506 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
507
508 ParseFieldTrials();
509
510 EXPECT_TRUE(params_.quic_always_require_handshake_confirmation);
511 }
512
513 TEST_F(NetworkSessionConfiguratorTest,
514 QuicDisableConnectionPoolingFromFieldTrialParams) {
515 std::map<std::string, std::string> field_trial_params;
516 field_trial_params["disable_connection_pooling"] = "true";
517 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
518 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
519
520 ParseFieldTrials();
521
522 EXPECT_TRUE(params_.quic_disable_connection_pooling);
523 }
524
525 TEST_F(NetworkSessionConfiguratorTest,
526 QuicLoadServerInfoTimeToSmoothedRttFromFieldTrialParams) {
527 std::map<std::string, std::string> field_trial_params;
528 field_trial_params["load_server_info_time_to_srtt"] = "0.5";
529 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
530 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
531
532 ParseFieldTrials();
533
534 EXPECT_EQ(0.5f, params_.quic_load_server_info_timeout_srtt_multiplier);
535 }
536
537 TEST_F(NetworkSessionConfiguratorTest, QuicEnableConnectionRacing) {
538 std::map<std::string, std::string> field_trial_params;
539 field_trial_params["enable_connection_racing"] = "true";
540 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
541 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
542
543 ParseFieldTrials();
544
545 EXPECT_TRUE(params_.quic_enable_connection_racing);
546 }
547
548 TEST_F(NetworkSessionConfiguratorTest, QuicEnableNonBlockingIO) {
549 std::map<std::string, std::string> field_trial_params;
550 field_trial_params["enable_non_blocking_io"] = "true";
551 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
552 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
553
554 ParseFieldTrials();
555
556 EXPECT_TRUE(params_.quic_enable_non_blocking_io);
557 }
558
559 TEST_F(NetworkSessionConfiguratorTest, QuicDisableDiskCache) {
560 std::map<std::string, std::string> field_trial_params;
561 field_trial_params["disable_disk_cache"] = "true";
562 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
563 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
564
565 ParseFieldTrials();
566
567 EXPECT_TRUE(params_.quic_disable_disk_cache);
568 }
569
570 TEST_F(NetworkSessionConfiguratorTest, QuicPreferAes) {
571 std::map<std::string, std::string> field_trial_params;
572 field_trial_params["prefer_aes"] = "true";
573 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
574 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
575
576 ParseFieldTrials();
577
578 EXPECT_TRUE(params_.quic_prefer_aes);
579 }
580
581 TEST_F(NetworkSessionConfiguratorTest,
582 QuicEnableAlternativeServicesFromFieldTrialParams) {
583 std::map<std::string, std::string> field_trial_params;
584 field_trial_params["enable_alternative_service_with_different_host"] = "true";
585 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
586 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
587
588 ParseFieldTrials();
589
590 EXPECT_TRUE(params_.enable_alternative_service_with_different_host);
591 // QUIC AltSvc pooling parameter should also enable AltSvc parsing.
592 EXPECT_TRUE(params_.parse_alternative_services);
593 }
594
595 TEST_F(NetworkSessionConfiguratorTest,
596 QuicMaxNumberOfLossyConnectionsFieldTrialParams) {
597 std::map<std::string, std::string> field_trial_params;
598 field_trial_params["max_number_of_lossy_connections"] = "5";
599 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
600 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
601
602 ParseFieldTrials();
603
604 EXPECT_EQ(5, params_.quic_max_number_of_lossy_connections);
605 }
606
607 TEST_F(NetworkSessionConfiguratorTest,
608 QuicPacketLossThresholdFieldTrialParams) {
609 std::map<std::string, std::string> field_trial_params;
610 field_trial_params["packet_loss_threshold"] = "0.5";
611 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
612 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
613
614 ParseFieldTrials();
615
616 EXPECT_EQ(0.5f, params_.quic_packet_loss_threshold);
617 }
618
619 TEST_F(NetworkSessionConfiguratorTest, QuicReceiveBufferSize) {
620 std::map<std::string, std::string> field_trial_params;
621 field_trial_params["receive_buffer_size"] = "2097152";
622 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
623 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
624
625 ParseFieldTrials();
626
627 EXPECT_EQ(2097152, params_.quic_socket_receive_buffer_size);
628 }
629
630 TEST_F(NetworkSessionConfiguratorTest, QuicDelayTcpConnection) {
631 std::map<std::string, std::string> field_trial_params;
632 field_trial_params["delay_tcp_race"] = "true";
633 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
634 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
635
636 ParseFieldTrials();
637
638 EXPECT_TRUE(params_.quic_delay_tcp_race);
639 }
640
641 TEST_F(NetworkSessionConfiguratorTest, QuicOriginsToForceQuicOn) {
642 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
643 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
644 "origin-to-force-quic-on", "www.example.com:443, www.example.org:443");
645
646 ParseFieldTrialsAndCommandLine();
647
648 EXPECT_EQ(2u, params_.origins_to_force_quic_on.size());
649 EXPECT_TRUE(
650 ContainsKey(params_.origins_to_force_quic_on,
651 net::HostPortPair::FromString("www.example.com:443")));
652 EXPECT_TRUE(
653 ContainsKey(params_.origins_to_force_quic_on,
654 net::HostPortPair::FromString("www.example.org:443")));
655 }
656
657 TEST_F(NetworkSessionConfiguratorTest, QuicWhitelistFromCommandLinet) {
658 base::CommandLine::ForCurrentProcess()->AppendSwitch("enable-quic");
659 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
660 "quic-host-whitelist", "www.example.org, www.example.com");
661
662 ParseFieldTrialsAndCommandLine();
663
664 EXPECT_EQ(2u, params_.quic_host_whitelist.size());
665 EXPECT_TRUE(ContainsKey(params_.quic_host_whitelist, "www.example.org"));
666 EXPECT_TRUE(ContainsKey(params_.quic_host_whitelist, "www.example.com"));
667 }
668
669 TEST_F(NetworkSessionConfiguratorTest, QuicWhitelistFromParams) {
670 std::map<std::string, std::string> field_trial_params;
671 field_trial_params["quic_host_whitelist"] =
672 "www.example.org, www.example.com";
673 variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
674 base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
675
676 ParseFieldTrials();
677
678 EXPECT_EQ(2u, params_.quic_host_whitelist.size());
679 EXPECT_TRUE(ContainsKey(params_.quic_host_whitelist, "www.example.org"));
680 EXPECT_TRUE(ContainsKey(params_.quic_host_whitelist, "www.example.com"));
681 }
682
683 TEST_F(NetworkSessionConfiguratorTest, QuicDisallowedByPolicy) {
684 base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableQuic);
685 is_quic_allowed_by_policy_ = false;
686
687 ParseFieldTrialsAndCommandLine();
688
689 EXPECT_FALSE(params_.enable_quic);
690 }
691
692 TEST_F(NetworkSessionConfiguratorTest, TCPFastOpenHttpsEnabled) {
693 base::FieldTrialList::CreateFieldTrial("TCPFastOpen", "HttpsEnabled");
694
695 ParseFieldTrials();
696
697 EXPECT_TRUE(params_.enable_tcp_fast_open_for_ssl);
698 }
699
700 class IOThreadTestWithIOThreadObject : public testing::Test { 57 class IOThreadTestWithIOThreadObject : public testing::Test {
701 public: 58 public:
702 // These functions need to be public, since it is difficult to bind to 59 // These functions need to be public, since it is difficult to bind to
703 // protected functions in a test (the code would need to explicitly contain 60 // protected functions in a test (the code would need to explicitly contain
704 // the name of the actual test class). 61 // the name of the actual test class).
705 void CheckCnameLookup(bool expected) { 62 void CheckCnameLookup(bool expected) {
706 auto http_auth_preferences = 63 auto http_auth_preferences =
707 IOThreadPeer::GetAuthPreferences(io_thread_.get()); 64 IOThreadPeer::GetAuthPreferences(io_thread_.get());
708 ASSERT_NE(nullptr, http_auth_preferences); 65 ASSERT_NE(nullptr, http_auth_preferences);
709 EXPECT_EQ(expected, http_auth_preferences->NegotiateDisableCnameLookup()); 66 EXPECT_EQ(expected, http_auth_preferences->NegotiateDisableCnameLookup());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 &IOThreadTestWithIOThreadObject::CheckAuthAndroidNegoitateAccountType, 233 &IOThreadTestWithIOThreadObject::CheckAuthAndroidNegoitateAccountType,
877 base::Unretained(this), "acc1")); 234 base::Unretained(this), "acc1"));
878 pref_service()->SetString(prefs::kAuthAndroidNegotiateAccountType, "acc2"); 235 pref_service()->SetString(prefs::kAuthAndroidNegotiateAccountType, "acc2");
879 RunOnIOThreadBlocking(base::Bind( 236 RunOnIOThreadBlocking(base::Bind(
880 &IOThreadTestWithIOThreadObject::CheckAuthAndroidNegoitateAccountType, 237 &IOThreadTestWithIOThreadObject::CheckAuthAndroidNegoitateAccountType,
881 base::Unretained(this), "acc2")); 238 base::Unretained(this), "acc2"));
882 } 239 }
883 #endif 240 #endif
884 241
885 } // namespace test 242 } // namespace test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698