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 5e177503d4ee938f9d0b59355319a939fb5eb2d1..93b0d396204bee96bee308c80a254fe7e8c14563 100644 |
--- a/content/browser/background_sync/background_sync_service_impl_unittest.cc |
+++ b/content/browser/background_sync/background_sync_service_impl_unittest.cc |
@@ -180,7 +180,17 @@ class BackgroundSyncServiceImplTest : public testing::Test { |
void RegisterOneShot( |
SyncRegistrationPtr sync, |
const BackgroundSyncService::RegisterCallback& callback) { |
- service_impl_->Register(sync.Pass(), sw_registration_id_, callback); |
+ service_impl_->Register(sync.Pass(), sw_registration_id_, |
+ true /* requested_from_service_worker */, callback); |
+ base::RunLoop().RunUntilIdle(); |
+ } |
+ |
+ void RegisterOneShotFromDocument( |
+ SyncRegistrationPtr sync, |
+ const BackgroundSyncService::RegisterCallback& callback) { |
+ service_impl_->Register(sync.Pass(), sw_registration_id_, |
+ false /* requested_from_service_worker */, |
+ callback); |
base::RunLoop().RunUntilIdle(); |
} |
@@ -249,6 +259,31 @@ TEST_F(BackgroundSyncServiceImplTest, RegisterWithoutWindow) { |
EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_ALLOWED, error); |
} |
+TEST_F(BackgroundSyncServiceImplTest, RegisterFromControlledClient) { |
+ bool called = false; |
+ BackgroundSyncError error; |
+ SyncRegistrationPtr reg; |
+ RegisterOneShotFromDocument( |
+ default_sync_registration_.Clone(), |
+ base::Bind(&ErrorAndRegistrationCallback, &called, &error, ®)); |
+ EXPECT_TRUE(called); |
+ EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, error); |
+ EXPECT_EQ("", reg->tag); |
+} |
+ |
+TEST_F(BackgroundSyncServiceImplTest, RegisterFromUncontrolledClient) { |
+ bool called = false; |
+ BackgroundSyncError error; |
+ SyncRegistrationPtr reg; |
+ RemoveWindowClient(); |
+ RegisterOneShotFromDocument( |
+ default_sync_registration_.Clone(), |
+ base::Bind(&ErrorAndRegistrationCallback, &called, &error, ®)); |
+ EXPECT_TRUE(called); |
+ EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, error); |
+ EXPECT_EQ("", reg->tag); |
+} |
+ |
TEST_F(BackgroundSyncServiceImplTest, Unregister) { |
bool unregister_called = false; |
BackgroundSyncError unregister_error; |