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

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

Issue 378823002: Move http_server_properties_manager from chrome/browser/net to net/http. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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 "chrome/browser/net/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"
11 #include "base/test/test_simple_task_runner.h"
11 #include "base/values.h" 12 #include "base/values.h"
12 #include "chrome/common/pref_names.h"
13 #include "content/public/test/test_browser_thread.h"
14 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 #include "url/gurl.h" 15 #include "url/gurl.h"
17 16
18 namespace chrome_browser_net { 17 namespace net {
19 18
20 namespace { 19 namespace {
21 20
22 using ::testing::_; 21 using ::testing::_;
23 using ::testing::Invoke; 22 using ::testing::Invoke;
24 using ::testing::Mock; 23 using ::testing::Mock;
25 using ::testing::StrictMock; 24 using ::testing::StrictMock;
26 using content::BrowserThread; 25
26 const char kTestHttpServerProperties[] = "TestHttpServerProperties";
27 27
28 class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager { 28 class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager {
29 public: 29 public:
30 explicit TestingHttpServerPropertiesManager(PrefService* pref_service) 30 TestingHttpServerPropertiesManager(
31 : HttpServerPropertiesManager(pref_service) { 31 PrefService* pref_service,
32 const char* path,
33 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
34 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
35 : HttpServerPropertiesManager(
36 pref_service, path, ui_task_runner, io_task_runner) {
32 InitializeOnIOThread(); 37 InitializeOnIOThread();
33 } 38 }
34 39
35 virtual ~TestingHttpServerPropertiesManager() { 40 virtual ~TestingHttpServerPropertiesManager() {
36 } 41 }
37 42
38 // Make these methods public for testing. 43 // Make these methods public for testing.
39 using HttpServerPropertiesManager::ScheduleUpdateCacheOnUI; 44 using HttpServerPropertiesManager::ScheduleUpdateCacheOnUI;
40 using HttpServerPropertiesManager::ScheduleUpdatePrefsOnIO; 45 using HttpServerPropertiesManager::ScheduleUpdatePrefsOnIO;
41 46
(...skipping 29 matching lines...) Expand all
71 void(base::ListValue* spdy_server_list, 76 void(base::ListValue* spdy_server_list,
72 net::SpdySettingsMap* spdy_settings_map, 77 net::SpdySettingsMap* spdy_settings_map,
73 net::AlternateProtocolMap* alternate_protocol_map)); 78 net::AlternateProtocolMap* alternate_protocol_map));
74 79
75 private: 80 private:
76 DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager); 81 DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager);
77 }; 82 };
78 83
79 class HttpServerPropertiesManagerTest : public testing::Test { 84 class HttpServerPropertiesManagerTest : public testing::Test {
80 protected: 85 protected:
81 HttpServerPropertiesManagerTest() 86 HttpServerPropertiesManagerTest() {}
82 : ui_thread_(BrowserThread::UI, &loop_),
83 io_thread_(BrowserThread::IO, &loop_) {
84 }
85 87
86 virtual void SetUp() OVERRIDE { 88 virtual void SetUp() OVERRIDE {
87 pref_service_.registry()->RegisterDictionaryPref( 89 pref_service_.registry()->RegisterDictionaryPref(
88 prefs::kHttpServerProperties); 90 kTestHttpServerProperties);
89 http_server_props_manager_.reset( 91 http_server_props_manager_.reset(
90 new StrictMock<TestingHttpServerPropertiesManager>(&pref_service_)); 92 new StrictMock<TestingHttpServerPropertiesManager>(
93 &pref_service_,
94 kTestHttpServerProperties,
95 base::MessageLoop::current()->message_loop_proxy(),
96 base::MessageLoop::current()->message_loop_proxy()));
91 ExpectCacheUpdate(); 97 ExpectCacheUpdate();
92 loop_.RunUntilIdle(); 98 base::MessageLoop::current()->RunUntilIdle();
93 } 99 }
94 100
95 virtual void TearDown() OVERRIDE { 101 virtual void TearDown() OVERRIDE {
96 if (http_server_props_manager_.get()) 102 if (http_server_props_manager_.get())
97 http_server_props_manager_->ShutdownOnUIThread(); 103 http_server_props_manager_->ShutdownOnUIThread();
98 loop_.RunUntilIdle(); 104 base::MessageLoop::current()->RunUntilIdle();
99 // Delete |http_server_props_manager_| while |io_thread_| is mapping IO to
100 // |loop_|.
101 http_server_props_manager_.reset(); 105 http_server_props_manager_.reset();
102 } 106 }
103 107
104 void ExpectCacheUpdate() { 108 void ExpectCacheUpdate() {
105 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnUI()) 109 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnUI())
106 .WillOnce( 110 .WillOnce(
107 Invoke(http_server_props_manager_.get(), 111 Invoke(http_server_props_manager_.get(),
108 &TestingHttpServerPropertiesManager:: 112 &TestingHttpServerPropertiesManager::
109 UpdateCacheFromPrefsOnUIConcrete)); 113 UpdateCacheFromPrefsOnUIConcrete));
110 } 114 }
111 115
112 void ExpectPrefsUpdate() { 116 void ExpectPrefsUpdate() {
113 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO(_)) 117 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO(_))
114 .WillOnce( 118 .WillOnce(
115 Invoke(http_server_props_manager_.get(), 119 Invoke(http_server_props_manager_.get(),
116 &TestingHttpServerPropertiesManager:: 120 &TestingHttpServerPropertiesManager::
117 UpdatePrefsFromCacheOnIOConcrete)); 121 UpdatePrefsFromCacheOnIOConcrete));
118 } 122 }
119 123
120 void ExpectPrefsUpdateRepeatedly() { 124 void ExpectPrefsUpdateRepeatedly() {
121 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO(_)) 125 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO(_))
122 .WillRepeatedly( 126 .WillRepeatedly(
123 Invoke(http_server_props_manager_.get(), 127 Invoke(http_server_props_manager_.get(),
124 &TestingHttpServerPropertiesManager:: 128 &TestingHttpServerPropertiesManager::
125 UpdatePrefsFromCacheOnIOConcrete)); 129 UpdatePrefsFromCacheOnIOConcrete));
126 } 130 }
127 131
128 base::MessageLoop loop_;
129 TestingPrefServiceSimple pref_service_; 132 TestingPrefServiceSimple pref_service_;
130 scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_; 133 scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_;
131 134
132 private: 135 private:
133 content::TestBrowserThread ui_thread_;
134 content::TestBrowserThread io_thread_;
135
136 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest); 136 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest);
137 }; 137 };
138 138
139 TEST_F(HttpServerPropertiesManagerTest, 139 TEST_F(HttpServerPropertiesManagerTest,
140 SingleUpdateForTwoSpdyServerPrefChanges) { 140 SingleUpdateForTwoSpdyServerPrefChanges) {
141 ExpectCacheUpdate(); 141 ExpectCacheUpdate();
142 142
143 // Set up the prefs for www.google.com:80 and mail.google.com:80 and then set 143 // Set up the prefs for www.google.com:80 and mail.google.com:80 and then set
144 // it twice. Only expect a single cache update. 144 // it twice. Only expect a single cache update.
145 145
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 // Set the server preference for mail.google.com:80. 177 // Set the server preference for mail.google.com:80.
178 servers_dict->SetWithoutPathExpansion( 178 servers_dict->SetWithoutPathExpansion(
179 "mail.google.com:80", server_pref_dict1); 179 "mail.google.com:80", server_pref_dict1);
180 180
181 base::DictionaryValue* http_server_properties_dict = 181 base::DictionaryValue* http_server_properties_dict =
182 new base::DictionaryValue; 182 new base::DictionaryValue;
183 HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1); 183 HttpServerPropertiesManager::SetVersion(http_server_properties_dict, -1);
184 http_server_properties_dict->SetWithoutPathExpansion("servers", servers_dict); 184 http_server_properties_dict->SetWithoutPathExpansion("servers", servers_dict);
185 185
186 // Set the same value for kHttpServerProperties multiple times. 186 // Set the same value for kHttpServerProperties multiple times.
187 pref_service_.SetManagedPref(prefs::kHttpServerProperties, 187 pref_service_.SetManagedPref(kTestHttpServerProperties,
188 http_server_properties_dict); 188 http_server_properties_dict);
189 base::DictionaryValue* http_server_properties_dict2 = 189 base::DictionaryValue* http_server_properties_dict2 =
190 http_server_properties_dict->DeepCopy(); 190 http_server_properties_dict->DeepCopy();
191 pref_service_.SetManagedPref(prefs::kHttpServerProperties, 191 pref_service_.SetManagedPref(kTestHttpServerProperties,
192 http_server_properties_dict2); 192 http_server_properties_dict2);
193 193
194 loop_.RunUntilIdle(); 194 base::MessageLoop::current()->RunUntilIdle();
195 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 195 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
196 196
197 // Verify SupportsSpdy. 197 // Verify SupportsSpdy.
198 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy( 198 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(
199 net::HostPortPair::FromString("www.google.com:80"))); 199 net::HostPortPair::FromString("www.google.com:80")));
200 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy( 200 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(
201 net::HostPortPair::FromString("mail.google.com:80"))); 201 net::HostPortPair::FromString("mail.google.com:80")));
202 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy( 202 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(
203 net::HostPortPair::FromString("foo.google.com:1337"))); 203 net::HostPortPair::FromString("foo.google.com:1337")));
204 204
(...skipping 19 matching lines...) Expand all
224 224
225 // Post an update task to the IO thread. SetSupportsSpdy calls 225 // Post an update task to the IO thread. SetSupportsSpdy calls
226 // ScheduleUpdatePrefsOnIO. 226 // ScheduleUpdatePrefsOnIO.
227 227
228 // Add mail.google.com:443 as a supporting spdy server. 228 // Add mail.google.com:443 as a supporting spdy server.
229 net::HostPortPair spdy_server_mail("mail.google.com", 443); 229 net::HostPortPair spdy_server_mail("mail.google.com", 443);
230 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); 230 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
231 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); 231 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true);
232 232
233 // Run the task. 233 // Run the task.
234 loop_.RunUntilIdle(); 234 base::MessageLoop::current()->RunUntilIdle();
235 235
236 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); 236 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
237 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 237 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
238 } 238 }
239 239
240 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) { 240 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) {
241 ExpectPrefsUpdate(); 241 ExpectPrefsUpdate();
242 242
243 // Add SpdySetting for mail.google.com:443. 243 // Add SpdySetting for mail.google.com:443.
244 net::HostPortPair spdy_server_mail("mail.google.com", 443); 244 net::HostPortPair spdy_server_mail("mail.google.com", 443);
245 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH; 245 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
246 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST; 246 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
247 const uint32 value1 = 31337; 247 const uint32 value1 = 31337;
248 http_server_props_manager_->SetSpdySetting( 248 http_server_props_manager_->SetSpdySetting(
249 spdy_server_mail, id1, flags1, value1); 249 spdy_server_mail, id1, flags1, value1);
250 250
251 // Run the task. 251 // Run the task.
252 loop_.RunUntilIdle(); 252 base::MessageLoop::current()->RunUntilIdle();
253 253
254 const net::SettingsMap& settings_map1_ret = 254 const net::SettingsMap& settings_map1_ret =
255 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 255 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
256 ASSERT_EQ(1U, settings_map1_ret.size()); 256 ASSERT_EQ(1U, settings_map1_ret.size());
257 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 257 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
258 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 258 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
259 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 259 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
260 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 260 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
261 EXPECT_EQ(value1, flags_and_value1_ret.second); 261 EXPECT_EQ(value1, flags_and_value1_ret.second);
262 262
263 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 263 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
264 } 264 }
265 265
266 TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) { 266 TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) {
267 ExpectPrefsUpdateRepeatedly(); 267 ExpectPrefsUpdateRepeatedly();
268 268
269 // Add SpdySetting for mail.google.com:443. 269 // Add SpdySetting for mail.google.com:443.
270 net::HostPortPair spdy_server_mail("mail.google.com", 443); 270 net::HostPortPair spdy_server_mail("mail.google.com", 443);
271 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH; 271 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
272 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST; 272 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
273 const uint32 value1 = 31337; 273 const uint32 value1 = 31337;
274 http_server_props_manager_->SetSpdySetting( 274 http_server_props_manager_->SetSpdySetting(
275 spdy_server_mail, id1, flags1, value1); 275 spdy_server_mail, id1, flags1, value1);
276 276
277 // Run the task. 277 // Run the task.
278 loop_.RunUntilIdle(); 278 base::MessageLoop::current()->RunUntilIdle();
279 279
280 const net::SettingsMap& settings_map1_ret = 280 const net::SettingsMap& settings_map1_ret =
281 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 281 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
282 ASSERT_EQ(1U, settings_map1_ret.size()); 282 ASSERT_EQ(1U, settings_map1_ret.size());
283 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 283 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
284 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 284 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
285 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 285 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
286 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 286 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
287 EXPECT_EQ(value1, flags_and_value1_ret.second); 287 EXPECT_EQ(value1, flags_and_value1_ret.second);
288 288
289 // Clear SpdySetting for mail.google.com:443. 289 // Clear SpdySetting for mail.google.com:443.
290 http_server_props_manager_->ClearSpdySettings(spdy_server_mail); 290 http_server_props_manager_->ClearSpdySettings(spdy_server_mail);
291 291
292 // Run the task. 292 // Run the task.
293 loop_.RunUntilIdle(); 293 base::MessageLoop::current()->RunUntilIdle();
294 294
295 // Verify that there are no entries in the settings map for 295 // Verify that there are no entries in the settings map for
296 // mail.google.com:443. 296 // mail.google.com:443.
297 const net::SettingsMap& settings_map2_ret = 297 const net::SettingsMap& settings_map2_ret =
298 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 298 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
299 ASSERT_EQ(0U, settings_map2_ret.size()); 299 ASSERT_EQ(0U, settings_map2_ret.size());
300 300
301 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 301 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
302 } 302 }
303 303
304 TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) { 304 TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) {
305 ExpectPrefsUpdateRepeatedly(); 305 ExpectPrefsUpdateRepeatedly();
306 306
307 // Add SpdySetting for mail.google.com:443. 307 // Add SpdySetting for mail.google.com:443.
308 net::HostPortPair spdy_server_mail("mail.google.com", 443); 308 net::HostPortPair spdy_server_mail("mail.google.com", 443);
309 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH; 309 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
310 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST; 310 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
311 const uint32 value1 = 31337; 311 const uint32 value1 = 31337;
312 http_server_props_manager_->SetSpdySetting( 312 http_server_props_manager_->SetSpdySetting(
313 spdy_server_mail, id1, flags1, value1); 313 spdy_server_mail, id1, flags1, value1);
314 314
315 // Run the task. 315 // Run the task.
316 loop_.RunUntilIdle(); 316 base::MessageLoop::current()->RunUntilIdle();
317 317
318 const net::SettingsMap& settings_map1_ret = 318 const net::SettingsMap& settings_map1_ret =
319 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 319 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
320 ASSERT_EQ(1U, settings_map1_ret.size()); 320 ASSERT_EQ(1U, settings_map1_ret.size());
321 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 321 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
322 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 322 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
323 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 323 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
324 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 324 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
325 EXPECT_EQ(value1, flags_and_value1_ret.second); 325 EXPECT_EQ(value1, flags_and_value1_ret.second);
326 326
327 // Clear All SpdySettings. 327 // Clear All SpdySettings.
328 http_server_props_manager_->ClearAllSpdySettings(); 328 http_server_props_manager_->ClearAllSpdySettings();
329 329
330 // Run the task. 330 // Run the task.
331 loop_.RunUntilIdle(); 331 base::MessageLoop::current()->RunUntilIdle();
332 332
333 // Verify that there are no entries in the settings map. 333 // Verify that there are no entries in the settings map.
334 const net::SpdySettingsMap& spdy_settings_map2_ret = 334 const net::SpdySettingsMap& spdy_settings_map2_ret =
335 http_server_props_manager_->spdy_settings_map(); 335 http_server_props_manager_->spdy_settings_map();
336 ASSERT_EQ(0U, spdy_settings_map2_ret.size()); 336 ASSERT_EQ(0U, spdy_settings_map2_ret.size());
337 337
338 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 338 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
339 } 339 }
340 340
341 TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) { 341 TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) {
342 ExpectPrefsUpdate(); 342 ExpectPrefsUpdate();
343 343
344 net::HostPortPair spdy_server_mail("mail.google.com", 80); 344 net::HostPortPair spdy_server_mail("mail.google.com", 80);
345 EXPECT_FALSE( 345 EXPECT_FALSE(
346 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); 346 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
347 http_server_props_manager_->SetAlternateProtocol( 347 http_server_props_manager_->SetAlternateProtocol(
348 spdy_server_mail, 443, net::NPN_SPDY_3); 348 spdy_server_mail, 443, net::NPN_SPDY_3);
349 349
350 // Run the task. 350 // Run the task.
351 loop_.RunUntilIdle(); 351 base::MessageLoop::current()->RunUntilIdle();
352 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 352 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
353 353
354 ASSERT_TRUE( 354 ASSERT_TRUE(
355 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); 355 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
356 net::PortAlternateProtocolPair port_alternate_protocol = 356 net::PortAlternateProtocolPair port_alternate_protocol =
357 http_server_props_manager_->GetAlternateProtocol(spdy_server_mail); 357 http_server_props_manager_->GetAlternateProtocol(spdy_server_mail);
358 EXPECT_EQ(443, port_alternate_protocol.port); 358 EXPECT_EQ(443, port_alternate_protocol.port);
359 EXPECT_EQ(net::NPN_SPDY_3, port_alternate_protocol.protocol); 359 EXPECT_EQ(net::NPN_SPDY_3, port_alternate_protocol.protocol);
360 } 360 }
361 361
362 TEST_F(HttpServerPropertiesManagerTest, Clear) { 362 TEST_F(HttpServerPropertiesManagerTest, Clear) {
363 ExpectPrefsUpdate(); 363 ExpectPrefsUpdate();
364 364
365 net::HostPortPair spdy_server_mail("mail.google.com", 443); 365 net::HostPortPair spdy_server_mail("mail.google.com", 443);
366 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); 366 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true);
367 http_server_props_manager_->SetAlternateProtocol( 367 http_server_props_manager_->SetAlternateProtocol(
368 spdy_server_mail, 443, net::NPN_SPDY_3); 368 spdy_server_mail, 443, net::NPN_SPDY_3);
369 369
370 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH; 370 const net::SpdySettingsIds id1 = net::SETTINGS_UPLOAD_BANDWIDTH;
371 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST; 371 const net::SpdySettingsFlags flags1 = net::SETTINGS_FLAG_PLEASE_PERSIST;
372 const uint32 value1 = 31337; 372 const uint32 value1 = 31337;
373 http_server_props_manager_->SetSpdySetting( 373 http_server_props_manager_->SetSpdySetting(
374 spdy_server_mail, id1, flags1, value1); 374 spdy_server_mail, id1, flags1, value1);
375 375
376 // Run the task. 376 // Run the task.
377 loop_.RunUntilIdle(); 377 base::MessageLoop::current()->RunUntilIdle();
378 378
379 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); 379 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
380 EXPECT_TRUE( 380 EXPECT_TRUE(
381 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); 381 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
382 382
383 // Check SPDY settings values. 383 // Check SPDY settings values.
384 const net::SettingsMap& settings_map1_ret = 384 const net::SettingsMap& settings_map1_ret =
385 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 385 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
386 ASSERT_EQ(1U, settings_map1_ret.size()); 386 ASSERT_EQ(1U, settings_map1_ret.size());
387 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); 387 net::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1);
388 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); 388 EXPECT_TRUE(it1_ret != settings_map1_ret.end());
389 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 389 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
390 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 390 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
391 EXPECT_EQ(value1, flags_and_value1_ret.second); 391 EXPECT_EQ(value1, flags_and_value1_ret.second);
392 392
393 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 393 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
394 394
395 ExpectPrefsUpdate(); 395 ExpectPrefsUpdate();
396 396
397 // Clear http server data, time out if we do not get a completion callback. 397 // Clear http server data, time out if we do not get a completion callback.
398 http_server_props_manager_->Clear(base::MessageLoop::QuitClosure()); 398 http_server_props_manager_->Clear(base::MessageLoop::QuitClosure());
399 loop_.Run(); 399 base::MessageLoop::current()->Run();
400 400
401 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); 401 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
402 EXPECT_FALSE( 402 EXPECT_FALSE(
403 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); 403 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
404 404
405 const net::SettingsMap& settings_map2_ret = 405 const net::SettingsMap& settings_map2_ret =
406 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 406 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
407 EXPECT_EQ(0U, settings_map2_ret.size()); 407 EXPECT_EQ(0U, settings_map2_ret.size());
408 408
409 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 409 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
410 } 410 }
411 411
412 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { 412 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) {
413 // Post an update task to the UI thread. 413 // Post an update task to the UI thread.
414 http_server_props_manager_->ScheduleUpdateCacheOnUI(); 414 http_server_props_manager_->ScheduleUpdateCacheOnUI();
415 // Shutdown comes before the task is executed. 415 // Shutdown comes before the task is executed.
416 http_server_props_manager_->ShutdownOnUIThread(); 416 http_server_props_manager_->ShutdownOnUIThread();
417 http_server_props_manager_.reset(); 417 http_server_props_manager_.reset();
418 // Run the task after shutdown and deletion. 418 // Run the task after shutdown and deletion.
419 loop_.RunUntilIdle(); 419 base::MessageLoop::current()->RunUntilIdle();
420 } 420 }
421 421
422 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) { 422 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) {
423 // Post an update task. 423 // Post an update task.
424 http_server_props_manager_->ScheduleUpdateCacheOnUI(); 424 http_server_props_manager_->ScheduleUpdateCacheOnUI();
425 // Shutdown comes before the task is executed. 425 // Shutdown comes before the task is executed.
426 http_server_props_manager_->ShutdownOnUIThread(); 426 http_server_props_manager_->ShutdownOnUIThread();
427 // Run the task after shutdown, but before deletion. 427 // Run the task after shutdown, but before deletion.
428 loop_.RunUntilIdle(); 428 base::MessageLoop::current()->RunUntilIdle();
429 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 429 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
430 http_server_props_manager_.reset(); 430 http_server_props_manager_.reset();
431 loop_.RunUntilIdle(); 431 base::MessageLoop::current()->RunUntilIdle();
432 } 432 }
433 433
434 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) { 434 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) {
435 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete(); 435 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete();
436 // Shutdown comes before the task is executed. 436 // Shutdown comes before the task is executed.
437 http_server_props_manager_->ShutdownOnUIThread(); 437 http_server_props_manager_->ShutdownOnUIThread();
438 // Run the task after shutdown, but before deletion. 438 // Run the task after shutdown, but before deletion.
439 loop_.RunUntilIdle(); 439 base::MessageLoop::current()->RunUntilIdle();
440 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 440 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
441 http_server_props_manager_.reset(); 441 http_server_props_manager_.reset();
442 loop_.RunUntilIdle(); 442 base::MessageLoop::current()->RunUntilIdle();
443 } 443 }
444 444
445 // 445 //
446 // Tests for shutdown when updating prefs. 446 // Tests for shutdown when updating prefs.
447 // 447 //
448 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) { 448 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) {
449 // Post an update task to the IO thread. 449 // Post an update task to the IO thread.
450 http_server_props_manager_->ScheduleUpdatePrefsOnIO(); 450 http_server_props_manager_->ScheduleUpdatePrefsOnIO();
451 // Shutdown comes before the task is executed. 451 // Shutdown comes before the task is executed.
452 http_server_props_manager_->ShutdownOnUIThread(); 452 http_server_props_manager_->ShutdownOnUIThread();
453 http_server_props_manager_.reset(); 453 http_server_props_manager_.reset();
454 // Run the task after shutdown and deletion. 454 // Run the task after shutdown and deletion.
455 loop_.RunUntilIdle(); 455 base::MessageLoop::current()->RunUntilIdle();
456 } 456 }
457 457
458 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) { 458 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) {
459 ExpectPrefsUpdate(); 459 ExpectPrefsUpdate();
460 // Post an update task. 460 // Post an update task.
461 http_server_props_manager_->ScheduleUpdatePrefsOnIO(); 461 http_server_props_manager_->ScheduleUpdatePrefsOnIO();
462 // Shutdown comes before the task is executed. 462 // Shutdown comes before the task is executed.
463 http_server_props_manager_->ShutdownOnUIThread(); 463 http_server_props_manager_->ShutdownOnUIThread();
464 // Run the task after shutdown, but before deletion. 464 // Run the task after shutdown, but before deletion.
465 loop_.RunUntilIdle(); 465 base::MessageLoop::current()->RunUntilIdle();
466 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 466 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
467 http_server_props_manager_.reset(); 467 http_server_props_manager_.reset();
468 loop_.RunUntilIdle(); 468 base::MessageLoop::current()->RunUntilIdle();
469 } 469 }
470 470
471 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) { 471 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) {
472 // This posts a task to the UI thread. 472 // This posts a task to the UI thread.
473 http_server_props_manager_->UpdatePrefsFromCacheOnIOConcrete(base::Closure()); 473 http_server_props_manager_->UpdatePrefsFromCacheOnIOConcrete(base::Closure());
474 // Shutdown comes before the task is executed. 474 // Shutdown comes before the task is executed.
475 http_server_props_manager_->ShutdownOnUIThread(); 475 http_server_props_manager_->ShutdownOnUIThread();
476 // Run the task after shutdown, but before deletion. 476 // Run the task after shutdown, but before deletion.
477 loop_.RunUntilIdle(); 477 base::MessageLoop::current()->RunUntilIdle();
478 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 478 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
479 http_server_props_manager_.reset(); 479 http_server_props_manager_.reset();
480 loop_.RunUntilIdle(); 480 base::MessageLoop::current()->RunUntilIdle();
481 } 481 }
482 482
483 } // namespace 483 } // namespace
484 484
485 } // namespace chrome_browser_net 485 } // namespace chrome_browser_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698