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

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

Issue 1613053004: [Background Sync Cleanup] Remove mention of oneshot (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@purge_periodic
Patch Set: Nit Created 4 years, 11 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
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 <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status); 60 EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status);
61 *out_registration = registration; 61 *out_registration = registration;
62 } 62 }
63 63
64 void UnregisterServiceWorkerCallback(bool* called, 64 void UnregisterServiceWorkerCallback(bool* called,
65 ServiceWorkerStatusCode code) { 65 ServiceWorkerStatusCode code) {
66 EXPECT_EQ(SERVICE_WORKER_OK, code); 66 EXPECT_EQ(SERVICE_WORKER_OK, code);
67 *called = true; 67 *called = true;
68 } 68 }
69 69
70 void OneShotSuccessfulCallback( 70 void DispatchSyncSuccessfulCallback(
71 int* count, 71 int* count,
72 const scoped_refptr<ServiceWorkerVersion>& active_version, 72 const scoped_refptr<ServiceWorkerVersion>& active_version,
73 const ServiceWorkerVersion::StatusCallback& callback) { 73 const ServiceWorkerVersion::StatusCallback& callback) {
74 *count += 1; 74 *count += 1;
75 callback.Run(SERVICE_WORKER_OK); 75 callback.Run(SERVICE_WORKER_OK);
76 } 76 }
77 77
78 void OneShotFailedCallback( 78 void DispatchSyncFailedCallback(
79 int* count, 79 int* count,
80 const scoped_refptr<ServiceWorkerVersion>& active_version, 80 const scoped_refptr<ServiceWorkerVersion>& active_version,
81 const ServiceWorkerVersion::StatusCallback& callback) { 81 const ServiceWorkerVersion::StatusCallback& callback) {
82 *count += 1; 82 *count += 1;
83 callback.Run(SERVICE_WORKER_ERROR_FAILED); 83 callback.Run(SERVICE_WORKER_ERROR_FAILED);
84 } 84 }
85 85
86 void OneShotDelayedCallback( 86 void DispatchSyncDelayedCallback(
87 int* count, 87 int* count,
88 ServiceWorkerVersion::StatusCallback* out_callback, 88 ServiceWorkerVersion::StatusCallback* out_callback,
89 const scoped_refptr<ServiceWorkerVersion>& active_version, 89 const scoped_refptr<ServiceWorkerVersion>& active_version,
90 const ServiceWorkerVersion::StatusCallback& callback) { 90 const ServiceWorkerVersion::StatusCallback& callback) {
91 *count += 1; 91 *count += 1;
92 *out_callback = callback; 92 *out_callback = callback;
93 } 93 }
94 94
95 void NotifyWhenFinishedCallback(bool* was_called, 95 void NotifyWhenFinishedCallback(bool* was_called,
96 BackgroundSyncStatus* out_status, 96 BackgroundSyncStatus* out_status,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 141
142 DISALLOW_COPY_AND_ASSIGN(TestBackgroundSyncController); 142 DISALLOW_COPY_AND_ASSIGN(TestBackgroundSyncController);
143 }; 143 };
144 144
145 } // namespace 145 } // namespace
146 146
147 // A BackgroundSyncManager that can simulate delaying and corrupting the backend 147 // A BackgroundSyncManager that can simulate delaying and corrupting the backend
148 // storage and service worker onsync events. 148 // storage and service worker onsync events.
149 class TestBackgroundSyncManager : public BackgroundSyncManager { 149 class TestBackgroundSyncManager : public BackgroundSyncManager {
150 public: 150 public:
151 using OneShotCallback = 151 using DispatchSyncCallback =
152 base::Callback<void(const scoped_refptr<ServiceWorkerVersion>&, 152 base::Callback<void(const scoped_refptr<ServiceWorkerVersion>&,
153 const ServiceWorkerVersion::StatusCallback&)>; 153 const ServiceWorkerVersion::StatusCallback&)>;
154 154
155 explicit TestBackgroundSyncManager( 155 explicit TestBackgroundSyncManager(
156 const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context) 156 const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context)
157 : BackgroundSyncManager(service_worker_context) { 157 : BackgroundSyncManager(service_worker_context) {
158 } 158 }
159 159
160 void DoInit() { Init(); } 160 void DoInit() { Init(); }
161 161
(...skipping 19 matching lines...) Expand all
181 continuation_.Run(); 181 continuation_.Run();
182 continuation_.Reset(); 182 continuation_.Reset();
183 } 183 }
184 184
185 void ClearDelayedTask() { delayed_task_.Reset(); } 185 void ClearDelayedTask() { delayed_task_.Reset(); }
186 186
187 void set_corrupt_backend(bool corrupt_backend) { 187 void set_corrupt_backend(bool corrupt_backend) {
188 corrupt_backend_ = corrupt_backend; 188 corrupt_backend_ = corrupt_backend;
189 } 189 }
190 void set_delay_backend(bool delay_backend) { delay_backend_ = delay_backend; } 190 void set_delay_backend(bool delay_backend) { delay_backend_ = delay_backend; }
191 void set_one_shot_callback(const OneShotCallback& callback) { 191 void set_dispatch_sync_callback(const DispatchSyncCallback& callback) {
192 one_shot_callback_ = callback; 192 dispatch_sync_callback_ = callback;
193 } 193 }
194 194
195 base::Closure delayed_task() const { return delayed_task_; } 195 base::Closure delayed_task() const { return delayed_task_; }
196 base::TimeDelta delayed_task_delta() const { return delayed_task_delta_; } 196 base::TimeDelta delayed_task_delta() const { return delayed_task_delta_; }
197 197
198 BackgroundSyncEventLastChance last_chance() const { return last_chance_; } 198 BackgroundSyncEventLastChance last_chance() const { return last_chance_; }
199 199
200 void set_has_main_frame_provider_host(bool value) { 200 void set_has_main_frame_provider_host(bool value) {
201 has_main_frame_provider_host_ = value; 201 has_main_frame_provider_host_ = value;
202 } 202 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 } 242 }
243 continuation_ = 243 continuation_ =
244 base::Bind(&TestBackgroundSyncManager::GetDataFromBackendContinue, 244 base::Bind(&TestBackgroundSyncManager::GetDataFromBackendContinue,
245 base::Unretained(this), key, callback); 245 base::Unretained(this), key, callback);
246 if (delay_backend_) 246 if (delay_backend_)
247 return; 247 return;
248 248
249 Continue(); 249 Continue();
250 } 250 }
251 251
252 void FireOneShotSync( 252 void DispatchSyncEvent(
253 BackgroundSyncRegistrationHandle::HandleId handle_id, 253 BackgroundSyncRegistrationHandle::HandleId handle_id,
254 const scoped_refptr<ServiceWorkerVersion>& active_version, 254 const scoped_refptr<ServiceWorkerVersion>& active_version,
255 BackgroundSyncEventLastChance last_chance, 255 BackgroundSyncEventLastChance last_chance,
256 const ServiceWorkerVersion::StatusCallback& callback) override { 256 const ServiceWorkerVersion::StatusCallback& callback) override {
257 ASSERT_FALSE(one_shot_callback_.is_null()); 257 ASSERT_FALSE(dispatch_sync_callback_.is_null());
258 last_chance_ = last_chance; 258 last_chance_ = last_chance;
259 one_shot_callback_.Run(active_version, callback); 259 dispatch_sync_callback_.Run(active_version, callback);
260 } 260 }
261 261
262 void ScheduleDelayedTask(const base::Closure& callback, 262 void ScheduleDelayedTask(const base::Closure& callback,
263 base::TimeDelta delay) override { 263 base::TimeDelta delay) override {
264 delayed_task_ = callback; 264 delayed_task_ = callback;
265 delayed_task_delta_ = delay; 265 delayed_task_delta_ = delay;
266 } 266 }
267 267
268 void HasMainFrameProviderHost(const GURL& origin, 268 void HasMainFrameProviderHost(const GURL& origin,
269 const BoolCallback& callback) override { 269 const BoolCallback& callback) override {
270 callback.Run(has_main_frame_provider_host_); 270 callback.Run(has_main_frame_provider_host_);
271 } 271 }
272 272
273 private: 273 private:
274 bool corrupt_backend_ = false; 274 bool corrupt_backend_ = false;
275 bool delay_backend_ = false; 275 bool delay_backend_ = false;
276 bool has_main_frame_provider_host_ = true; 276 bool has_main_frame_provider_host_ = true;
277 BackgroundSyncEventLastChance last_chance_ = 277 BackgroundSyncEventLastChance last_chance_ =
278 BackgroundSyncEventLastChance::IS_NOT_LAST_CHANCE; 278 BackgroundSyncEventLastChance::IS_NOT_LAST_CHANCE;
279 base::Closure continuation_; 279 base::Closure continuation_;
280 OneShotCallback one_shot_callback_; 280 DispatchSyncCallback dispatch_sync_callback_;
281 base::Closure delayed_task_; 281 base::Closure delayed_task_;
282 base::TimeDelta delayed_task_delta_; 282 base::TimeDelta delayed_task_delta_;
283 }; 283 };
284 284
285 class BackgroundSyncManagerTest : public testing::Test { 285 class BackgroundSyncManagerTest : public testing::Test {
286 public: 286 public:
287 BackgroundSyncManagerTest() 287 BackgroundSyncManagerTest()
288 : browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP), 288 : browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP),
289 network_change_notifier_(net::NetworkChangeNotifier::CreateMock()) { 289 network_change_notifier_(net::NetworkChangeNotifier::CreateMock()) {
290 sync_options_1_.tag = "foo"; 290 sync_options_1_.tag = "foo";
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 EXPECT_TRUE(called); 576 EXPECT_TRUE(called);
577 } 577 }
578 578
579 GURL PatternForSWId(int64_t sw_id) { 579 GURL PatternForSWId(int64_t sw_id) {
580 EXPECT_TRUE(sw_id == sw_registration_id_1_ || 580 EXPECT_TRUE(sw_id == sw_registration_id_1_ ||
581 sw_id == sw_registration_id_2_); 581 sw_id == sw_registration_id_2_);
582 return sw_id == sw_registration_id_1_ ? GURL(kPattern1) : GURL(kPattern2); 582 return sw_id == sw_registration_id_1_ ? GURL(kPattern1) : GURL(kPattern2);
583 } 583 }
584 584
585 void SetupForSyncEvent( 585 void SetupForSyncEvent(
586 const TestBackgroundSyncManager::OneShotCallback& callback) { 586 const TestBackgroundSyncManager::DispatchSyncCallback& callback) {
587 test_background_sync_manager_->set_one_shot_callback(callback); 587 test_background_sync_manager_->set_dispatch_sync_callback(callback);
588 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 588 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
589 } 589 }
590 590
591 void InitSyncEventTest() { 591 void InitSyncEventTest() {
592 SetupForSyncEvent( 592 SetupForSyncEvent(
593 base::Bind(OneShotSuccessfulCallback, &sync_events_called_)); 593 base::Bind(DispatchSyncSuccessfulCallback, &sync_events_called_));
594 } 594 }
595 595
596 void InitFailedSyncEventTest() { 596 void InitFailedSyncEventTest() {
597 SetupForSyncEvent(base::Bind(OneShotFailedCallback, &sync_events_called_)); 597 SetupForSyncEvent(
598 base::Bind(DispatchSyncFailedCallback, &sync_events_called_));
598 } 599 }
599 600
600 void InitDelayedSyncEventTest() { 601 void InitDelayedSyncEventTest() {
601 SetupForSyncEvent(base::Bind(OneShotDelayedCallback, &sync_events_called_, 602 SetupForSyncEvent(base::Bind(DispatchSyncDelayedCallback,
602 &sync_fired_callback_)); 603 &sync_events_called_, &sync_fired_callback_));
603 } 604 }
604 605
605 void RegisterAndVerifySyncEventDelayed( 606 void RegisterAndVerifySyncEventDelayed(
606 const BackgroundSyncRegistrationOptions& sync_options) { 607 const BackgroundSyncRegistrationOptions& sync_options) {
607 int sync_events_called = sync_events_called_; 608 int sync_events_called = sync_events_called_;
608 EXPECT_TRUE(sync_fired_callback_.is_null()); 609 EXPECT_TRUE(sync_fired_callback_.is_null());
609 610
610 EXPECT_TRUE(Register(sync_options)); 611 EXPECT_TRUE(Register(sync_options));
611 612
612 EXPECT_EQ(sync_events_called + 1, sync_events_called_); 613 EXPECT_EQ(sync_events_called + 1, sync_events_called_);
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 TEST_F(BackgroundSyncManagerTest, EmptyTagSupported) { 1028 TEST_F(BackgroundSyncManagerTest, EmptyTagSupported) {
1028 sync_options_1_.tag = "a"; 1029 sync_options_1_.tag = "a";
1029 EXPECT_TRUE(Register(sync_options_1_)); 1030 EXPECT_TRUE(Register(sync_options_1_));
1030 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1031 EXPECT_TRUE(GetRegistration(sync_options_1_));
1031 EXPECT_TRUE( 1032 EXPECT_TRUE(
1032 sync_options_1_.Equals(*callback_registration_handle_->options())); 1033 sync_options_1_.Equals(*callback_registration_handle_->options()));
1033 EXPECT_TRUE(Unregister(callback_registration_handle_.get())); 1034 EXPECT_TRUE(Unregister(callback_registration_handle_.get()));
1034 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1035 EXPECT_FALSE(GetRegistration(sync_options_1_));
1035 } 1036 }
1036 1037
1037 TEST_F(BackgroundSyncManagerTest, OneShotFiresOnRegistration) { 1038 TEST_F(BackgroundSyncManagerTest, FiresOnRegistration) {
1038 InitSyncEventTest(); 1039 InitSyncEventTest();
1039 1040
1040 EXPECT_TRUE(Register(sync_options_1_)); 1041 EXPECT_TRUE(Register(sync_options_1_));
1041 EXPECT_EQ(1, sync_events_called_); 1042 EXPECT_EQ(1, sync_events_called_);
1042 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1043 EXPECT_FALSE(GetRegistration(sync_options_1_));
1043 } 1044 }
1044 1045
1045 TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedAfterEventSuccess) { 1046 TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedAfterEventSuccess) {
1046 InitSyncEventTest(); 1047 InitSyncEventTest();
1047 1048
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 EXPECT_FALSE(Register(sync_options_2_)); 1353 EXPECT_FALSE(Register(sync_options_2_));
1353 EXPECT_FALSE(callback_finished_called_); 1354 EXPECT_FALSE(callback_finished_called_);
1354 test_background_sync_manager_->set_corrupt_backend(false); 1355 test_background_sync_manager_->set_corrupt_backend(false);
1355 1356
1356 // Successfully complete the firing event. 1357 // Successfully complete the firing event.
1357 sync_fired_callback_.Run(SERVICE_WORKER_OK); 1358 sync_fired_callback_.Run(SERVICE_WORKER_OK);
1358 base::RunLoop().RunUntilIdle(); 1359 base::RunLoop().RunUntilIdle();
1359 EXPECT_EQ(BackgroundSyncState::SUCCESS, FinishedState()); 1360 EXPECT_EQ(BackgroundSyncState::SUCCESS, FinishedState());
1360 } 1361 }
1361 1362
1362 TEST_F(BackgroundSyncManagerTest, OneShotFiresOnNetworkChange) { 1363 TEST_F(BackgroundSyncManagerTest, FiresOnNetworkChange) {
1363 InitSyncEventTest(); 1364 InitSyncEventTest();
1364 1365
1365 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1366 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1366 EXPECT_TRUE(Register(sync_options_1_)); 1367 EXPECT_TRUE(Register(sync_options_1_));
1367 EXPECT_EQ(0, sync_events_called_); 1368 EXPECT_EQ(0, sync_events_called_);
1368 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1369 EXPECT_TRUE(GetRegistration(sync_options_1_));
1369 1370
1370 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1371 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1371 base::RunLoop().RunUntilIdle(); 1372 base::RunLoop().RunUntilIdle();
1372 EXPECT_EQ(1, sync_events_called_); 1373 EXPECT_EQ(1, sync_events_called_);
1373 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1374 EXPECT_FALSE(GetRegistration(sync_options_1_));
1374 } 1375 }
1375 1376
1376 TEST_F(BackgroundSyncManagerTest, MultipleOneShotsFireOnNetworkChange) { 1377 TEST_F(BackgroundSyncManagerTest, MultipleRegistrationsFireOnNetworkChange) {
1377 InitSyncEventTest(); 1378 InitSyncEventTest();
1378 1379
1379 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1380 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1380 EXPECT_TRUE(Register(sync_options_1_)); 1381 EXPECT_TRUE(Register(sync_options_1_));
1381 EXPECT_TRUE(Register(sync_options_2_)); 1382 EXPECT_TRUE(Register(sync_options_2_));
1382 EXPECT_EQ(0, sync_events_called_); 1383 EXPECT_EQ(0, sync_events_called_);
1383 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1384 EXPECT_TRUE(GetRegistration(sync_options_1_));
1384 EXPECT_TRUE(GetRegistration(sync_options_2_)); 1385 EXPECT_TRUE(GetRegistration(sync_options_2_));
1385 1386
1386 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1387 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1387 1388
1388 EXPECT_EQ(2, sync_events_called_); 1389 EXPECT_EQ(2, sync_events_called_);
1389 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1390 EXPECT_FALSE(GetRegistration(sync_options_1_));
1390 EXPECT_FALSE(GetRegistration(sync_options_2_)); 1391 EXPECT_FALSE(GetRegistration(sync_options_2_));
1391 } 1392 }
1392 1393
1393 TEST_F(BackgroundSyncManagerTest, OneShotFiresOnManagerRestart) { 1394 TEST_F(BackgroundSyncManagerTest, FiresOnManagerRestart) {
1394 InitSyncEventTest(); 1395 InitSyncEventTest();
1395 1396
1396 // Initially the event won't run because there is no network. 1397 // Initially the event won't run because there is no network.
1397 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1398 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1398 EXPECT_TRUE(Register(sync_options_1_)); 1399 EXPECT_TRUE(Register(sync_options_1_));
1399 EXPECT_EQ(0, sync_events_called_); 1400 EXPECT_EQ(0, sync_events_called_);
1400 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1401 EXPECT_TRUE(GetRegistration(sync_options_1_));
1401 1402
1402 // Simulate closing the browser. 1403 // Simulate closing the browser.
1403 DeleteBackgroundSyncManager(); 1404 DeleteBackgroundSyncManager();
1404 1405
1405 // The next time the manager is started, the network is good. 1406 // The next time the manager is started, the network is good.
1406 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1407 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1407 SetupBackgroundSyncManager(); 1408 SetupBackgroundSyncManager();
1408 InitSyncEventTest(); 1409 InitSyncEventTest();
1409 1410
1410 // The event should have fired. 1411 // The event should have fired.
1411 EXPECT_EQ(1, sync_events_called_); 1412 EXPECT_EQ(1, sync_events_called_);
1412 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1413 EXPECT_FALSE(GetRegistration(sync_options_1_));
1413 } 1414 }
1414 1415
1415 TEST_F(BackgroundSyncManagerTest, FailedOneShotShouldBeRemoved) { 1416 TEST_F(BackgroundSyncManagerTest, FailedRegistrationShouldBeRemoved) {
1416 InitFailedSyncEventTest(); 1417 InitFailedSyncEventTest();
1417 1418
1418 EXPECT_TRUE(Register(sync_options_1_)); 1419 EXPECT_TRUE(Register(sync_options_1_));
1419 EXPECT_EQ(1, sync_events_called_); 1420 EXPECT_EQ(1, sync_events_called_);
1420 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1421 EXPECT_FALSE(GetRegistration(sync_options_1_));
1421 } 1422 }
1422 1423
1423 TEST_F(BackgroundSyncManagerTest, FailedOneShotReregisteredAndFires) { 1424 TEST_F(BackgroundSyncManagerTest, FailedRegistrationReregisteredAndFires) {
1424 InitFailedSyncEventTest(); 1425 InitFailedSyncEventTest();
1425 1426
1426 // The initial sync event fails. 1427 // The initial sync event fails.
1427 EXPECT_TRUE(Register(sync_options_1_)); 1428 EXPECT_TRUE(Register(sync_options_1_));
1428 EXPECT_EQ(1, sync_events_called_); 1429 EXPECT_EQ(1, sync_events_called_);
1429 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1430 EXPECT_FALSE(GetRegistration(sync_options_1_));
1430 1431
1431 InitSyncEventTest(); 1432 InitSyncEventTest();
1432 1433
1433 // Reregistering should cause the sync event to fire again, this time 1434 // Reregistering should cause the sync event to fire again, this time
1434 // succeeding. 1435 // succeeding.
1435 EXPECT_TRUE(Register(sync_options_1_)); 1436 EXPECT_TRUE(Register(sync_options_1_));
1436 EXPECT_EQ(2, sync_events_called_); 1437 EXPECT_EQ(2, sync_events_called_);
1437 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1438 EXPECT_FALSE(GetRegistration(sync_options_1_));
1438 } 1439 }
1439 1440
1440 TEST_F(BackgroundSyncManagerTest, DelayOneShotMidSync) { 1441 TEST_F(BackgroundSyncManagerTest, DelayMidSync) {
1441 InitDelayedSyncEventTest(); 1442 InitDelayedSyncEventTest();
1442 1443
1443 RegisterAndVerifySyncEventDelayed(sync_options_1_); 1444 RegisterAndVerifySyncEventDelayed(sync_options_1_);
1444 1445
1445 // Finish firing the event and verify that the registration is removed. 1446 // Finish firing the event and verify that the registration is removed.
1446 sync_fired_callback_.Run(SERVICE_WORKER_OK); 1447 sync_fired_callback_.Run(SERVICE_WORKER_OK);
1447 base::RunLoop().RunUntilIdle(); 1448 base::RunLoop().RunUntilIdle();
1448 EXPECT_EQ(1, sync_events_called_); 1449 EXPECT_EQ(1, sync_events_called_);
1449 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1450 EXPECT_FALSE(GetRegistration(sync_options_1_));
1450 } 1451 }
1451 1452
1452 TEST_F(BackgroundSyncManagerTest, OverwriteRegistrationMidSync) { 1453 TEST_F(BackgroundSyncManagerTest, OverwriteRegistrationMidSync) {
1453 InitDelayedSyncEventTest(); 1454 InitDelayedSyncEventTest();
1454 1455
1455 sync_options_1_.network_state = NETWORK_STATE_ANY; 1456 sync_options_1_.network_state = NETWORK_STATE_ANY;
1456 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); 1457 SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE);
1457 1458
1458 RegisterAndVerifySyncEventDelayed(sync_options_1_); 1459 RegisterAndVerifySyncEventDelayed(sync_options_1_);
1459 1460
1460 // Don't delay the next sync. 1461 // Don't delay the next sync.
1461 test_background_sync_manager_->set_one_shot_callback( 1462 test_background_sync_manager_->set_dispatch_sync_callback(
1462 base::Bind(OneShotSuccessfulCallback, &sync_events_called_)); 1463 base::Bind(DispatchSyncSuccessfulCallback, &sync_events_called_));
1463 1464
1464 // Register a different sync event with the same tag, overwriting the first. 1465 // Register a different sync event with the same tag, overwriting the first.
1465 sync_options_1_.network_state = NETWORK_STATE_ONLINE; 1466 sync_options_1_.network_state = NETWORK_STATE_ONLINE;
1466 EXPECT_TRUE(Register(sync_options_1_)); 1467 EXPECT_TRUE(Register(sync_options_1_));
1467 1468
1468 // The new sync event won't run as the network requirements aren't met. 1469 // The new sync event won't run as the network requirements aren't met.
1469 EXPECT_EQ(1, sync_events_called_); 1470 EXPECT_EQ(1, sync_events_called_);
1470 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1471 EXPECT_TRUE(GetRegistration(sync_options_1_));
1471 1472
1472 // Finish the first event, note that the second is still registered. 1473 // Finish the first event, note that the second is still registered.
1473 sync_fired_callback_.Run(SERVICE_WORKER_OK); 1474 sync_fired_callback_.Run(SERVICE_WORKER_OK);
1474 EXPECT_EQ(1, sync_events_called_); 1475 EXPECT_EQ(1, sync_events_called_);
1475 EXPECT_TRUE(GetRegistration(sync_options_1_)); 1476 EXPECT_TRUE(GetRegistration(sync_options_1_));
1476 1477
1477 // Change the network and the second should run. 1478 // Change the network and the second should run.
1478 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI); 1479 SetNetwork(net::NetworkChangeNotifier::CONNECTION_WIFI);
1479 base::RunLoop().RunUntilIdle(); 1480 base::RunLoop().RunUntilIdle();
1480 EXPECT_EQ(2, sync_events_called_); 1481 EXPECT_EQ(2, sync_events_called_);
1481 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1482 EXPECT_FALSE(GetRegistration(sync_options_1_));
1482 } 1483 }
1483 1484
1484 TEST_F(BackgroundSyncManagerTest, UnregisterOneShotMidSync) { 1485 TEST_F(BackgroundSyncManagerTest, UnregisterMidSync) {
1485 InitDelayedSyncEventTest(); 1486 InitDelayedSyncEventTest();
1486 1487
1487 RegisterAndVerifySyncEventDelayed(sync_options_1_); 1488 RegisterAndVerifySyncEventDelayed(sync_options_1_);
1488 1489
1489 EXPECT_TRUE(Unregister(callback_registration_handle_.get())); 1490 EXPECT_TRUE(Unregister(callback_registration_handle_.get()));
1490 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1491 EXPECT_FALSE(GetRegistration(sync_options_1_));
1491 1492
1492 sync_fired_callback_.Run(SERVICE_WORKER_OK); 1493 sync_fired_callback_.Run(SERVICE_WORKER_OK);
1493 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1494 EXPECT_FALSE(GetRegistration(sync_options_1_));
1494 } 1495 }
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1854 // Run it again. 1855 // Run it again.
1855 test_clock_->Advance(test_background_sync_manager_->delayed_task_delta()); 1856 test_clock_->Advance(test_background_sync_manager_->delayed_task_delta());
1856 test_background_sync_manager_->delayed_task().Run(); 1857 test_background_sync_manager_->delayed_task().Run();
1857 base::RunLoop().RunUntilIdle(); 1858 base::RunLoop().RunUntilIdle();
1858 EXPECT_FALSE(GetRegistration(sync_options_1_)); 1859 EXPECT_FALSE(GetRegistration(sync_options_1_));
1859 EXPECT_EQ(BackgroundSyncEventLastChance::IS_LAST_CHANCE, 1860 EXPECT_EQ(BackgroundSyncEventLastChance::IS_LAST_CHANCE,
1860 test_background_sync_manager_->last_chance()); 1861 test_background_sync_manager_->last_chance());
1861 } 1862 }
1862 1863
1863 } // namespace content 1864 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698