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

Side by Side Diff: net/http/http_server_properties_impl_unittest.cc

Issue 2901093004: Add and persist a new field in AlternativeServiceInfo to list QUIC verisons advertised (Closed)
Patch Set: Self review Created 3 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/http/http_server_properties_impl.h" 5 #include "net/http/http_server_properties_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "net/base/host_port_pair.h" 13 #include "net/base/host_port_pair.h"
14 #include "net/base/ip_address.h" 14 #include "net/base/ip_address.h"
15 #include "net/http/http_network_session.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 #include "url/gurl.h" 17 #include "url/gurl.h"
17 18
18 namespace base { 19 namespace base {
19 class ListValue; 20 class ListValue;
20 } 21 }
21 22
22 namespace net { 23 namespace net {
23 24
24 class HttpServerPropertiesImplPeer { 25 class HttpServerPropertiesImplPeer {
(...skipping 28 matching lines...) Expand all
53 bool HasAlternativeService(const url::SchemeHostPort& origin) { 54 bool HasAlternativeService(const url::SchemeHostPort& origin) {
54 const AlternativeServiceInfoVector alternative_service_info_vector = 55 const AlternativeServiceInfoVector alternative_service_info_vector =
55 impl_.GetAlternativeServiceInfos(origin); 56 impl_.GetAlternativeServiceInfos(origin);
56 return !alternative_service_info_vector.empty(); 57 return !alternative_service_info_vector.empty();
57 } 58 }
58 59
59 bool SetAlternativeService(const url::SchemeHostPort& origin, 60 bool SetAlternativeService(const url::SchemeHostPort& origin,
60 const AlternativeService& alternative_service) { 61 const AlternativeService& alternative_service) {
61 const base::Time expiration = 62 const base::Time expiration =
62 base::Time::Now() + base::TimeDelta::FromDays(1); 63 base::Time::Now() + base::TimeDelta::FromDays(1);
63 return impl_.SetAlternativeService(origin, alternative_service, expiration); 64 return impl_.SetAlternativeService(
65 origin, alternative_service, expiration,
66 HttpNetworkSession::Params().quic_supported_versions);
64 } 67 }
65 68
66 HttpServerPropertiesImpl impl_; 69 HttpServerPropertiesImpl impl_;
67 }; 70 };
68 71
69 typedef HttpServerPropertiesImplTest SpdyServerPropertiesTest; 72 typedef HttpServerPropertiesImplTest SpdyServerPropertiesTest;
70 73
71 TEST_F(SpdyServerPropertiesTest, SetWithSchemeHostPort) { 74 TEST_F(SpdyServerPropertiesTest, SetWithSchemeHostPort) {
72 // Check spdy servers are correctly set with SchemeHostPort key. 75 // Check spdy servers are correctly set with SchemeHostPort key.
73 url::SchemeHostPort https_www_server("https", "www.google.com", 443); 76 url::SchemeHostPort https_www_server("https", "www.google.com", 443);
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 alternative_service_info_vector[0].alternative_service); 360 alternative_service_info_vector[0].alternative_service);
358 361
359 impl_.Clear(); 362 impl_.Clear();
360 EXPECT_FALSE(HasAlternativeService(test_server)); 363 EXPECT_FALSE(HasAlternativeService(test_server));
361 } 364 }
362 365
363 TEST_F(AlternateProtocolServerPropertiesTest, ExcludeOrigin) { 366 TEST_F(AlternateProtocolServerPropertiesTest, ExcludeOrigin) {
364 AlternativeServiceInfoVector alternative_service_info_vector; 367 AlternativeServiceInfoVector alternative_service_info_vector;
365 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 368 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
366 // Same hostname, same port, TCP: should be ignored. 369 // Same hostname, same port, TCP: should be ignored.
367 AlternativeServiceInfo alternative_service_info1(kProtoHTTP2, "foo", 443, 370 AlternativeServiceInfo alternative_service_info1(
368 expiration); 371 AlternativeService(kProtoHTTP2, "foo", 443), expiration);
369 alternative_service_info_vector.push_back(alternative_service_info1); 372 alternative_service_info_vector.push_back(alternative_service_info1);
370 // Different hostname: GetAlternativeServiceInfos should return this one. 373 // Different hostname: GetAlternativeServiceInfos should return this one.
371 AlternativeServiceInfo alternative_service_info2(kProtoHTTP2, "bar", 443, 374 AlternativeServiceInfo alternative_service_info2(
372 expiration); 375 AlternativeService(kProtoHTTP2, "bar", 443), expiration);
373 alternative_service_info_vector.push_back(alternative_service_info2); 376 alternative_service_info_vector.push_back(alternative_service_info2);
374 // Different port: GetAlternativeServiceInfos should return this one too. 377 // Different port: GetAlternativeServiceInfos should return this one too.
375 AlternativeServiceInfo alternative_service_info3(kProtoHTTP2, "foo", 80, 378 AlternativeServiceInfo alternative_service_info3(
376 expiration); 379 AlternativeService(kProtoHTTP2, "foo", 80), expiration);
377 alternative_service_info_vector.push_back(alternative_service_info3); 380 alternative_service_info_vector.push_back(alternative_service_info3);
378 // QUIC: GetAlternativeServices should return this one too. 381 // QUIC: GetAlternativeServices should return this one too.
379 AlternativeServiceInfo alternative_service_info4(kProtoQUIC, "foo", 443, 382 AlternativeServiceInfo alternative_service_info4(
380 expiration); 383 AlternativeService(kProtoQUIC, "foo", 443), expiration);
381 alternative_service_info_vector.push_back(alternative_service_info4); 384 alternative_service_info_vector.push_back(alternative_service_info4);
382 385
383 url::SchemeHostPort test_server("https", "foo", 443); 386 url::SchemeHostPort test_server("https", "foo", 443);
384 impl_.SetAlternativeServices(test_server, alternative_service_info_vector); 387 impl_.SetAlternativeServices(test_server, alternative_service_info_vector);
385 388
386 const AlternativeServiceInfoVector alternative_service_info_vector2 = 389 const AlternativeServiceInfoVector alternative_service_info_vector2 =
387 impl_.GetAlternativeServiceInfos(test_server); 390 impl_.GetAlternativeServiceInfos(test_server);
388 ASSERT_EQ(3u, alternative_service_info_vector2.size()); 391 ASSERT_EQ(3u, alternative_service_info_vector2.size());
389 EXPECT_EQ(alternative_service_info2, alternative_service_info_vector2[0]); 392 EXPECT_EQ(alternative_service_info2, alternative_service_info_vector2[0]);
390 EXPECT_EQ(alternative_service_info3, alternative_service_info_vector2[1]); 393 EXPECT_EQ(alternative_service_info3, alternative_service_info_vector2[1]);
391 EXPECT_EQ(alternative_service_info4, alternative_service_info_vector2[2]); 394 EXPECT_EQ(alternative_service_info4, alternative_service_info_vector2[2]);
392 } 395 }
393 396
394 TEST_F(AlternateProtocolServerPropertiesTest, Set) { 397 TEST_F(AlternateProtocolServerPropertiesTest, Set) {
395 // |test_server1| has an alternative service, which will not be 398 // |test_server1| has an alternative service, which will not be
396 // affected by SetAlternativeServiceServers(), because 399 // affected by SetAlternativeServiceServers(), because
397 // |alternative_service_map| does not have an entry for 400 // |alternative_service_map| does not have an entry for
398 // |test_server1|. 401 // |test_server1|.
399 url::SchemeHostPort test_server1("http", "foo1", 80); 402 url::SchemeHostPort test_server1("http", "foo1", 80);
400 const AlternativeService alternative_service1(kProtoHTTP2, "bar1", 443); 403 const AlternativeService alternative_service1(kProtoHTTP2, "bar1", 443);
401 const base::Time now = base::Time::Now(); 404 const base::Time now = base::Time::Now();
402 base::Time expiration1 = now + base::TimeDelta::FromDays(1); 405 base::Time expiration1 = now + base::TimeDelta::FromDays(1);
403 // 1st entry in the memory. 406 // 1st entry in the memory.
404 impl_.SetAlternativeService(test_server1, alternative_service1, expiration1); 407 impl_.SetAlternativeService(
408 test_server1, alternative_service1, expiration1,
409 HttpNetworkSession::Params().quic_supported_versions);
405 410
406 // |test_server2| has an alternative service, which will be 411 // |test_server2| has an alternative service, which will be
407 // overwritten by SetAlternativeServiceServers(), because 412 // overwritten by SetAlternativeServiceServers(), because
408 // |alternative_service_map| has an entry for 413 // |alternative_service_map| has an entry for
409 // |test_server2|. 414 // |test_server2|.
410 AlternativeServiceInfoVector alternative_service_info_vector; 415 AlternativeServiceInfoVector alternative_service_info_vector;
411 const AlternativeService alternative_service2(kProtoHTTP2, "bar2", 443); 416 const AlternativeService alternative_service2(kProtoHTTP2, "bar2", 443);
412 base::Time expiration2 = now + base::TimeDelta::FromDays(2); 417 base::Time expiration2 = now + base::TimeDelta::FromDays(2);
413 alternative_service_info_vector.push_back( 418 alternative_service_info_vector.push_back(
414 AlternativeServiceInfo(alternative_service2, expiration2)); 419 AlternativeServiceInfo(alternative_service2, expiration2));
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id))); 1244 EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id)));
1240 1245
1241 impl_.Clear(); 1246 impl_.Clear();
1242 EXPECT_EQ(0u, impl_.quic_server_info_map().size()); 1247 EXPECT_EQ(0u, impl_.quic_server_info_map().size());
1243 EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id)); 1248 EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id));
1244 } 1249 }
1245 1250
1246 } // namespace 1251 } // namespace
1247 1252
1248 } // namespace net 1253 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698