| OLD | NEW |
| 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 "chrome/browser/net/http_server_properties_manager.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/common/pref_names.h" | 10 #include "chrome/common/pref_names.h" |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); | 231 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
| 232 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); | 232 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); |
| 233 | 233 |
| 234 // Run the task. | 234 // Run the task. |
| 235 loop_.RunAllPending(); | 235 loop_.RunAllPending(); |
| 236 | 236 |
| 237 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); | 237 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
| 238 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 238 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 239 } | 239 } |
| 240 | 240 |
| 241 TEST_F(HttpServerPropertiesManagerTest, SetSpdySettings) { | |
| 242 ExpectPrefsUpdate(); | |
| 243 | |
| 244 // Add SpdySettings for mail.google.com:443. | |
| 245 net::HostPortPair spdy_server_mail("mail.google.com", 443); | |
| 246 spdy::SpdySettings spdy_settings; | |
| 247 spdy::SettingsFlagsAndId id1(spdy::SETTINGS_FLAG_PLEASE_PERSIST, 1234); | |
| 248 spdy_settings.push_back(std::make_pair(id1, 31337)); | |
| 249 http_server_props_manager_->SetSpdySettings(spdy_server_mail, spdy_settings); | |
| 250 | |
| 251 // Run the task. | |
| 252 loop_.RunAllPending(); | |
| 253 | |
| 254 spdy::SpdySettings spdy_settings_ret = | |
| 255 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | |
| 256 ASSERT_EQ(1U, spdy_settings_ret.size()); | |
| 257 spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); | |
| 258 spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); | |
| 259 EXPECT_EQ(1234U, id1_ret.id()); | |
| 260 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); | |
| 261 EXPECT_EQ(31337U, spdy_setting1_ret.second); | |
| 262 | |
| 263 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | |
| 264 } | |
| 265 | |
| 266 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) { | 241 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) { |
| 267 ExpectPrefsUpdate(); | 242 ExpectPrefsUpdate(); |
| 268 | 243 |
| 269 // Add SpdySetting for mail.google.com:443. | 244 // Add SpdySetting for mail.google.com:443. |
| 270 net::HostPortPair spdy_server_mail("mail.google.com", 443); | 245 net::HostPortPair spdy_server_mail("mail.google.com", 443); |
| 271 spdy::SettingsFlagsAndId id1(spdy::SETTINGS_FLAG_PLEASE_PERSIST, 1234); | 246 const uint32 id1 = 1234; |
| 247 const uint8 flags1 = spdy::SETTINGS_FLAG_PLEASE_PERSIST; |
| 248 const uint32 value1 = 31337; |
| 249 spdy::SettingsFlagsAndValue flags_and_value1(flags1, value1); |
| 272 http_server_props_manager_->SetSpdySetting( | 250 http_server_props_manager_->SetSpdySetting( |
| 273 spdy_server_mail, std::make_pair(id1, 31337)); | 251 spdy_server_mail, id1, flags_and_value1); |
| 274 | 252 |
| 275 // Run the task. | 253 // Run the task. |
| 276 loop_.RunAllPending(); | 254 loop_.RunAllPending(); |
| 277 | 255 |
| 278 spdy::SpdySettings spdy_settings_ret = | 256 const spdy::SettingsMap& settings_map1_ret = |
| 279 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 257 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 280 ASSERT_EQ(1U, spdy_settings_ret.size()); | 258 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 281 spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); | 259 spdy::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| 282 spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); | 260 EXPECT_NE(it1_ret, settings_map1_ret.end()); |
| 283 EXPECT_EQ(1234U, id1_ret.id()); | 261 spdy::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; |
| 284 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); | 262 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); |
| 285 EXPECT_EQ(31337U, spdy_setting1_ret.second); | 263 EXPECT_EQ(value1, flags_and_value1_ret.second); |
| 286 | 264 |
| 287 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 265 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 288 } | 266 } |
| 289 | 267 |
| 290 TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) { | 268 TEST_F(HttpServerPropertiesManagerTest, HasAlternateProtocol) { |
| 291 ExpectPrefsUpdate(); | 269 ExpectPrefsUpdate(); |
| 292 | 270 |
| 293 net::HostPortPair spdy_server_mail("mail.google.com", 80); | 271 net::HostPortPair spdy_server_mail("mail.google.com", 80); |
| 294 EXPECT_FALSE( | 272 EXPECT_FALSE( |
| 295 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); | 273 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 } | 314 } |
| 337 | 315 |
| 338 TEST_F(HttpServerPropertiesManagerTest, Clear) { | 316 TEST_F(HttpServerPropertiesManagerTest, Clear) { |
| 339 ExpectPrefsUpdate(); | 317 ExpectPrefsUpdate(); |
| 340 | 318 |
| 341 net::HostPortPair spdy_server_mail("mail.google.com", 443); | 319 net::HostPortPair spdy_server_mail("mail.google.com", 443); |
| 342 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); | 320 http_server_props_manager_->SetSupportsSpdy(spdy_server_mail, true); |
| 343 http_server_props_manager_->SetAlternateProtocol( | 321 http_server_props_manager_->SetAlternateProtocol( |
| 344 spdy_server_mail, 443, net::NPN_SPDY_2); | 322 spdy_server_mail, 443, net::NPN_SPDY_2); |
| 345 | 323 |
| 346 spdy::SpdySettings spdy_settings; | 324 const uint32 id1 = 1234; |
| 347 spdy::SettingsFlagsAndId id1(spdy::SETTINGS_FLAG_PLEASE_PERSIST, 1234); | 325 const uint8 flags1 = spdy::SETTINGS_FLAG_PLEASE_PERSIST; |
| 348 spdy_settings.push_back(std::make_pair(id1, 31337)); | 326 const uint32 value1 = 31337; |
| 349 http_server_props_manager_->SetSpdySettings(spdy_server_mail, spdy_settings); | 327 spdy::SettingsFlagsAndValue flags_and_value1(flags1, value1); |
| 328 http_server_props_manager_->SetSpdySetting( |
| 329 spdy_server_mail, id1, flags_and_value1); |
| 350 | 330 |
| 351 net::HostPortPair known_pipeliner("pipeline.com", 8080); | 331 net::HostPortPair known_pipeliner("pipeline.com", 8080); |
| 352 http_server_props_manager_->SetPipelineCapability(known_pipeliner, | 332 http_server_props_manager_->SetPipelineCapability(known_pipeliner, |
| 353 net::PIPELINE_CAPABLE); | 333 net::PIPELINE_CAPABLE); |
| 354 | 334 |
| 355 // Run the task. | 335 // Run the task. |
| 356 loop_.RunAllPending(); | 336 loop_.RunAllPending(); |
| 357 | 337 |
| 358 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); | 338 EXPECT_TRUE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
| 359 EXPECT_TRUE( | 339 EXPECT_TRUE( |
| 360 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); | 340 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
| 361 | 341 |
| 362 spdy::SpdySettings spdy_settings_ret = | 342 // Check SPDY settings values. |
| 343 const spdy::SettingsMap& settings_map1_ret = |
| 363 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 344 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 364 ASSERT_EQ(1U, spdy_settings_ret.size()); | 345 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 365 spdy::SpdySetting spdy_setting1_ret = spdy_settings_ret.front(); | 346 spdy::SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| 366 spdy::SettingsFlagsAndId id1_ret(spdy_setting1_ret.first); | 347 EXPECT_NE(it1_ret, settings_map1_ret.end()); |
| 367 EXPECT_EQ(1234U, id1_ret.id()); | 348 spdy::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; |
| 368 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, id1_ret.flags()); | 349 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); |
| 369 EXPECT_EQ(31337U, spdy_setting1_ret.second); | 350 EXPECT_EQ(value1, flags_and_value1_ret.second); |
| 370 | 351 |
| 371 EXPECT_EQ(net::PIPELINE_CAPABLE, | 352 EXPECT_EQ(net::PIPELINE_CAPABLE, |
| 372 http_server_props_manager_->GetPipelineCapability(known_pipeliner)); | 353 http_server_props_manager_->GetPipelineCapability(known_pipeliner)); |
| 373 | 354 |
| 374 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 355 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 375 | 356 |
| 376 ExpectPrefsUpdate(); | 357 ExpectPrefsUpdate(); |
| 377 // Clear http server data. | 358 // Clear http server data. |
| 378 http_server_props_manager_->Clear(); | 359 http_server_props_manager_->Clear(); |
| 379 | 360 |
| 380 // Run the task. | 361 // Run the task. |
| 381 loop_.RunAllPending(); | 362 loop_.RunAllPending(); |
| 382 | 363 |
| 383 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); | 364 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); |
| 384 EXPECT_FALSE( | 365 EXPECT_FALSE( |
| 385 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); | 366 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); |
| 386 | 367 |
| 387 spdy::SpdySettings spdy_settings1_ret = | 368 const spdy::SettingsMap& settings_map2_ret = |
| 388 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 369 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 389 EXPECT_EQ(0U, spdy_settings1_ret.size()); | 370 EXPECT_EQ(0U, settings_map2_ret.size()); |
| 390 | 371 |
| 391 EXPECT_EQ(net::PIPELINE_UNKNOWN, | 372 EXPECT_EQ(net::PIPELINE_UNKNOWN, |
| 392 http_server_props_manager_->GetPipelineCapability(known_pipeliner)); | 373 http_server_props_manager_->GetPipelineCapability(known_pipeliner)); |
| 393 | 374 |
| 394 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 375 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 395 } | 376 } |
| 396 | 377 |
| 397 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { | 378 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { |
| 398 // Post an update task to the UI thread. | 379 // Post an update task to the UI thread. |
| 399 http_server_props_manager_->ScheduleUpdateCacheOnUI(); | 380 http_server_props_manager_->ScheduleUpdateCacheOnUI(); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 // Run the task after shutdown, but before deletion. | 442 // Run the task after shutdown, but before deletion. |
| 462 loop_.RunAllPending(); | 443 loop_.RunAllPending(); |
| 463 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 444 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 464 http_server_props_manager_.reset(); | 445 http_server_props_manager_.reset(); |
| 465 loop_.RunAllPending(); | 446 loop_.RunAllPending(); |
| 466 } | 447 } |
| 467 | 448 |
| 468 } // namespace | 449 } // namespace |
| 469 | 450 |
| 470 } // namespace chrome_browser_net | 451 } // namespace chrome_browser_net |
| OLD | NEW |