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

Side by Side Diff: chrome/browser/net/http_server_properties_manager_unittest.cc

Issue 11238034: Added completion notification to Profile's ClearNetworkingHistorySince. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missing newline at EOF. Created 8 years, 2 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 | Annotate | Revision Log
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 "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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 void UpdateCacheFromPrefsOnUIConcrete() { 47 void UpdateCacheFromPrefsOnUIConcrete() {
48 HttpServerPropertiesManager::UpdateCacheFromPrefsOnUI(); 48 HttpServerPropertiesManager::UpdateCacheFromPrefsOnUI();
49 } 49 }
50 50
51 // Post tasks without a delay during tests. 51 // Post tasks without a delay during tests.
52 virtual void StartCacheUpdateTimerOnUI(base::TimeDelta delay) OVERRIDE { 52 virtual void StartCacheUpdateTimerOnUI(base::TimeDelta delay) OVERRIDE {
53 HttpServerPropertiesManager::StartCacheUpdateTimerOnUI( 53 HttpServerPropertiesManager::StartCacheUpdateTimerOnUI(
54 base::TimeDelta()); 54 base::TimeDelta());
55 } 55 }
56 56
57 void UpdatePrefsFromCacheOnIOConcrete() { 57 void UpdatePrefsFromCacheOnIOConcrete(const base::Closure& callback) {
58 HttpServerPropertiesManager::UpdatePrefsFromCacheOnIO(); 58 HttpServerPropertiesManager::UpdatePrefsFromCacheOnIO(callback);
59 } 59 }
60 60
61 MOCK_METHOD0(UpdateCacheFromPrefsOnUI, void()); 61 MOCK_METHOD0(UpdateCacheFromPrefsOnUI, void());
62 MOCK_METHOD0(UpdatePrefsFromCacheOnIO, void()); 62 MOCK_METHOD1(UpdatePrefsFromCacheOnIO, void(const base::Closure&));
63 MOCK_METHOD5(UpdateCacheFromPrefsOnIO, 63 MOCK_METHOD5(UpdateCacheFromPrefsOnIO,
64 void(std::vector<std::string>* spdy_servers, 64 void(std::vector<std::string>* spdy_servers,
65 net::SpdySettingsMap* spdy_settings_map, 65 net::SpdySettingsMap* spdy_settings_map,
66 net::AlternateProtocolMap* alternate_protocol_map, 66 net::AlternateProtocolMap* alternate_protocol_map,
67 net::PipelineCapabilityMap* pipeline_capability_map, 67 net::PipelineCapabilityMap* pipeline_capability_map,
68 bool detected_corrupted_prefs)); 68 bool detected_corrupted_prefs));
69 MOCK_METHOD4(UpdatePrefsOnUI, 69 MOCK_METHOD4(UpdatePrefsOnUI,
70 void(base::ListValue* spdy_server_list, 70 void(base::ListValue* spdy_server_list,
71 net::SpdySettingsMap* spdy_settings_map, 71 net::SpdySettingsMap* spdy_settings_map,
72 net::AlternateProtocolMap* alternate_protocol_map, 72 net::AlternateProtocolMap* alternate_protocol_map,
73 net::PipelineCapabilityMap* pipeline_capability_map)); 73 net::PipelineCapabilityMap* pipeline_capability_map));
74 74
75 private: 75 private:
76 DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager); 76 DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager);
77 }; 77 };
78 78
79 class MockClosure : public base::RefCountedThreadSafe<MockClosure> {
battre 2012/10/23 08:38:33 I think this is quite some complexity given that t
engedy 2012/10/23 10:40:09 Will, Raman, what do you think? On 2012/10/23 08:
ramant (doing other things) 2012/10/23 23:51:48 +1 to moving it to chrome/test/base. In this file
80 public:
81 MOCK_METHOD0(MockMethod, void());
82
83 static base::Closure NewExpectedClosure() {
84 scoped_refptr<MockClosure> mock_closure(new MockClosure);
85 EXPECT_CALL(*mock_closure, MockMethod());
86 return base::Bind(&MockClosure::MockMethod, mock_closure);
87 }
88
89 protected:
90 friend class base::RefCountedThreadSafe<MockClosure>;
91 virtual ~MockClosure() {}
92
93 private:
94 MockClosure() {}
95 DISALLOW_COPY_AND_ASSIGN(MockClosure);
96 };
97
79 class HttpServerPropertiesManagerTest : public testing::Test { 98 class HttpServerPropertiesManagerTest : public testing::Test {
80 protected: 99 protected:
81 HttpServerPropertiesManagerTest() 100 HttpServerPropertiesManagerTest()
82 : ui_thread_(BrowserThread::UI, &loop_), 101 : ui_thread_(BrowserThread::UI, &loop_),
83 io_thread_(BrowserThread::IO, &loop_) { 102 io_thread_(BrowserThread::IO, &loop_) {
84 } 103 }
85 104
86 virtual void SetUp() OVERRIDE { 105 virtual void SetUp() OVERRIDE {
87 pref_service_.RegisterDictionaryPref(prefs::kHttpServerProperties); 106 pref_service_.RegisterDictionaryPref(prefs::kHttpServerProperties);
88 http_server_props_manager_.reset( 107 http_server_props_manager_.reset(
(...skipping 13 matching lines...) Expand all
102 121
103 void ExpectCacheUpdate() { 122 void ExpectCacheUpdate() {
104 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnUI()) 123 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnUI())
105 .WillOnce( 124 .WillOnce(
106 Invoke(http_server_props_manager_.get(), 125 Invoke(http_server_props_manager_.get(),
107 &TestingHttpServerPropertiesManager:: 126 &TestingHttpServerPropertiesManager::
108 UpdateCacheFromPrefsOnUIConcrete)); 127 UpdateCacheFromPrefsOnUIConcrete));
109 } 128 }
110 129
111 void ExpectPrefsUpdate() { 130 void ExpectPrefsUpdate() {
112 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO()) 131 EXPECT_CALL(*http_server_props_manager_, UpdatePrefsFromCacheOnIO(_))
113 .WillOnce( 132 .WillOnce(
114 Invoke(http_server_props_manager_.get(), 133 Invoke(http_server_props_manager_.get(),
115 &TestingHttpServerPropertiesManager:: 134 &TestingHttpServerPropertiesManager::
116 UpdatePrefsFromCacheOnIOConcrete)); 135 UpdatePrefsFromCacheOnIOConcrete));
117 } 136 }
118 137
119 MessageLoop loop_; 138 MessageLoop loop_;
120 TestingPrefService pref_service_; 139 TestingPrefService pref_service_;
121 scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_; 140 scoped_ptr<TestingHttpServerPropertiesManager> http_server_props_manager_;
122 141
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; 365 net::SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second;
347 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); 366 EXPECT_EQ(net::SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first);
348 EXPECT_EQ(value1, flags_and_value1_ret.second); 367 EXPECT_EQ(value1, flags_and_value1_ret.second);
349 368
350 EXPECT_EQ(net::PIPELINE_CAPABLE, 369 EXPECT_EQ(net::PIPELINE_CAPABLE,
351 http_server_props_manager_->GetPipelineCapability(known_pipeliner)); 370 http_server_props_manager_->GetPipelineCapability(known_pipeliner));
352 371
353 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 372 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
354 373
355 ExpectPrefsUpdate(); 374 ExpectPrefsUpdate();
375
356 // Clear http server data. 376 // Clear http server data.
357 http_server_props_manager_->Clear(); 377 http_server_props_manager_->Clear(MockClosure::NewExpectedClosure());
358 378
359 // Run the task. 379 // Run the task.
360 loop_.RunAllPending(); 380 loop_.RunAllPending();
361 381
362 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail)); 382 EXPECT_FALSE(http_server_props_manager_->SupportsSpdy(spdy_server_mail));
363 EXPECT_FALSE( 383 EXPECT_FALSE(
364 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail)); 384 http_server_props_manager_->HasAlternateProtocol(spdy_server_mail));
365 385
366 const net::SettingsMap& settings_map2_ret = 386 const net::SettingsMap& settings_map2_ret =
367 http_server_props_manager_->GetSpdySettings(spdy_server_mail); 387 http_server_props_manager_->GetSpdySettings(spdy_server_mail);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 http_server_props_manager_->ShutdownOnUIThread(); 447 http_server_props_manager_->ShutdownOnUIThread();
428 // Run the task after shutdown, but before deletion. 448 // Run the task after shutdown, but before deletion.
429 loop_.RunAllPending(); 449 loop_.RunAllPending();
430 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 450 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
431 http_server_props_manager_.reset(); 451 http_server_props_manager_.reset();
432 loop_.RunAllPending(); 452 loop_.RunAllPending();
433 } 453 }
434 454
435 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) { 455 TEST_F(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) {
436 // This posts a task to the UI thread. 456 // This posts a task to the UI thread.
437 http_server_props_manager_->UpdatePrefsFromCacheOnIOConcrete(); 457 http_server_props_manager_->UpdatePrefsFromCacheOnIOConcrete(base::Closure());
438 // Shutdown comes before the task is executed. 458 // Shutdown comes before the task is executed.
439 http_server_props_manager_->ShutdownOnUIThread(); 459 http_server_props_manager_->ShutdownOnUIThread();
440 // Run the task after shutdown, but before deletion. 460 // Run the task after shutdown, but before deletion.
441 loop_.RunAllPending(); 461 loop_.RunAllPending();
442 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 462 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
443 http_server_props_manager_.reset(); 463 http_server_props_manager_.reset();
444 loop_.RunAllPending(); 464 loop_.RunAllPending();
445 } 465 }
446 466
447 } // namespace 467 } // namespace
448 468
449 } // namespace chrome_browser_net 469 } // namespace chrome_browser_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698