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