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

Side by Side Diff: content/browser/background_sync/background_sync_manager_unittest.cc

Issue 1148853005: [BackgroundSync] Clean up some tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
« 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/browser/background_sync/background_sync_manager.h" 5 #include "content/browser/background_sync/background_sync_manager.h"
6 6
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/power_monitor/power_monitor.h" 9 #include "base/power_monitor/power_monitor.h"
10 #include "base/power_monitor/power_monitor_source.h" 10 #include "base/power_monitor/power_monitor_source.h"
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 } 308 }
309 309
310 protected: 310 protected:
311 void UseTestBackgroundSyncManager() { 311 void UseTestBackgroundSyncManager() {
312 test_background_sync_manager_ = 312 test_background_sync_manager_ =
313 new TestBackgroundSyncManager(helper_->context_wrapper()); 313 new TestBackgroundSyncManager(helper_->context_wrapper());
314 test_background_sync_manager_->DoInit(); 314 test_background_sync_manager_->DoInit();
315 background_sync_manager_.reset(test_background_sync_manager_); 315 background_sync_manager_.reset(test_background_sync_manager_);
316 } 316 }
317 317
318 void DeleteBackgroundSyncManager() {
319 background_sync_manager_.reset();
320 test_background_sync_manager_ = nullptr;
321 }
322
318 bool Register(const BackgroundSyncManager::BackgroundSyncRegistration& 323 bool Register(const BackgroundSyncManager::BackgroundSyncRegistration&
319 sync_registration) { 324 sync_registration) {
320 return RegisterWithServiceWorkerId(sw_registration_id_1_, 325 return RegisterWithServiceWorkerId(sw_registration_id_1_,
321 sync_registration); 326 sync_registration);
322 } 327 }
323 328
324 bool RegisterWithServiceWorkerId( 329 bool RegisterWithServiceWorkerId(
325 int64 sw_registration_id, 330 int64 sw_registration_id,
326 const BackgroundSyncManager::BackgroundSyncRegistration& 331 const BackgroundSyncManager::BackgroundSyncRegistration&
327 sync_registration) { 332 sync_registration) {
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 EXPECT_TRUE( 727 EXPECT_TRUE(
723 GetRegistrationWithServiceWorkerId(sw_registration_id_1_, sync_reg_1_)); 728 GetRegistrationWithServiceWorkerId(sw_registration_id_1_, sync_reg_1_));
724 EXPECT_TRUE( 729 EXPECT_TRUE(
725 GetRegistrationWithServiceWorkerId(sw_registration_id_2_, sync_reg_2_)); 730 GetRegistrationWithServiceWorkerId(sw_registration_id_2_, sync_reg_2_));
726 731
727 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_2_)); 732 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_2_));
728 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_1_)); 733 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_1_));
729 } 734 }
730 735
731 TEST_F(BackgroundSyncManagerTest, InitWithBadBackend) { 736 TEST_F(BackgroundSyncManagerTest, InitWithBadBackend) {
732 TestBackgroundSyncManager* manager = 737 DeleteBackgroundSyncManager();
738 test_background_sync_manager_ =
733 new TestBackgroundSyncManager(helper_->context_wrapper()); 739 new TestBackgroundSyncManager(helper_->context_wrapper());
734 background_sync_manager_.reset(manager); 740 background_sync_manager_.reset(test_background_sync_manager_);
735 manager->set_corrupt_backend(true); 741 test_background_sync_manager_->set_corrupt_backend(true);
736 manager->DoInit(); 742 test_background_sync_manager_->DoInit();
737 743
738 EXPECT_FALSE(Register(sync_reg_1_)); 744 EXPECT_FALSE(Register(sync_reg_1_));
739 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 745 EXPECT_FALSE(GetRegistration(sync_reg_1_));
740 } 746 }
741 747
742 TEST_F(BackgroundSyncManagerTest, SequentialOperations) { 748 TEST_F(BackgroundSyncManagerTest, SequentialOperations) {
743 // Schedule Init and all of the operations on a delayed backend. Verify that 749 // Schedule Init and all of the operations on a delayed backend. Verify that
744 // the operations complete sequentially. 750 // the operations complete sequentially.
745 TestBackgroundSyncManager* manager = 751 DeleteBackgroundSyncManager();
752
753 test_background_sync_manager_ =
746 new TestBackgroundSyncManager(helper_->context_wrapper()); 754 new TestBackgroundSyncManager(helper_->context_wrapper());
747 background_sync_manager_.reset(manager); 755 background_sync_manager_.reset(test_background_sync_manager_);
748 manager->set_delay_backend(true); 756
749 manager->DoInit(); 757 test_background_sync_manager_->set_delay_backend(true);
758 test_background_sync_manager_->DoInit();
750 759
751 const int64 kExpectedInitialId = 760 const int64 kExpectedInitialId =
752 BackgroundSyncManager::BackgroundSyncRegistration::kInitialId; 761 BackgroundSyncManager::BackgroundSyncRegistration::kInitialId;
753 762
754 bool register_called = false; 763 bool register_called = false;
755 bool unregister_called = false; 764 bool unregister_called = false;
756 bool get_registration_called = false; 765 bool get_registration_called = false;
757 manager->Register( 766 test_background_sync_manager_->Register(
758 sw_registration_id_1_, sync_reg_1_, 767 sw_registration_id_1_, sync_reg_1_,
759 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, 768 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback,
760 base::Unretained(this), &register_called)); 769 base::Unretained(this), &register_called));
761 manager->Unregister(sw_registration_id_1_, sync_reg_1_.tag, 770 test_background_sync_manager_->Unregister(
762 sync_reg_1_.periodicity, kExpectedInitialId, 771 sw_registration_id_1_, sync_reg_1_.tag, sync_reg_1_.periodicity,
763 base::Bind(&BackgroundSyncManagerTest::StatusCallback, 772 kExpectedInitialId,
764 base::Unretained(this), &unregister_called)); 773 base::Bind(&BackgroundSyncManagerTest::StatusCallback,
765 manager->GetRegistration( 774 base::Unretained(this), &unregister_called));
775 test_background_sync_manager_->GetRegistration(
766 sw_registration_id_1_, sync_reg_1_.tag, sync_reg_1_.periodicity, 776 sw_registration_id_1_, sync_reg_1_.tag, sync_reg_1_.periodicity,
767 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, 777 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback,
768 base::Unretained(this), &get_registration_called)); 778 base::Unretained(this), &get_registration_called));
769 779
770 base::RunLoop().RunUntilIdle(); 780 base::RunLoop().RunUntilIdle();
771 // Init should be blocked while loading from the backend. 781 // Init should be blocked while loading from the backend.
772 EXPECT_FALSE(register_called); 782 EXPECT_FALSE(register_called);
773 EXPECT_FALSE(unregister_called); 783 EXPECT_FALSE(unregister_called);
774 EXPECT_FALSE(get_registration_called); 784 EXPECT_FALSE(get_registration_called);
775 785
776 manager->Continue(); 786 test_background_sync_manager_->Continue();
777 base::RunLoop().RunUntilIdle(); 787 base::RunLoop().RunUntilIdle();
778 // Register should be blocked while storing to the backend. 788 // Register should be blocked while storing to the backend.
779 EXPECT_FALSE(register_called); 789 EXPECT_FALSE(register_called);
780 EXPECT_FALSE(unregister_called); 790 EXPECT_FALSE(unregister_called);
781 EXPECT_FALSE(get_registration_called); 791 EXPECT_FALSE(get_registration_called);
782 792
783 manager->Continue(); 793 test_background_sync_manager_->Continue();
784 base::RunLoop().RunUntilIdle(); 794 base::RunLoop().RunUntilIdle();
785 EXPECT_TRUE(register_called); 795 EXPECT_TRUE(register_called);
786 EXPECT_EQ(kExpectedInitialId, callback_registration_.id); 796 EXPECT_EQ(kExpectedInitialId, callback_registration_.id);
787 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_OK, callback_error_); 797 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_OK, callback_error_);
788 // Unregister should be blocked while storing to the backend. 798 // Unregister should be blocked while storing to the backend.
789 EXPECT_FALSE(unregister_called); 799 EXPECT_FALSE(unregister_called);
790 EXPECT_FALSE(get_registration_called); 800 EXPECT_FALSE(get_registration_called);
791 801
792 manager->Continue(); 802 test_background_sync_manager_->Continue();
793 base::RunLoop().RunUntilIdle(); 803 base::RunLoop().RunUntilIdle();
794 // Unregister should be done and since GetRegistration doesn't require the 804 // Unregister should be done and since GetRegistration doesn't require the
795 // backend it should be done too. 805 // backend it should be done too.
796 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_); 806 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_);
797 EXPECT_TRUE(unregister_called); 807 EXPECT_TRUE(unregister_called);
798 EXPECT_TRUE(get_registration_called); 808 EXPECT_TRUE(get_registration_called);
799 } 809 }
800 810
801 TEST_F(BackgroundSyncManagerTest, UnregisterServiceWorker) { 811 TEST_F(BackgroundSyncManagerTest, UnregisterServiceWorker) {
802 EXPECT_TRUE(Register(sync_reg_1_)); 812 EXPECT_TRUE(Register(sync_reg_1_));
803 UnregisterServiceWorker(sw_registration_id_1_); 813 UnregisterServiceWorker(sw_registration_id_1_);
804 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 814 EXPECT_FALSE(GetRegistration(sync_reg_1_));
805 } 815 }
806 816
807 TEST_F(BackgroundSyncManagerTest, 817 TEST_F(BackgroundSyncManagerTest,
808 UnregisterServiceWorkerDuringSyncRegistration) { 818 UnregisterServiceWorkerDuringSyncRegistration) {
809 TestBackgroundSyncManager* manager = 819 UseTestBackgroundSyncManager();
810 new TestBackgroundSyncManager(helper_->context_wrapper());
811 background_sync_manager_.reset(manager);
812 manager->DoInit();
813 820
814 EXPECT_TRUE(Register(sync_reg_1_)); 821 EXPECT_TRUE(Register(sync_reg_1_));
815 822
816 manager->set_delay_backend(true); 823 test_background_sync_manager_->set_delay_backend(true);
817 bool callback_called = false; 824 bool callback_called = false;
818 manager->Register( 825 test_background_sync_manager_->Register(
819 sw_registration_id_1_, sync_reg_2_, 826 sw_registration_id_1_, sync_reg_2_,
820 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, 827 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback,
821 base::Unretained(this), &callback_called)); 828 base::Unretained(this), &callback_called));
822 829
823 base::RunLoop().RunUntilIdle(); 830 base::RunLoop().RunUntilIdle();
824 EXPECT_FALSE(callback_called); 831 EXPECT_FALSE(callback_called);
825 UnregisterServiceWorker(sw_registration_id_1_); 832 UnregisterServiceWorker(sw_registration_id_1_);
826 833
827 manager->Continue(); 834 test_background_sync_manager_->Continue();
828 base::RunLoop().RunUntilIdle(); 835 base::RunLoop().RunUntilIdle();
829 EXPECT_TRUE(callback_called); 836 EXPECT_TRUE(callback_called);
830 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_STORAGE, callback_error_); 837 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_STORAGE, callback_error_);
831 838
832 manager->set_delay_backend(false); 839 test_background_sync_manager_->set_delay_backend(false);
833 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 840 EXPECT_FALSE(GetRegistration(sync_reg_1_));
834 } 841 }
835 842
836 TEST_F(BackgroundSyncManagerTest, DeleteAndStartOverServiceWorkerContext) { 843 TEST_F(BackgroundSyncManagerTest, DeleteAndStartOverServiceWorkerContext) {
837 EXPECT_TRUE(Register(sync_reg_1_)); 844 EXPECT_TRUE(Register(sync_reg_1_));
838 helper_->context()->ScheduleDeleteAndStartOver(); 845 helper_->context()->ScheduleDeleteAndStartOver();
839 base::RunLoop().RunUntilIdle(); 846 base::RunLoop().RunUntilIdle();
840 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 847 EXPECT_FALSE(GetRegistration(sync_reg_1_));
841 } 848 }
842 849
843 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterBrowserRestart) { 850 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterBrowserRestart) {
844 TestBackgroundSyncManager* manager = 851 UseTestBackgroundSyncManager();
845 new TestBackgroundSyncManager(helper_->context_wrapper());
846 background_sync_manager_.reset(manager);
847 manager->DoInit();
848 EXPECT_TRUE(Register(sync_reg_1_)); 852 EXPECT_TRUE(Register(sync_reg_1_));
849 manager->set_corrupt_backend(true); 853 test_background_sync_manager_->set_corrupt_backend(true);
850 EXPECT_FALSE(Register(sync_reg_2_)); 854 EXPECT_FALSE(Register(sync_reg_2_));
851 855
852 // The manager is now disabled and not accepting new requests until browser 856 // The manager is now disabled and not accepting new requests until browser
853 // restart or notification that the storage has been wiped. 857 // restart or notification that the storage has been wiped.
854 manager->set_corrupt_backend(false); 858 test_background_sync_manager_->set_corrupt_backend(false);
855 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 859 EXPECT_FALSE(GetRegistration(sync_reg_1_));
856 EXPECT_FALSE(Register(sync_reg_2_)); 860 EXPECT_FALSE(Register(sync_reg_2_));
857 861
858 // Simulate restarting the browser by creating a new BackgroundSyncManager. 862 // Simulate restarting the browser by creating a new BackgroundSyncManager.
859 background_sync_manager_.reset( 863 UseTestBackgroundSyncManager();
860 new TestBackgroundSyncManager(helper_->context_wrapper())); 864 EXPECT_TRUE(GetRegistration(sync_reg_1_));
861 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 865 EXPECT_TRUE(Register(sync_reg_2_));
862 EXPECT_TRUE(Register(sync_reg_1_));
863 } 866 }
864 867
865 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterDeleteAndStartOver) { 868 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterDeleteAndStartOver) {
866 TestBackgroundSyncManager* manager = 869 UseTestBackgroundSyncManager();
867 new TestBackgroundSyncManager(helper_->context_wrapper());
868 background_sync_manager_.reset(manager);
869 manager->DoInit();
870 EXPECT_TRUE(Register(sync_reg_1_)); 870 EXPECT_TRUE(Register(sync_reg_1_));
871 manager->set_corrupt_backend(true); 871 test_background_sync_manager_->set_corrupt_backend(true);
872 EXPECT_FALSE(Register(sync_reg_2_)); 872 EXPECT_FALSE(Register(sync_reg_2_));
873 873
874 // The manager is now disabled and not accepting new requests until browser 874 // The manager is now disabled and not accepting new requests until browser
875 // restart or notification that the storage has been wiped. 875 // restart or notification that the storage has been wiped.
876 manager->set_corrupt_backend(false); 876 test_background_sync_manager_->set_corrupt_backend(false);
877 helper_->context()->ScheduleDeleteAndStartOver(); 877 helper_->context()->ScheduleDeleteAndStartOver();
878 base::RunLoop().RunUntilIdle(); 878 base::RunLoop().RunUntilIdle();
879 879
880 RegisterServiceWorkers(); 880 RegisterServiceWorkers();
881 881
882 EXPECT_TRUE(Register(sync_reg_2_)); 882 EXPECT_TRUE(Register(sync_reg_2_));
883 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 883 EXPECT_FALSE(GetRegistration(sync_reg_1_));
884 EXPECT_TRUE(GetRegistration(sync_reg_2_)); 884 EXPECT_TRUE(GetRegistration(sync_reg_2_));
885 } 885 }
886 886
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 InitSyncEventTest(); 1056 InitSyncEventTest();
1057 1057
1058 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1058 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1059 EXPECT_TRUE(Register(sync_reg_1_)); 1059 EXPECT_TRUE(Register(sync_reg_1_));
1060 EXPECT_TRUE(Register(sync_reg_2_)); 1060 EXPECT_TRUE(Register(sync_reg_2_));
1061 EXPECT_EQ(0, sync_events_called_); 1061 EXPECT_EQ(0, sync_events_called_);
1062 EXPECT_TRUE(GetRegistration(sync_reg_1_)); 1062 EXPECT_TRUE(GetRegistration(sync_reg_1_));
1063 EXPECT_TRUE(GetRegistration(sync_reg_2_)); 1063 EXPECT_TRUE(GetRegistration(sync_reg_2_));
1064 1064
1065 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1065 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1066 base::RunLoop().RunUntilIdle(); 1066
1067 EXPECT_EQ(2, sync_events_called_); 1067 EXPECT_EQ(2, sync_events_called_);
1068 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 1068 EXPECT_FALSE(GetRegistration(sync_reg_1_));
1069 EXPECT_FALSE(GetRegistration(sync_reg_2_)); 1069 EXPECT_FALSE(GetRegistration(sync_reg_2_));
1070 } 1070 }
1071 1071
1072 TEST_F(BackgroundSyncManagerTest, OneShotFiresOnManagerRestart) { 1072 TEST_F(BackgroundSyncManagerTest, OneShotFiresOnManagerRestart) {
1073 InitSyncEventTest(); 1073 InitSyncEventTest();
1074 1074
1075 // Initially the event won't run because there is no network. 1075 // Initially the event won't run because there is no network.
1076 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1076 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1077 EXPECT_TRUE(Register(sync_reg_1_)); 1077 EXPECT_TRUE(Register(sync_reg_1_));
1078 EXPECT_EQ(0, sync_events_called_); 1078 EXPECT_EQ(0, sync_events_called_);
1079 EXPECT_TRUE(GetRegistration(sync_reg_1_)); 1079 EXPECT_TRUE(GetRegistration(sync_reg_1_));
1080 1080
1081 // Simulate closing the browser. 1081 // Simulate closing the browser.
1082 background_sync_manager_.reset(); 1082 DeleteBackgroundSyncManager();
1083 1083
1084 // The next time the manager is started, the network is good. 1084 // The next time the manager is started, the network is good.
1085 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1085 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1086 InitSyncEventTest(); 1086 InitSyncEventTest();
1087 1087
1088 // The event should have fired. 1088 // The event should have fired.
1089 EXPECT_EQ(1, sync_events_called_); 1089 EXPECT_EQ(1, sync_events_called_);
1090 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 1090 EXPECT_FALSE(GetRegistration(sync_reg_1_));
1091 } 1091 }
1092 1092
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 1216
1217 RegisterAndVerifySyncEventDelayed(sync_reg_1_); 1217 RegisterAndVerifySyncEventDelayed(sync_reg_1_);
1218 1218
1219 // Create a new manager which should fire the sync again on init. 1219 // Create a new manager which should fire the sync again on init.
1220 InitSyncEventTest(); 1220 InitSyncEventTest();
1221 EXPECT_FALSE(GetRegistration(sync_reg_1_)); 1221 EXPECT_FALSE(GetRegistration(sync_reg_1_));
1222 EXPECT_EQ(2, sync_events_called_); 1222 EXPECT_EQ(2, sync_events_called_);
1223 } 1223 }
1224 1224
1225 } // namespace content 1225 } // namespace content
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