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

Unified Diff: net/http/http_server_properties_manager_unittest.cc

Issue 1626673002: Separate prefs from HttpServerPropertiesManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: NET_EXPORT Created 4 years, 11 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
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_server_properties_manager_unittest.cc
diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc
index 49d19db177e306d3377d214c93a3cde8ca51ac2b..87ddbfa870546d418233a6a907480a7584cc92f5 100644
--- a/net/http/http_server_properties_manager_unittest.cc
+++ b/net/http/http_server_properties_manager_unittest.cc
@@ -8,8 +8,6 @@
#include "base/json/json_writer.h"
#include "base/macros.h"
#include "base/message_loop/message_loop.h"
-#include "base/prefs/pref_registry_simple.h"
-#include "base/prefs/testing_pref_service.h"
#include "base/run_loop.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
@@ -32,15 +30,52 @@ using ::testing::Invoke;
using ::testing::Mock;
using ::testing::StrictMock;
-const char kTestHttpServerProperties[] = "TestHttpServerProperties";
+class MockPrefDelegate : public net::HttpServerPropertiesManager::PrefDelegate {
+ public:
+ MockPrefDelegate() {}
+ ~MockPrefDelegate() override {}
+
+ // HttpServerPropertiesManager::PrefDelegate implementation.
+ bool HasServerProperties() override { return true; }
+ const base::DictionaryValue& GetServerProperties() const override {
+ return prefs_;
+ }
+ void SetServerProperties(const base::DictionaryValue& value) override {
+ prefs_.Clear();
+ prefs_.MergeDictionary(&value);
+ if (!prefs_changed_callback_.is_null())
+ prefs_changed_callback_.Run();
+ }
+ void StartListeningForUpdates(const base::Closure& callback) override {
+ CHECK(prefs_changed_callback_.is_null());
+ prefs_changed_callback_ = callback;
+ }
+ void StopListeningForUpdates() override {
+ CHECK(!prefs_changed_callback_.is_null());
+ prefs_changed_callback_ = base::Closure();
+ }
+
+ void SetPrefs(const base::DictionaryValue& value) {
+ // prefs_ = value;
+ prefs_.Clear();
+ prefs_.MergeDictionary(&value);
+ if (!prefs_changed_callback_.is_null())
+ prefs_changed_callback_.Run();
+ }
+
+ private:
+ base::DictionaryValue prefs_;
+ base::Closure prefs_changed_callback_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockPrefDelegate);
+};
class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager {
public:
TestingHttpServerPropertiesManager(
- PrefService* pref_service,
- const char* pref_path,
+ HttpServerPropertiesManager::PrefDelegate* pref_delegate,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
- : HttpServerPropertiesManager(pref_service, pref_path, io_task_runner) {
+ : HttpServerPropertiesManager(pref_delegate, io_task_runner) {
InitializeOnNetworkThread();
}
@@ -116,11 +151,10 @@ class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> {
void SetUp() override {
one_day_from_now_ = base::Time::Now() + base::TimeDelta::FromDays(1);
- pref_service_.registry()->RegisterDictionaryPref(kTestHttpServerProperties);
+ pref_delegate_ = new MockPrefDelegate;
http_server_props_manager_.reset(
new StrictMock<TestingHttpServerPropertiesManager>(
- &pref_service_, kTestHttpServerProperties,
- base::ThreadTaskRunnerHandle::Get()));
+ pref_delegate_, base::ThreadTaskRunnerHandle::Get()));
ExpectCacheUpdate();
base::RunLoop().RunUntilIdle();
}
@@ -178,8 +212,7 @@ class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> {
return !alternative_service_vector.empty();
}
- //base::RunLoop loop_;
- TestingPrefServiceSimple pref_service_;
+ MockPrefDelegate* pref_delegate_; // Owned by HttpServerPropertiesManager.
scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_;
base::Time one_day_from_now_;
@@ -256,25 +289,24 @@ TEST_P(HttpServerPropertiesManagerTest,
// Set the server preference for mail.google.com:80.
servers_dict->SetWithoutPathExpansion("mail.google.com:80",
server_pref_dict1);
- base::DictionaryValue* http_server_properties_dict =
- new base::DictionaryValue;
+ base::DictionaryValue http_server_properties_dict;
if (GetParam() == 4) {
// |servers_list| takes ownership of |servers_dict|.
servers_list->AppendIfNotPresent(servers_dict);
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_list);
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_list);
} else {
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict,
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
GetParam());
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_dict);
}
base::DictionaryValue* supports_quic = new base::DictionaryValue;
supports_quic->SetBoolean("used_quic", true);
supports_quic->SetString("address", "127.0.0.1");
- http_server_properties_dict->SetWithoutPathExpansion("supports_quic",
- supports_quic);
+ http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
+ supports_quic);
// Set quic_server_info for www.google.com:80, mail.google.com:80 and
// play.google.com:80 and verify the MRU.
@@ -304,16 +336,12 @@ TEST_P(HttpServerPropertiesManagerTest,
QuicServerId play_quic_server_id("play.google.com", 80);
quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(),
quic_server_pref_dict3);
- http_server_properties_dict->SetWithoutPathExpansion("quic_servers",
- quic_servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("quic_servers",
+ quic_servers_dict);
// Set the same value for kHttpServerProperties multiple times.
- pref_service_.SetManagedPref(kTestHttpServerProperties,
- http_server_properties_dict);
- base::DictionaryValue* http_server_properties_dict2 =
- http_server_properties_dict->DeepCopy();
- pref_service_.SetManagedPref(kTestHttpServerProperties,
- http_server_properties_dict2);
+ pref_delegate_->SetPrefs(http_server_properties_dict);
+ pref_delegate_->SetPrefs(http_server_properties_dict);
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -427,20 +455,19 @@ TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
base::DictionaryValue* servers_dict = new base::DictionaryValue;
servers_dict->SetWithoutPathExpansion("www.google.com:65536",
server_pref_dict);
- base::DictionaryValue* http_server_properties_dict =
- new base::DictionaryValue;
+ base::DictionaryValue http_server_properties_dict;
if (GetParam() == 4) {
base::ListValue* servers_list = new base::ListValue;
// |servers_list| takes ownership of |servers_dict|.
servers_list->AppendIfNotPresent(servers_dict);
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_list);
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_list);
} else {
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict,
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
GetParam());
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_dict);
}
// Set quic_server_info for www.google.com:65536.
@@ -451,12 +478,11 @@ TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
quic_servers_dict->SetWithoutPathExpansion("http://mail.google.com:65536",
quic_server_pref_dict1);
- http_server_properties_dict->SetWithoutPathExpansion("quic_servers",
- quic_servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("quic_servers",
+ quic_servers_dict);
// Set up the pref.
- pref_service_.SetManagedPref(kTestHttpServerProperties,
- http_server_properties_dict);
+ pref_delegate_->SetPrefs(http_server_properties_dict);
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -496,25 +522,23 @@ TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
// Set the server preference for www.google.com:80.
base::DictionaryValue* servers_dict = new base::DictionaryValue;
servers_dict->SetWithoutPathExpansion("www.google.com:80", server_pref_dict);
- base::DictionaryValue* http_server_properties_dict =
- new base::DictionaryValue;
+ base::DictionaryValue http_server_properties_dict;
if (GetParam() == 4) {
base::ListValue* servers_list = new base::ListValue;
// |servers_list| takes ownership of |servers_dict|.
servers_list->AppendIfNotPresent(servers_dict);
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_list);
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_list);
} else {
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict,
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
GetParam());
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_dict);
}
// Set up the pref.
- pref_service_.SetManagedPref(kTestHttpServerProperties,
- http_server_properties_dict);
+ pref_delegate_->SetPrefs(http_server_properties_dict);
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -970,31 +994,29 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
// Set the server preference for mail.google.com:80.
servers_dict->SetWithoutPathExpansion("mail.google.com:80",
server_pref_dict1);
- base::DictionaryValue* http_server_properties_dict =
- new base::DictionaryValue;
+ base::DictionaryValue http_server_properties_dict;
if (GetParam() == 4) {
// |servers_list| takes ownership of |servers_dict|.
servers_list->AppendIfNotPresent(servers_dict);
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_list);
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_list);
} else {
- HttpServerPropertiesManager::SetVersion(http_server_properties_dict,
+ HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
GetParam());
- http_server_properties_dict->SetWithoutPathExpansion("servers",
- servers_dict);
+ http_server_properties_dict.SetWithoutPathExpansion("servers",
+ servers_dict);
}
// Set up SupportsQuic for 127.0.0.1
base::DictionaryValue* supports_quic = new base::DictionaryValue;
supports_quic->SetBoolean("used_quic", true);
supports_quic->SetString("address", "127.0.0.1");
- http_server_properties_dict->SetWithoutPathExpansion("supports_quic",
- supports_quic);
+ http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
+ supports_quic);
// Set up the pref.
- pref_service_.SetManagedPref(kTestHttpServerProperties,
- http_server_properties_dict);
+ pref_delegate_->SetPrefs(http_server_properties_dict);
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
@@ -1085,8 +1107,7 @@ TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
"\"version\":4}";
const base::Value* http_server_properties =
- pref_service_.GetUserPref(kTestHttpServerProperties);
- ASSERT_NE(nullptr, http_server_properties);
+ &pref_delegate_->GetServerProperties();
std::string preferences_json;
EXPECT_TRUE(
base::JSONWriter::Write(*http_server_properties, &preferences_json));
@@ -1185,15 +1206,11 @@ TEST_P(HttpServerPropertiesManagerTest,
http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
base::RunLoop().RunUntilIdle();
- const base::Value* pref_value =
- pref_service_.GetUserPref(kTestHttpServerProperties);
- ASSERT_NE(nullptr, pref_value);
-
- const base::DictionaryValue* pref_dict;
- ASSERT_TRUE(pref_value->GetAsDictionary(&pref_dict));
+ const base::DictionaryValue& pref_dict =
+ pref_delegate_->GetServerProperties();
const base::ListValue* servers_list = nullptr;
- ASSERT_TRUE(pref_dict->GetListWithoutPathExpansion("servers", &servers_list));
+ ASSERT_TRUE(pref_dict.GetListWithoutPathExpansion("servers", &servers_list));
base::ListValue::const_iterator it = servers_list->begin();
const base::DictionaryValue* server_pref_dict;
ASSERT_TRUE((*it)->GetAsDictionary(&server_pref_dict));
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698