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

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

Issue 893403005: Add HttpServerPropertiesManagerTest.UpdateCacheWithPrefs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/http/http_server_properties_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/prefs/pref_registry_simple.h" 9 #include "base/prefs/pref_registry_simple.h"
10 #include "base/prefs/testing_pref_service.h" 10 #include "base/prefs/testing_pref_service.h"
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol.protocol); 661 EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol.protocol);
662 } 662 }
663 663
664 // Verify SupportsQuic. 664 // Verify SupportsQuic.
665 SupportsQuic supports_quic1 = http_server_props_manager_->GetSupportsQuic( 665 SupportsQuic supports_quic1 = http_server_props_manager_->GetSupportsQuic(
666 HostPortPair::FromString("mail.google.com:80")); 666 HostPortPair::FromString("mail.google.com:80"));
667 EXPECT_TRUE(supports_quic1.used_quic); 667 EXPECT_TRUE(supports_quic1.used_quic);
668 EXPECT_EQ("bar", supports_quic1.address); 668 EXPECT_EQ("bar", supports_quic1.address);
669 } 669 }
670 670
671 TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
672 const HostPortPair server_www("www.google.com", 80);
673 const HostPortPair server_mail("mail.google.com", 80);
674
675 // Set alternate protocol.
676 http_server_props_manager_->SetAlternateProtocol(server_www, 443, NPN_SPDY_3,
677 1.0);
678 http_server_props_manager_->SetAlternateProtocol(server_mail, 444,
679 NPN_SPDY_3_1, 0.2);
680
681 // Set SupportsQuic.
682 http_server_props_manager_->SetSupportsQuic(server_www, true, "foo");
683
684 // Set ServerNetworkStats.
685 ServerNetworkStats stats;
686 stats.srtt = base::TimeDelta::FromInternalValue(42);
687 http_server_props_manager_->SetServerNetworkStats(server_mail, stats);
688
689 ExpectPrefsUpdate();
690 ExpectCacheUpdate();
691 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
692 base::RunLoop().RunUntilIdle();
693
694 const base::Value* http_server_properties =
695 pref_service_.GetUserPref(kTestHttpServerProperties);
Ryan Hamilton 2015/02/04 22:33:29 Oh nice! This is great. I do wonder if we can make
Bence 2015/02/05 14:53:24 Done.
696 ASSERT_NE(nullptr, http_server_properties);
697 const base::DictionaryValue* http_server_properties_dict =
698 new base::DictionaryValue;
699 ASSERT_TRUE(
700 http_server_properties->GetAsDictionary(&http_server_properties_dict));
701 const base::DictionaryValue* servers_dict = new base::DictionaryValue;
702 ASSERT_TRUE(
703 http_server_properties_dict->GetDictionary("servers", &servers_dict));
704 ASSERT_EQ(2u, servers_dict->size());
705
706 // Verify alternate protocol.
707 const base::DictionaryValue* www_prefs_dict = new base::DictionaryValue;
708 ASSERT_TRUE(servers_dict->GetDictionaryWithoutPathExpansion(
709 "www.google.com:80", &www_prefs_dict));
710 const base::DictionaryValue* www_altproto_dict = new base::DictionaryValue;
711 ASSERT_TRUE(
712 www_prefs_dict->GetDictionary("alternate_protocol", &www_altproto_dict));
713 int port;
714 ASSERT_TRUE(www_altproto_dict->GetInteger("port", &port));
715 EXPECT_EQ(443, port);
716 std::string protocol_str;
717 ASSERT_TRUE(www_altproto_dict->GetString("protocol_str", &protocol_str));
718 EXPECT_EQ("npn-spdy/3", protocol_str);
719 double probability;
720 ASSERT_TRUE(www_altproto_dict->GetDouble("probability", &probability));
721 EXPECT_EQ(1.0, probability);
722
723 const base::DictionaryValue* mail_prefs_dict = new base::DictionaryValue;
724 ASSERT_TRUE(servers_dict->GetDictionaryWithoutPathExpansion(
725 "mail.google.com:80", &mail_prefs_dict));
726 const base::DictionaryValue* mail_altproto_dict = new base::DictionaryValue;
727 ASSERT_TRUE(mail_prefs_dict->GetDictionary("alternate_protocol",
728 &mail_altproto_dict));
729 ASSERT_TRUE(mail_altproto_dict->GetInteger("port", &port));
730 EXPECT_EQ(444, port);
731 ASSERT_TRUE(mail_altproto_dict->GetString("protocol_str", &protocol_str));
732 EXPECT_EQ("npn-spdy/3.1", protocol_str);
733 ASSERT_TRUE(mail_altproto_dict->GetDouble("probability", &probability));
734 EXPECT_EQ(0.2, probability);
735
736 // Verify SupportsQuic.
737 const base::DictionaryValue* supports_quic_dict = new base::DictionaryValue;
738 ASSERT_TRUE(
739 www_prefs_dict->GetDictionary("supports_quic", &supports_quic_dict));
740 bool used_quic;
741 ASSERT_TRUE(supports_quic_dict->GetBoolean("used_quic", &used_quic));
742 EXPECT_TRUE(used_quic);
743 std::string address;
744 ASSERT_TRUE(supports_quic_dict->GetString("address", &address));
745 EXPECT_EQ("foo", address);
746
747 ASSERT_FALSE(mail_prefs_dict->GetDictionaryWithoutPathExpansion(
748 "supports_quic", &supports_quic_dict));
Ryan Hamilton 2015/02/04 22:33:29 I have a CL in flight which changes the supports q
Bence 2015/02/05 14:53:24 Rebased, changed test to adapt to your CL. Done.
749
750 // Verify ServerNetworkStats.
751 const base::DictionaryValue* stats_dict = new base::DictionaryValue;
752 ASSERT_FALSE(www_prefs_dict->GetDictionaryWithoutPathExpansion(
753 "network_stats", &stats_dict));
754
755 ASSERT_TRUE(mail_prefs_dict->GetDictionaryWithoutPathExpansion(
756 "network_stats", &stats_dict));
757 int srtt;
758 ASSERT_TRUE(stats_dict->GetInteger("srtt", &srtt));
759 EXPECT_EQ(42, srtt);
760 }
761
671 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { 762 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) {
672 // Post an update task to the UI thread. 763 // Post an update task to the UI thread.
673 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 764 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
674 // Shutdown comes before the task is executed. 765 // Shutdown comes before the task is executed.
675 http_server_props_manager_->ShutdownOnPrefThread(); 766 http_server_props_manager_->ShutdownOnPrefThread();
676 http_server_props_manager_.reset(); 767 http_server_props_manager_.reset();
677 // Run the task after shutdown and deletion. 768 // Run the task after shutdown and deletion.
678 base::RunLoop().RunUntilIdle(); 769 base::RunLoop().RunUntilIdle();
679 } 770 }
680 771
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 // Run the task after shutdown, but before deletion. 827 // Run the task after shutdown, but before deletion.
737 base::RunLoop().RunUntilIdle(); 828 base::RunLoop().RunUntilIdle();
738 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 829 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
739 http_server_props_manager_.reset(); 830 http_server_props_manager_.reset();
740 base::RunLoop().RunUntilIdle(); 831 base::RunLoop().RunUntilIdle();
741 } 832 }
742 833
743 } // namespace 834 } // namespace
744 835
745 } // namespace net 836 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698