| Index: content/browser/background_sync/background_sync_service_impl_unittest.cc
|
| diff --git a/content/browser/background_sync/background_sync_service_impl_unittest.cc b/content/browser/background_sync/background_sync_service_impl_unittest.cc
|
| index 346bdd17c3646461f96130901ed8456fd3ebbf22..ca2e45ce4234418c58f00a7f6ccc91dd943ca1c8 100644
|
| --- a/content/browser/background_sync/background_sync_service_impl_unittest.cc
|
| +++ b/content/browser/background_sync/background_sync_service_impl_unittest.cc
|
| @@ -59,6 +59,16 @@ void ErrorAndRegistrationCallback(bool* called,
|
| *out_registration = registration.Clone();
|
| }
|
|
|
| +void ErrorAndStateCallback(bool* called,
|
| + BackgroundSyncError* out_error,
|
| + BackgroundSyncState* out_state,
|
| + BackgroundSyncError error,
|
| + BackgroundSyncState state) {
|
| + *called = true;
|
| + *out_error = error;
|
| + *out_state = state;
|
| +}
|
| +
|
| void ErrorCallback(bool* called,
|
| BackgroundSyncError* out_error,
|
| BackgroundSyncError error) {
|
| @@ -197,11 +207,11 @@ class BackgroundSyncServiceImplTest : public testing::Test {
|
| }
|
|
|
| void UnregisterOneShot(
|
| - SyncRegistrationPtr sync,
|
| + int32 handle_id,
|
| const BackgroundSyncService::UnregisterCallback& callback) {
|
| service_impl_->Unregister(
|
| BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT,
|
| - sync->handle_id, sw_registration_id_, callback);
|
| + handle_id, sw_registration_id_, callback);
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| @@ -222,6 +232,13 @@ class BackgroundSyncServiceImplTest : public testing::Test {
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| + void NotifyWhenDone(
|
| + int32 handle_id,
|
| + const BackgroundSyncService::NotifyWhenDoneCallback& callback) {
|
| + service_impl_->NotifyWhenDone(handle_id, callback);
|
| + base::RunLoop().RunUntilIdle();
|
| + }
|
| +
|
| scoped_ptr<TestBrowserThreadBundle> thread_bundle_;
|
| scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_;
|
| scoped_ptr<EmbeddedWorkerTestHelper> embedded_worker_helper_;
|
| @@ -292,7 +309,7 @@ TEST_F(BackgroundSyncServiceImplTest, Unregister) {
|
| BackgroundSyncError unregister_error;
|
| SyncRegistrationPtr reg;
|
| UnregisterOneShot(
|
| - default_sync_registration_.Clone(),
|
| + default_sync_registration_->handle_id,
|
| base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
|
| EXPECT_TRUE(unregister_called);
|
| EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_ALLOWED,
|
| @@ -310,8 +327,9 @@ TEST_F(BackgroundSyncServiceImplTest, UnregisterWithRegisteredSync) {
|
| ®ister_error, ®));
|
| EXPECT_TRUE(register_called);
|
| EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, register_error);
|
| - UnregisterOneShot(reg.Pass(), base::Bind(&ErrorCallback, &unregister_called,
|
| - &unregister_error));
|
| + UnregisterOneShot(
|
| + reg->handle_id,
|
| + base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
|
| EXPECT_TRUE(unregister_called);
|
| EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, unregister_error);
|
| }
|
| @@ -379,4 +397,37 @@ TEST_F(BackgroundSyncServiceImplTest, GetRegistrationsWithRegisteredSync) {
|
| EXPECT_EQ(1UL, array_size);
|
| }
|
|
|
| +TEST_F(BackgroundSyncServiceImplTest, NotifyWhenDone) {
|
| + // Register a sync event.
|
| + bool register_called = false;
|
| + BackgroundSyncError register_error;
|
| + SyncRegistrationPtr reg;
|
| + RegisterOneShot(default_sync_registration_.Clone(),
|
| + base::Bind(&ErrorAndRegistrationCallback, ®ister_called,
|
| + ®ister_error, ®));
|
| + EXPECT_TRUE(register_called);
|
| + EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, register_error);
|
| +
|
| + // Unregister it.
|
| + bool unregister_called = false;
|
| + BackgroundSyncError unregister_error;
|
| + UnregisterOneShot(
|
| + reg->handle_id,
|
| + base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
|
| + EXPECT_TRUE(unregister_called);
|
| + EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, unregister_error);
|
| +
|
| + // Call NotifyWhenDone and verify that it calls back with unregistered.
|
| + bool notify_done_called = false;
|
| + BackgroundSyncError notify_done_error = BACKGROUND_SYNC_ERROR_NONE;
|
| + BackgroundSyncState notify_done_sync_state = BACKGROUND_SYNC_STATE_SUCCESS;
|
| +
|
| + NotifyWhenDone(reg->handle_id,
|
| + base::Bind(&ErrorAndStateCallback, ¬ify_done_called,
|
| + ¬ify_done_error, ¬ify_done_sync_state));
|
| + EXPECT_TRUE(notify_done_called);
|
| + EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, notify_done_error);
|
| + EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, notify_done_sync_state);
|
| +}
|
| +
|
| } // namespace content
|
|
|