OLD | NEW |
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_service_impl.h" | 5 #include "content/browser/background_sync/background_sync_service_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/power_monitor/power_monitor.h" | 10 #include "base/power_monitor/power_monitor.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 void RemoveWindowClient() { | 164 void RemoveWindowClient() { |
165 sw_registration_->active_version()->RemoveControllee(provider_host_.get()); | 165 sw_registration_->active_version()->RemoveControllee(provider_host_.get()); |
166 } | 166 } |
167 | 167 |
168 void CreateBackgroundSyncServiceImpl() { | 168 void CreateBackgroundSyncServiceImpl() { |
169 // Create a dummy mojo channel so that the BackgroundSyncServiceImpl can be | 169 // Create a dummy mojo channel so that the BackgroundSyncServiceImpl can be |
170 // instantiated | 170 // instantiated |
171 mojo::InterfaceRequest<BackgroundSyncService> service_request = | 171 mojo::InterfaceRequest<BackgroundSyncService> service_request = |
172 mojo::GetProxy(&service_ptr_); | 172 mojo::GetProxy(&service_ptr_); |
173 // Create a new BackgroundSyncServiceImpl bound to the dummy channel | 173 // Create a new BackgroundSyncServiceImpl bound to the dummy channel |
174 service_impl_.reset(new BackgroundSyncServiceImpl( | 174 background_sync_context_->CreateService(service_request.Pass()); |
175 background_sync_context_.get(), service_request.Pass())); | |
176 base::RunLoop().RunUntilIdle(); | 175 base::RunLoop().RunUntilIdle(); |
| 176 |
| 177 service_impl_ = *background_sync_context_->services_.begin(); |
| 178 ASSERT_TRUE(service_impl_); |
177 } | 179 } |
178 | 180 |
179 // Helpers for testing BackgroundSyncServiceImpl methods | 181 // Helpers for testing BackgroundSyncServiceImpl methods |
180 void RegisterOneShot( | 182 void RegisterOneShot( |
181 SyncRegistrationPtr sync, | 183 SyncRegistrationPtr sync, |
182 const BackgroundSyncService::RegisterCallback& callback) { | 184 const BackgroundSyncService::RegisterCallback& callback) { |
183 service_impl_->Register(sync.Pass(), sw_registration_id_, | 185 service_impl_->Register(sync.Pass(), sw_registration_id_, |
184 true /* requested_from_service_worker */, callback); | 186 true /* requested_from_service_worker */, callback); |
185 base::RunLoop().RunUntilIdle(); | 187 base::RunLoop().RunUntilIdle(); |
186 } | 188 } |
187 | 189 |
188 void RegisterOneShotFromDocument( | 190 void RegisterOneShotFromDocument( |
189 SyncRegistrationPtr sync, | 191 SyncRegistrationPtr sync, |
190 const BackgroundSyncService::RegisterCallback& callback) { | 192 const BackgroundSyncService::RegisterCallback& callback) { |
191 service_impl_->Register(sync.Pass(), sw_registration_id_, | 193 service_impl_->Register(sync.Pass(), sw_registration_id_, |
192 false /* requested_from_service_worker */, | 194 false /* requested_from_service_worker */, |
193 callback); | 195 callback); |
194 base::RunLoop().RunUntilIdle(); | 196 base::RunLoop().RunUntilIdle(); |
195 } | 197 } |
196 | 198 |
197 void UnregisterOneShot( | 199 void UnregisterOneShot( |
198 SyncRegistrationPtr sync, | 200 SyncRegistrationPtr sync, |
199 const BackgroundSyncService::UnregisterCallback& callback) { | 201 const BackgroundSyncService::UnregisterCallback& callback) { |
200 service_impl_->Unregister( | 202 service_impl_->Unregister( |
201 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, | 203 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, |
202 sync->id, sync->tag, sw_registration_id_, callback); | 204 sync->handle_id, sw_registration_id_, callback); |
203 base::RunLoop().RunUntilIdle(); | 205 base::RunLoop().RunUntilIdle(); |
204 } | 206 } |
205 | 207 |
206 void GetRegistrationOneShot( | 208 void GetRegistrationOneShot( |
207 const mojo::String& tag, | 209 const mojo::String& tag, |
208 const BackgroundSyncService::RegisterCallback& callback) { | 210 const BackgroundSyncService::RegisterCallback& callback) { |
209 service_impl_->GetRegistration( | 211 service_impl_->GetRegistration( |
210 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, tag, | 212 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, tag, |
211 sw_registration_id_, callback); | 213 sw_registration_id_, callback); |
212 base::RunLoop().RunUntilIdle(); | 214 base::RunLoop().RunUntilIdle(); |
213 } | 215 } |
214 | 216 |
215 void GetRegistrationsOneShot( | 217 void GetRegistrationsOneShot( |
216 const BackgroundSyncService::GetRegistrationsCallback& callback) { | 218 const BackgroundSyncService::GetRegistrationsCallback& callback) { |
217 service_impl_->GetRegistrations( | 219 service_impl_->GetRegistrations( |
218 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, | 220 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, |
219 sw_registration_id_, callback); | 221 sw_registration_id_, callback); |
220 base::RunLoop().RunUntilIdle(); | 222 base::RunLoop().RunUntilIdle(); |
221 } | 223 } |
222 | 224 |
223 scoped_ptr<TestBrowserThreadBundle> thread_bundle_; | 225 scoped_ptr<TestBrowserThreadBundle> thread_bundle_; |
224 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; | 226 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; |
225 scoped_ptr<EmbeddedWorkerTestHelper> embedded_worker_helper_; | 227 scoped_ptr<EmbeddedWorkerTestHelper> embedded_worker_helper_; |
226 scoped_ptr<base::PowerMonitor> power_monitor_; | 228 scoped_ptr<base::PowerMonitor> power_monitor_; |
227 scoped_refptr<BackgroundSyncContextImpl> background_sync_context_; | 229 scoped_refptr<BackgroundSyncContextImpl> background_sync_context_; |
228 scoped_ptr<ServiceWorkerProviderHost> provider_host_; | 230 scoped_ptr<ServiceWorkerProviderHost> provider_host_; |
229 int64 sw_registration_id_; | 231 int64 sw_registration_id_; |
230 scoped_refptr<ServiceWorkerRegistration> sw_registration_; | 232 scoped_refptr<ServiceWorkerRegistration> sw_registration_; |
231 BackgroundSyncServicePtr service_ptr_; | 233 BackgroundSyncServicePtr service_ptr_; |
232 scoped_ptr<BackgroundSyncServiceImpl> service_impl_; | 234 BackgroundSyncServiceImpl* |
| 235 service_impl_; // Owned by background_sync_context_ |
233 SyncRegistrationPtr default_sync_registration_; | 236 SyncRegistrationPtr default_sync_registration_; |
234 }; | 237 }; |
235 | 238 |
236 // Tests | 239 // Tests |
237 | 240 |
238 TEST_F(BackgroundSyncServiceImplTest, Register) { | 241 TEST_F(BackgroundSyncServiceImplTest, Register) { |
239 bool called = false; | 242 bool called = false; |
240 BackgroundSyncError error; | 243 BackgroundSyncError error; |
241 SyncRegistrationPtr reg; | 244 SyncRegistrationPtr reg; |
242 RegisterOneShot( | 245 RegisterOneShot( |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 } | 288 } |
286 | 289 |
287 TEST_F(BackgroundSyncServiceImplTest, Unregister) { | 290 TEST_F(BackgroundSyncServiceImplTest, Unregister) { |
288 bool unregister_called = false; | 291 bool unregister_called = false; |
289 BackgroundSyncError unregister_error; | 292 BackgroundSyncError unregister_error; |
290 SyncRegistrationPtr reg; | 293 SyncRegistrationPtr reg; |
291 UnregisterOneShot( | 294 UnregisterOneShot( |
292 default_sync_registration_.Clone(), | 295 default_sync_registration_.Clone(), |
293 base::Bind(&ErrorCallback, &unregister_called, &unregister_error)); | 296 base::Bind(&ErrorCallback, &unregister_called, &unregister_error)); |
294 EXPECT_TRUE(unregister_called); | 297 EXPECT_TRUE(unregister_called); |
295 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_FOUND, | 298 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_ALLOWED, |
296 unregister_error); | 299 unregister_error); |
297 } | 300 } |
298 | 301 |
299 TEST_F(BackgroundSyncServiceImplTest, UnregisterWithRegisteredSync) { | 302 TEST_F(BackgroundSyncServiceImplTest, UnregisterWithRegisteredSync) { |
300 bool register_called = false; | 303 bool register_called = false; |
301 bool unregister_called = false; | 304 bool unregister_called = false; |
302 BackgroundSyncError register_error; | 305 BackgroundSyncError register_error; |
303 BackgroundSyncError unregister_error; | 306 BackgroundSyncError unregister_error; |
304 SyncRegistrationPtr reg; | 307 SyncRegistrationPtr reg; |
305 RegisterOneShot(default_sync_registration_.Clone(), | 308 RegisterOneShot(default_sync_registration_.Clone(), |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 GetRegistrationsOneShot(base::Bind(&ErrorAndRegistrationListCallback, | 373 GetRegistrationsOneShot(base::Bind(&ErrorAndRegistrationListCallback, |
371 &getregistrations_called, | 374 &getregistrations_called, |
372 &getregistrations_error, &array_size)); | 375 &getregistrations_error, &array_size)); |
373 EXPECT_TRUE(getregistrations_called); | 376 EXPECT_TRUE(getregistrations_called); |
374 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, | 377 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, |
375 getregistrations_error); | 378 getregistrations_error); |
376 EXPECT_EQ(1UL, array_size); | 379 EXPECT_EQ(1UL, array_size); |
377 } | 380 } |
378 | 381 |
379 } // namespace content | 382 } // namespace content |
OLD | NEW |