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

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

Issue 2577863002: Change HttpServerPropertiesManager::pref_task_runner_ to use TestMockTimeTaskRunner in unittests (Closed)
Patch Set: rebase Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "net/http/http_server_properties_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 148
149 } // namespace 149 } // namespace
150 150
151 // TODO(rtenneti): After we stop supporting version 3 and everyone has migrated 151 // TODO(rtenneti): After we stop supporting version 3 and everyone has migrated
152 // to version 4, delete the following code. 152 // to version 4, delete the following code.
153 static const int kHttpServerPropertiesVersions[] = {3, 4, 5}; 153 static const int kHttpServerPropertiesVersions[] = {3, 4, 5};
154 154
155 class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> { 155 class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> {
156 protected: 156 protected:
157 HttpServerPropertiesManagerTest() 157 HttpServerPropertiesManagerTest()
158 : net_test_task_runner_(new TestMockTimeTaskRunner()) {} 158 : pref_test_task_runner_(new TestMockTimeTaskRunner()),
159 net_test_task_runner_(new TestMockTimeTaskRunner()) {}
159 160
160 void SetUp() override { 161 void SetUp() override {
161 one_day_from_now_ = base::Time::Now() + base::TimeDelta::FromDays(1); 162 one_day_from_now_ = base::Time::Now() + base::TimeDelta::FromDays(1);
162 pref_delegate_ = new MockPrefDelegate; 163 pref_delegate_ = new MockPrefDelegate;
163 http_server_props_manager_.reset( 164 http_server_props_manager_.reset(
164 new StrictMock<TestingHttpServerPropertiesManager>( 165 new StrictMock<TestingHttpServerPropertiesManager>(
166 pref_delegate_, pref_test_task_runner_, net_test_task_runner_));
167
168 ExpectCacheUpdate();
169 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
170 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
171 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
172 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
173 }
174
175 void SetUpWithNonTaskRunner() {
176 pref_delegate_ = new MockPrefDelegate;
177 http_server_props_manager_.reset(
178 new StrictMock<TestingHttpServerPropertiesManager>(
165 pref_delegate_, base::ThreadTaskRunnerHandle::Get(), 179 pref_delegate_, base::ThreadTaskRunnerHandle::Get(),
166 net_test_task_runner_)); 180 net_test_task_runner_));
167 181
168 ExpectCacheUpdate(); 182 ExpectCacheUpdate();
169 base::RunLoop().RunUntilIdle(); 183 base::RunLoop().RunUntilIdle();
170 } 184 }
171 185
172 void TearDown() override { 186 void TearDown() override {
173 if (http_server_props_manager_.get()) 187 if (http_server_props_manager_.get())
174 http_server_props_manager_->ShutdownOnPrefThread(); 188 http_server_props_manager_->ShutdownOnPrefThread();
175 base::RunLoop().RunUntilIdle(); 189 base::RunLoop().RunUntilIdle();
190 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
191 net_test_task_runner_->FastForwardUntilNoTasksRemain();
176 http_server_props_manager_.reset(); 192 http_server_props_manager_.reset();
177 } 193 }
178 194
179 void ExpectCacheUpdate() { 195 void ExpectCacheUpdate() {
180 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnPrefThread()) 196 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnPrefThread())
181 .WillOnce(Invoke(http_server_props_manager_.get(), 197 .WillOnce(Invoke(http_server_props_manager_.get(),
182 &TestingHttpServerPropertiesManager:: 198 &TestingHttpServerPropertiesManager::
183 UpdateCacheFromPrefsOnUIConcrete)); 199 UpdateCacheFromPrefsOnUIConcrete));
184 } 200 }
185 201
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 bool HasAlternativeService(const url::SchemeHostPort& server) { 235 bool HasAlternativeService(const url::SchemeHostPort& server) {
220 const AlternativeServiceVector alternative_service_vector = 236 const AlternativeServiceVector alternative_service_vector =
221 http_server_props_manager_->GetAlternativeServices(server); 237 http_server_props_manager_->GetAlternativeServices(server);
222 return !alternative_service_vector.empty(); 238 return !alternative_service_vector.empty();
223 } 239 }
224 240
225 MockPrefDelegate* pref_delegate_; // Owned by HttpServerPropertiesManager. 241 MockPrefDelegate* pref_delegate_; // Owned by HttpServerPropertiesManager.
226 std::unique_ptr<TestingHttpServerPropertiesManager> 242 std::unique_ptr<TestingHttpServerPropertiesManager>
227 http_server_props_manager_; 243 http_server_props_manager_;
228 base::Time one_day_from_now_; 244 base::Time one_day_from_now_;
245 scoped_refptr<TestMockTimeTaskRunner> pref_test_task_runner_;
229 scoped_refptr<TestMockTimeTaskRunner> net_test_task_runner_; 246 scoped_refptr<TestMockTimeTaskRunner> net_test_task_runner_;
230 247
231 private: 248 private:
232 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest); 249 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest);
233 }; 250 };
234 251
235 INSTANTIATE_TEST_CASE_P(Tests, 252 INSTANTIATE_TEST_CASE_P(Tests,
236 HttpServerPropertiesManagerTest, 253 HttpServerPropertiesManagerTest,
237 ::testing::ValuesIn(kHttpServerPropertiesVersions)); 254 ::testing::ValuesIn(kHttpServerPropertiesVersions));
238 255
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 QuicServerId play_quic_server_id("play.google.com", 443); 375 QuicServerId play_quic_server_id("play.google.com", 443);
359 quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(), 376 quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(),
360 quic_server_pref_dict3); 377 quic_server_pref_dict3);
361 http_server_properties_dict.SetWithoutPathExpansion("quic_servers", 378 http_server_properties_dict.SetWithoutPathExpansion("quic_servers",
362 quic_servers_dict); 379 quic_servers_dict);
363 380
364 // Set the same value for kHttpServerProperties multiple times. 381 // Set the same value for kHttpServerProperties multiple times.
365 pref_delegate_->SetPrefs(http_server_properties_dict); 382 pref_delegate_->SetPrefs(http_server_properties_dict);
366 pref_delegate_->SetPrefs(http_server_properties_dict); 383 pref_delegate_->SetPrefs(http_server_properties_dict);
367 384
368 base::RunLoop().RunUntilIdle(); 385 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
386 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
387 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
388 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
369 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 389 net_test_task_runner_->FastForwardUntilNoTasksRemain();
390 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
391 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
370 392
371 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 393 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
372 394
373 // Verify SupportsSpdy. 395 // Verify SupportsSpdy.
374 EXPECT_TRUE( 396 EXPECT_TRUE(
375 http_server_props_manager_->SupportsRequestPriority(google_server)); 397 http_server_props_manager_->SupportsRequestPriority(google_server));
376 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(mail_server)); 398 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(mail_server));
377 HostPortPair foo_host_port_pair = 399 HostPortPair foo_host_port_pair =
378 HostPortPair::FromString("foo.google.com:1337"); 400 HostPortPair::FromString("foo.google.com:1337");
379 url::SchemeHostPort foo_server("http", foo_host_port_pair.host(), 401 url::SchemeHostPort foo_server("http", foo_host_port_pair.host(),
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 "quic_server_info1"); 534 "quic_server_info1");
513 quic_servers_dict->SetWithoutPathExpansion("http://mail.google.com:65536", 535 quic_servers_dict->SetWithoutPathExpansion("http://mail.google.com:65536",
514 quic_server_pref_dict1); 536 quic_server_pref_dict1);
515 537
516 http_server_properties_dict.SetWithoutPathExpansion("quic_servers", 538 http_server_properties_dict.SetWithoutPathExpansion("quic_servers",
517 quic_servers_dict); 539 quic_servers_dict);
518 540
519 // Set up the pref. 541 // Set up the pref.
520 pref_delegate_->SetPrefs(http_server_properties_dict); 542 pref_delegate_->SetPrefs(http_server_properties_dict);
521 543
522 base::RunLoop().RunUntilIdle(); 544 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
545 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
546 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
547 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
548 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
523 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 549 net_test_task_runner_->FastForwardUntilNoTasksRemain();
524 550 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
551 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
552 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
553 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
525 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 554 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
526 555
527 // Verify that nothing is set. 556 // Verify that nothing is set.
528 HostPortPair google_host_port_pair = 557 HostPortPair google_host_port_pair =
529 HostPortPair::FromString("www.google.com:65536"); 558 HostPortPair::FromString("www.google.com:65536");
530 url::SchemeHostPort gooler_server("http", google_host_port_pair.host(), 559 url::SchemeHostPort gooler_server("http", google_host_port_pair.host(),
531 google_host_port_pair.port()); 560 google_host_port_pair.port());
532 561
533 EXPECT_FALSE( 562 EXPECT_FALSE(
534 http_server_props_manager_->SupportsRequestPriority(gooler_server)); 563 http_server_props_manager_->SupportsRequestPriority(gooler_server));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 } else { 607 } else {
579 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 608 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
580 GetParam()); 609 GetParam());
581 http_server_properties_dict.SetWithoutPathExpansion( 610 http_server_properties_dict.SetWithoutPathExpansion(
582 "servers", std::move(servers_dict)); 611 "servers", std::move(servers_dict));
583 } 612 }
584 613
585 // Set up the pref. 614 // Set up the pref.
586 pref_delegate_->SetPrefs(http_server_properties_dict); 615 pref_delegate_->SetPrefs(http_server_properties_dict);
587 616
588 base::RunLoop().RunUntilIdle(); 617 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
618 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
619 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
620 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
621 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
589 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 622 net_test_task_runner_->FastForwardUntilNoTasksRemain();
590 623 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
624 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
625 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
626 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
591 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 627 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
592 628
593 // Verify alternative service is not set. 629 // Verify alternative service is not set.
594 EXPECT_FALSE( 630 EXPECT_FALSE(
595 HasAlternativeService(url::SchemeHostPort("http", "www.google.com", 80))); 631 HasAlternativeService(url::SchemeHostPort("http", "www.google.com", 80)));
596 } 632 }
597 633
598 TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) { 634 TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) {
599 ExpectPrefsUpdate(); 635 ExpectPrefsUpdate();
600 ExpectScheduleUpdatePrefsOnNetworkThread(); 636 ExpectScheduleUpdatePrefsOnNetworkThread();
601 637
602 // Post an update task to the network thread. SetSupportsSpdy calls 638 // Post an update task to the network thread. SetSupportsSpdy calls
603 // ScheduleUpdatePrefsOnNetworkThread. 639 // ScheduleUpdatePrefsOnNetworkThread.
604 640
605 // Add mail.google.com:443 as a supporting spdy server. 641 // Add mail.google.com:443 as a supporting spdy server.
606 url::SchemeHostPort spdy_server("https", "mail.google.com", 443); 642 url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
607 EXPECT_FALSE( 643 EXPECT_FALSE(
608 http_server_props_manager_->SupportsRequestPriority(spdy_server)); 644 http_server_props_manager_->SupportsRequestPriority(spdy_server));
609 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 645 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
610 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 646 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
611 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 647 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
612 648
613 // Run the task. 649 // Run the task.
614 base::RunLoop().RunUntilIdle(); 650 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
651 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
615 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 652 net_test_task_runner_->FastForwardUntilNoTasksRemain();
653 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
654 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
655 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
656 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
616 657
617 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server)); 658 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server));
618 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 659 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
619 } 660 }
620 661
621 TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServices) { 662 TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServices) {
622 ExpectPrefsUpdate(); 663 ExpectPrefsUpdate();
623 ExpectScheduleUpdatePrefsOnNetworkThread(); 664 ExpectScheduleUpdatePrefsOnNetworkThread();
624 665
625 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 666 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
626 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 667 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
627 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 668 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com",
628 443); 669 443);
629 http_server_props_manager_->SetAlternativeService( 670 http_server_props_manager_->SetAlternativeService(
630 spdy_server_mail, alternative_service, one_day_from_now_); 671 spdy_server_mail, alternative_service, one_day_from_now_);
631 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 672 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
632 http_server_props_manager_->SetAlternativeService( 673 http_server_props_manager_->SetAlternativeService(
633 spdy_server_mail, alternative_service, one_day_from_now_); 674 spdy_server_mail, alternative_service, one_day_from_now_);
634 675
635 // Run the task. 676 // Run the task.
636 base::RunLoop().RunUntilIdle(); 677 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
678 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
637 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 679 net_test_task_runner_->FastForwardUntilNoTasksRemain();
638 680 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
681 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
682 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
683 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
684 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
639 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 685 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
640 686
641 AlternativeServiceVector alternative_service_vector = 687 AlternativeServiceVector alternative_service_vector =
642 http_server_props_manager_->GetAlternativeServices(spdy_server_mail); 688 http_server_props_manager_->GetAlternativeServices(spdy_server_mail);
643 ASSERT_EQ(1u, alternative_service_vector.size()); 689 ASSERT_EQ(1u, alternative_service_vector.size());
644 EXPECT_EQ(alternative_service, alternative_service_vector[0]); 690 EXPECT_EQ(alternative_service, alternative_service_vector[0]);
645 } 691 }
646 692
647 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServices) { 693 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServices) {
648 ExpectPrefsUpdate(); 694 ExpectPrefsUpdate();
(...skipping 10 matching lines...) Expand all
659 1234); 705 1234);
660 alternative_service_info_vector.push_back( 706 alternative_service_info_vector.push_back(
661 AlternativeServiceInfo(alternative_service2, one_day_from_now_)); 707 AlternativeServiceInfo(alternative_service2, one_day_from_now_));
662 http_server_props_manager_->SetAlternativeServices( 708 http_server_props_manager_->SetAlternativeServices(
663 spdy_server_mail, alternative_service_info_vector); 709 spdy_server_mail, alternative_service_info_vector);
664 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 710 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
665 http_server_props_manager_->SetAlternativeServices( 711 http_server_props_manager_->SetAlternativeServices(
666 spdy_server_mail, alternative_service_info_vector); 712 spdy_server_mail, alternative_service_info_vector);
667 713
668 // Run the task. 714 // Run the task.
669 base::RunLoop().RunUntilIdle(); 715 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
716 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
670 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 717 net_test_task_runner_->FastForwardUntilNoTasksRemain();
671 718 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
719 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
720 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
721 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
722 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
672 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 723 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
673 724
674 AlternativeServiceVector alternative_service_vector = 725 AlternativeServiceVector alternative_service_vector =
675 http_server_props_manager_->GetAlternativeServices(spdy_server_mail); 726 http_server_props_manager_->GetAlternativeServices(spdy_server_mail);
676 ASSERT_EQ(2u, alternative_service_vector.size()); 727 ASSERT_EQ(2u, alternative_service_vector.size());
677 EXPECT_EQ(alternative_service1, alternative_service_vector[0]); 728 EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
678 EXPECT_EQ(alternative_service2, alternative_service_vector[1]); 729 EXPECT_EQ(alternative_service2, alternative_service_vector[1]);
679 } 730 }
680 731
681 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServicesEmpty) { 732 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServicesEmpty) {
682 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 733 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
683 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 734 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
684 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 735 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com",
685 443); 736 443);
686 http_server_props_manager_->SetAlternativeServices( 737 http_server_props_manager_->SetAlternativeServices(
687 spdy_server_mail, AlternativeServiceInfoVector()); 738 spdy_server_mail, AlternativeServiceInfoVector());
739
688 // ExpectScheduleUpdatePrefsOnNetworkThread() should not be called. 740 // ExpectScheduleUpdatePrefsOnNetworkThread() should not be called.
689 741 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
690 // Run the task. 742 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
691 base::RunLoop().RunUntilIdle();
692 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 743 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
693 744
694 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 745 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
695 } 746 }
696 747
697 TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) { 748 TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
698 ExpectPrefsUpdate(); 749 ExpectPrefsUpdate();
699 750
700 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 751 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
701 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 752 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
(...skipping 22 matching lines...) Expand all
724 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 775 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
725 alternative_service)); 776 alternative_service));
726 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 777 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
727 http_server_props_manager_->ConfirmAlternativeService(alternative_service); 778 http_server_props_manager_->ConfirmAlternativeService(alternative_service);
728 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 779 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
729 alternative_service)); 780 alternative_service));
730 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 781 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
731 alternative_service)); 782 alternative_service));
732 783
733 // Run the task. 784 // Run the task.
734 base::RunLoop().RunUntilIdle(); 785 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
786 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
735 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 787 net_test_task_runner_->FastForwardUntilNoTasksRemain();
788 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
789 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
790 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
791 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
736 792
737 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 793 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
738 794
739 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 795 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
740 alternative_service)); 796 alternative_service));
741 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 797 EXPECT_FALSE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
742 alternative_service)); 798 alternative_service));
743 } 799 }
744 800
745 TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) { 801 TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) {
746 ExpectPrefsUpdate(); 802 ExpectPrefsUpdate();
747 ExpectScheduleUpdatePrefsOnNetworkThread(); 803 ExpectScheduleUpdatePrefsOnNetworkThread();
748 804
749 IPAddress address; 805 IPAddress address;
750 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address)); 806 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address));
751 807
752 IPAddress actual_address(127, 0, 0, 1); 808 IPAddress actual_address(127, 0, 0, 1);
753 http_server_props_manager_->SetSupportsQuic(true, actual_address); 809 http_server_props_manager_->SetSupportsQuic(true, actual_address);
754 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 810 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
755 http_server_props_manager_->SetSupportsQuic(true, actual_address); 811 http_server_props_manager_->SetSupportsQuic(true, actual_address);
756 812
757 // Run the task. 813 // Run the task.
758 base::RunLoop().RunUntilIdle(); 814 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
815 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
759 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 816 net_test_task_runner_->FastForwardUntilNoTasksRemain();
817 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
818 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
819 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
820 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
760 821
761 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 822 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
762 823
763 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address)); 824 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address));
764 EXPECT_EQ(actual_address, address); 825 EXPECT_EQ(actual_address, address);
765 } 826 }
766 827
767 TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) { 828 TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) {
768 ExpectPrefsUpdate(); 829 ExpectPrefsUpdate();
769 ExpectScheduleUpdatePrefsOnNetworkThread(); 830 ExpectScheduleUpdatePrefsOnNetworkThread();
770 831
771 url::SchemeHostPort mail_server("http", "mail.google.com", 80); 832 url::SchemeHostPort mail_server("http", "mail.google.com", 80);
772 const ServerNetworkStats* stats = 833 const ServerNetworkStats* stats =
773 http_server_props_manager_->GetServerNetworkStats(mail_server); 834 http_server_props_manager_->GetServerNetworkStats(mail_server);
774 EXPECT_EQ(nullptr, stats); 835 EXPECT_EQ(nullptr, stats);
775 ServerNetworkStats stats1; 836 ServerNetworkStats stats1;
776 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 837 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
777 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1); 838 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1);
778 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 839 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
779 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1); 840 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1);
780 841
781 // Run the task. 842 // Run the task.
782 base::RunLoop().RunUntilIdle(); 843 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
844 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
783 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 845 net_test_task_runner_->FastForwardUntilNoTasksRemain();
846 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
847 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
848 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
849 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
784 850
785 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 851 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
786 852
787 const ServerNetworkStats* stats2 = 853 const ServerNetworkStats* stats2 =
788 http_server_props_manager_->GetServerNetworkStats(mail_server); 854 http_server_props_manager_->GetServerNetworkStats(mail_server);
789 EXPECT_EQ(10, stats2->srtt.ToInternalValue()); 855 EXPECT_EQ(10, stats2->srtt.ToInternalValue());
790 } 856 }
791 857
792 TEST_P(HttpServerPropertiesManagerTest, QuicServerInfo) { 858 TEST_P(HttpServerPropertiesManagerTest, QuicServerInfo) {
793 ExpectPrefsUpdate(); 859 ExpectPrefsUpdate();
794 ExpectScheduleUpdatePrefsOnNetworkThread(); 860 ExpectScheduleUpdatePrefsOnNetworkThread();
795 861
796 QuicServerId mail_quic_server_id("mail.google.com", 80); 862 QuicServerId mail_quic_server_id("mail.google.com", 80);
797 EXPECT_EQ(nullptr, 863 EXPECT_EQ(nullptr,
798 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id)); 864 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id));
799 std::string quic_server_info1("quic_server_info1"); 865 std::string quic_server_info1("quic_server_info1");
800 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, 866 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id,
801 quic_server_info1); 867 quic_server_info1);
802 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 868 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once.
803 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, 869 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id,
804 quic_server_info1); 870 quic_server_info1);
805 871
806 // Run the task. 872 // Run the task.
807 base::RunLoop().RunUntilIdle(); 873 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
874 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
808 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 875 net_test_task_runner_->FastForwardUntilNoTasksRemain();
876 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
877 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
878 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
879 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
809 880
810 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 881 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
811 882
812 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo( 883 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo(
813 mail_quic_server_id)); 884 mail_quic_server_id));
814 } 885 }
815 886
816 TEST_P(HttpServerPropertiesManagerTest, Clear) { 887 TEST_P(HttpServerPropertiesManagerTest, Clear) {
888 // This task expect to run the QuitWhenIdleClosure in the current thread,
889 // thus can not mock the pref task runner.
890 SetUpWithNonTaskRunner();
891
817 ExpectPrefsUpdate(); 892 ExpectPrefsUpdate();
818 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(); 893 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly();
819 894
820 url::SchemeHostPort spdy_server("https", "mail.google.com", 443); 895 url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
821 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 896 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
822 AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 1234); 897 AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 1234);
823 http_server_props_manager_->SetAlternativeService( 898 http_server_props_manager_->SetAlternativeService(
824 spdy_server, alternative_service, one_day_from_now_); 899 spdy_server, alternative_service, one_day_from_now_);
825 IPAddress actual_address(127, 0, 0, 1); 900 IPAddress actual_address(127, 0, 0, 1);
826 http_server_props_manager_->SetSupportsQuic(true, actual_address); 901 http_server_props_manager_->SetSupportsQuic(true, actual_address);
827 ServerNetworkStats stats; 902 ServerNetworkStats stats;
828 stats.srtt = base::TimeDelta::FromMicroseconds(10); 903 stats.srtt = base::TimeDelta::FromMicroseconds(10);
829 http_server_props_manager_->SetServerNetworkStats(spdy_server, stats); 904 http_server_props_manager_->SetServerNetworkStats(spdy_server, stats);
830 905
831 QuicServerId mail_quic_server_id("mail.google.com", 80); 906 QuicServerId mail_quic_server_id("mail.google.com", 80);
832 std::string quic_server_info1("quic_server_info1"); 907 std::string quic_server_info1("quic_server_info1");
833 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, 908 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id,
834 quic_server_info1); 909 quic_server_info1);
835 910
836 // Run the task. 911 // Run the task.
837 base::RunLoop().RunUntilIdle(); 912 base::RunLoop().RunUntilIdle();
913 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
838 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 914 net_test_task_runner_->FastForwardUntilNoTasksRemain();
915 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
839 916
840 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server)); 917 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server));
841 EXPECT_TRUE(HasAlternativeService(spdy_server)); 918 EXPECT_TRUE(HasAlternativeService(spdy_server));
842 IPAddress address; 919 IPAddress address;
843 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address)); 920 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address));
844 EXPECT_EQ(actual_address, address); 921 EXPECT_EQ(actual_address, address);
845 const ServerNetworkStats* stats1 = 922 const ServerNetworkStats* stats1 =
846 http_server_props_manager_->GetServerNetworkStats(spdy_server); 923 http_server_props_manager_->GetServerNetworkStats(spdy_server);
847 EXPECT_EQ(10, stats1->srtt.ToInternalValue()); 924 EXPECT_EQ(10, stats1->srtt.ToInternalValue());
848 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo( 925 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo(
849 mail_quic_server_id)); 926 mail_quic_server_id));
850 927
851 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 928 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
852 929
853 ExpectPrefsUpdate(); 930 ExpectPrefsUpdate();
854 931
855 // Clear http server data, time out if we do not get a completion callback. 932 // Clear http server data, time out if we do not get a completion callback.
856 http_server_props_manager_->Clear(base::MessageLoop::QuitWhenIdleClosure()); 933 http_server_props_manager_->Clear(base::MessageLoop::QuitWhenIdleClosure());
934
857 base::RunLoop().Run(); 935 base::RunLoop().Run();
936 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
858 937
859 EXPECT_FALSE( 938 EXPECT_FALSE(
860 http_server_props_manager_->SupportsRequestPriority(spdy_server)); 939 http_server_props_manager_->SupportsRequestPriority(spdy_server));
861 EXPECT_FALSE(HasAlternativeService(spdy_server)); 940 EXPECT_FALSE(HasAlternativeService(spdy_server));
862 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address)); 941 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address));
863 const ServerNetworkStats* stats2 = 942 const ServerNetworkStats* stats2 =
864 http_server_props_manager_->GetServerNetworkStats(spdy_server); 943 http_server_props_manager_->GetServerNetworkStats(spdy_server);
865 EXPECT_EQ(nullptr, stats2); 944 EXPECT_EQ(nullptr, stats2);
866 EXPECT_EQ(nullptr, 945 EXPECT_EQ(nullptr,
867 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id)); 946 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 // Set up SupportsQuic for 127.0.0.1 1012 // Set up SupportsQuic for 127.0.0.1
934 base::DictionaryValue* supports_quic = new base::DictionaryValue; 1013 base::DictionaryValue* supports_quic = new base::DictionaryValue;
935 supports_quic->SetBoolean("used_quic", true); 1014 supports_quic->SetBoolean("used_quic", true);
936 supports_quic->SetString("address", "127.0.0.1"); 1015 supports_quic->SetString("address", "127.0.0.1");
937 http_server_properties_dict.SetWithoutPathExpansion("supports_quic", 1016 http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
938 supports_quic); 1017 supports_quic);
939 1018
940 // Set up the pref. 1019 // Set up the pref.
941 pref_delegate_->SetPrefs(http_server_properties_dict); 1020 pref_delegate_->SetPrefs(http_server_properties_dict);
942 1021
943 base::RunLoop().RunUntilIdle(); 1022 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1023 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1024 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1025 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
944 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1026 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1027 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1028 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
945 1029
946 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1030 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
947 1031
948 // Verify alternative service. 1032 // Verify alternative service.
949 for (int i = 1; i <= 200; ++i) { 1033 for (int i = 1; i <= 200; ++i) {
950 GURL server_gurl; 1034 GURL server_gurl;
951 if (GetParam() >= 5) { 1035 if (GetParam() >= 5) {
952 server_gurl = GURL(StringPrintf("https://www.google.com:%d", i)); 1036 server_gurl = GURL(StringPrintf("https://www.google.com:%d", i));
953 } else { 1037 } else {
954 server_gurl = GURL(StringPrintf("https://www.google.com:%d", i)); 1038 server_gurl = GURL(StringPrintf("https://www.google.com:%d", i));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 1092
1009 // Set SupportsQuic. 1093 // Set SupportsQuic.
1010 IPAddress actual_address(127, 0, 0, 1); 1094 IPAddress actual_address(127, 0, 0, 1);
1011 http_server_props_manager_->SetSupportsQuic(true, actual_address); 1095 http_server_props_manager_->SetSupportsQuic(true, actual_address);
1012 1096
1013 // Update cache. 1097 // Update cache.
1014 ExpectPrefsUpdate(); 1098 ExpectPrefsUpdate();
1015 ExpectCacheUpdate(); 1099 ExpectCacheUpdate();
1016 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1100 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1017 1101
1102 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1103 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1018 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1104 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1019 base::RunLoop().RunUntilIdle(); 1105 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1106 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1107 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1020 1108
1021 // Verify preferences. 1109 // Verify preferences.
1022 const char expected_json[] = 1110 const char expected_json[] =
1023 "{\"quic_servers\":{\"https://" 1111 "{\"quic_servers\":{\"https://"
1024 "mail.google.com:80\":{\"server_info\":\"quic_server_info1\"}}," 1112 "mail.google.com:80\":{\"server_info\":\"quic_server_info1\"}},"
1025 "\"servers\":[" 1113 "\"servers\":["
1026 "{\"http://www.google.com\":{" 1114 "{\"http://www.google.com\":{"
1027 "\"alternative_service\":[{\"expiration\":\"13756212000000000\"," 1115 "\"alternative_service\":[{\"expiration\":\"13756212000000000\","
1028 "\"port\":443,\"protocol_str\":\"h2\"}," 1116 "\"port\":443,\"protocol_str\":\"h2\"},"
1029 "{\"expiration\":\"13758804000000000\",\"host\":\"www.google.com\"," 1117 "{\"expiration\":\"13758804000000000\",\"host\":\"www.google.com\","
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1141 1229
1142 const url::SchemeHostPort server("https", "www.example.com", 443); 1230 const url::SchemeHostPort server("https", "www.example.com", 443);
1143 http_server_props_manager_->SetAlternativeServices( 1231 http_server_props_manager_->SetAlternativeServices(
1144 server, alternative_service_info_vector); 1232 server, alternative_service_info_vector);
1145 1233
1146 // Update cache. 1234 // Update cache.
1147 ExpectPrefsUpdate(); 1235 ExpectPrefsUpdate();
1148 ExpectCacheUpdate(); 1236 ExpectCacheUpdate();
1149 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1237 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1150 1238
1239 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1240 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1151 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1241 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1152 base::RunLoop().RunUntilIdle(); 1242 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1243 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1244 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1153 1245
1154 const base::DictionaryValue& pref_dict = 1246 const base::DictionaryValue& pref_dict =
1155 pref_delegate_->GetServerProperties(); 1247 pref_delegate_->GetServerProperties();
1156 1248
1157 const base::ListValue* servers_list = nullptr; 1249 const base::ListValue* servers_list = nullptr;
1158 ASSERT_TRUE(pref_dict.GetListWithoutPathExpansion("servers", &servers_list)); 1250 ASSERT_TRUE(pref_dict.GetListWithoutPathExpansion("servers", &servers_list));
1159 base::ListValue::const_iterator it = servers_list->begin(); 1251 base::ListValue::const_iterator it = servers_list->begin();
1160 const base::DictionaryValue* server_pref_dict; 1252 const base::DictionaryValue* server_pref_dict;
1161 ASSERT_TRUE((*it)->GetAsDictionary(&server_pref_dict)); 1253 ASSERT_TRUE((*it)->GetAsDictionary(&server_pref_dict));
1162 1254
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 EXPECT_EQ(one_day_from_now_, alternative_service_info_vector[0].expiration); 1315 EXPECT_EQ(one_day_from_now_, alternative_service_info_vector[0].expiration);
1224 } 1316 }
1225 1317
1226 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { 1318 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) {
1227 // Post an update task to the UI thread. 1319 // Post an update task to the UI thread.
1228 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1320 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1229 // Shutdown comes before the task is executed. 1321 // Shutdown comes before the task is executed.
1230 http_server_props_manager_->ShutdownOnPrefThread(); 1322 http_server_props_manager_->ShutdownOnPrefThread();
1231 http_server_props_manager_.reset(); 1323 http_server_props_manager_.reset();
1232 // Run the task after shutdown and deletion. 1324 // Run the task after shutdown and deletion.
1233 base::RunLoop().RunUntilIdle(); 1325 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1326 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1327 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1328 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1329 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1234 } 1330 }
1235 1331
1236 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) { 1332 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) {
1237 // Post an update task. 1333 // Post an update task.
1238 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1334 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1239 // Shutdown comes before the task is executed. 1335 // Shutdown comes before the task is executed.
1240 http_server_props_manager_->ShutdownOnPrefThread(); 1336 http_server_props_manager_->ShutdownOnPrefThread();
1241 // Run the task after shutdown, but before deletion. 1337 // Run the task after shutdown, but before deletion.
1242 base::RunLoop().RunUntilIdle(); 1338 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1339 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1340 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1341 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1342 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1343
1243 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1344 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1244 http_server_props_manager_.reset(); 1345 http_server_props_manager_.reset();
1245 base::RunLoop().RunUntilIdle(); 1346 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1347 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1246 } 1348 }
1247 1349
1248 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) { 1350 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) {
1249 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete(); 1351 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete();
1250 // Shutdown comes before the task is executed. 1352 // Shutdown comes before the task is executed.
1251 http_server_props_manager_->ShutdownOnPrefThread(); 1353 http_server_props_manager_->ShutdownOnPrefThread();
1252 // Run the task after shutdown, but before deletion. 1354 // There should be no tasks to run.
1253 base::RunLoop().RunUntilIdle(); 1355 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1356 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1254 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1357 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1255 http_server_props_manager_.reset(); 1358 http_server_props_manager_.reset();
1256 base::RunLoop().RunUntilIdle(); 1359 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1360 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1257 } 1361 }
1258 1362
1259 // 1363 //
1260 // Tests for shutdown when updating prefs. 1364 // Tests for shutdown when updating prefs.
1261 // 1365 //
1262 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) { 1366 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) {
1263 // Post an update task to the IO thread. 1367 // Post an update task to the IO thread.
1264 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThread(); 1368 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThread();
1265 // Shutdown comes before the task is executed. 1369 // Shutdown comes before the task is executed.
1266 http_server_props_manager_->ShutdownOnPrefThread(); 1370 http_server_props_manager_->ShutdownOnPrefThread();
1267 http_server_props_manager_.reset(); 1371 http_server_props_manager_.reset();
1268 // Run the task after shutdown and deletion. 1372 // Run the task after shutdown and deletion.
1269 base::RunLoop().RunUntilIdle(); 1373 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1374 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1375 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1376 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1377 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1270 } 1378 }
1271 1379
1272 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) { 1380 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) {
1273 ExpectPrefsUpdate(); 1381 ExpectPrefsUpdate();
1274 // Post an update task. 1382 // Post an update task.
1275 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThread(); 1383 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThread();
1276 // Shutdown comes before the task is executed. 1384 // Shutdown comes before the task is executed.
1277 http_server_props_manager_->ShutdownOnPrefThread(); 1385 http_server_props_manager_->ShutdownOnPrefThread();
1278 // Run the task after shutdown, but before deletion. 1386 // Run the task after shutdown, but before deletion.
1387 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1388 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1279 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1389 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1280 base::RunLoop().RunUntilIdle(); 1390 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1391 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1392 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1393 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1281 1394
1282 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1395 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1283 http_server_props_manager_.reset(); 1396 http_server_props_manager_.reset();
1284 base::RunLoop().RunUntilIdle(); 1397 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1398 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1285 } 1399 }
1286 1400
1287 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) { 1401 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) {
1288 // This posts a task to the UI thread. 1402 // This posts a task to the UI thread.
1289 http_server_props_manager_->UpdatePrefsFromCacheOnNetworkThreadConcrete( 1403 http_server_props_manager_->UpdatePrefsFromCacheOnNetworkThreadConcrete(
1290 base::Closure()); 1404 base::Closure());
1291 // Shutdown comes before the task is executed. 1405 // Shutdown comes before the task is executed.
1292 http_server_props_manager_->ShutdownOnPrefThread(); 1406 http_server_props_manager_->ShutdownOnPrefThread();
1293 // Run the task after shutdown, but before deletion. 1407 // Run the task after shutdown, but before deletion.
1294 base::RunLoop().RunUntilIdle(); 1408 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1409 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1410 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1411 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1412 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1295 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1413 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1296 http_server_props_manager_.reset(); 1414 http_server_props_manager_.reset();
1297 base::RunLoop().RunUntilIdle(); 1415 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1416 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1298 } 1417 }
1299 1418
1300 } // namespace net 1419 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698