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

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

Issue 1344843003: [BackgroundSync] Add browser side support for SyncRegistration.done (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ncn_max
Patch Set: Address comments from PS7 Created 5 years, 3 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_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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 void ErrorAndRegistrationCallback(bool* called, 52 void ErrorAndRegistrationCallback(bool* called,
53 BackgroundSyncError* out_error, 53 BackgroundSyncError* out_error,
54 SyncRegistrationPtr* out_registration, 54 SyncRegistrationPtr* out_registration,
55 BackgroundSyncError error, 55 BackgroundSyncError error,
56 const SyncRegistrationPtr& registration) { 56 const SyncRegistrationPtr& registration) {
57 *called = true; 57 *called = true;
58 *out_error = error; 58 *out_error = error;
59 *out_registration = registration.Clone(); 59 *out_registration = registration.Clone();
60 } 60 }
61 61
62 void ErrorAndStateCallback(bool* called,
63 BackgroundSyncError* out_error,
64 BackgroundSyncState* out_state,
65 BackgroundSyncError error,
66 BackgroundSyncState state) {
67 *called = true;
68 *out_error = error;
69 *out_state = state;
70 }
71
62 void ErrorCallback(bool* called, 72 void ErrorCallback(bool* called,
63 BackgroundSyncError* out_error, 73 BackgroundSyncError* out_error,
64 BackgroundSyncError error) { 74 BackgroundSyncError error) {
65 *called = true; 75 *called = true;
66 *out_error = error; 76 *out_error = error;
67 } 77 }
68 78
69 void ErrorAndRegistrationListCallback( 79 void ErrorAndRegistrationListCallback(
70 bool* called, 80 bool* called,
71 BackgroundSyncError* out_error, 81 BackgroundSyncError* out_error,
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 void RegisterOneShotFromDocument( 200 void RegisterOneShotFromDocument(
191 SyncRegistrationPtr sync, 201 SyncRegistrationPtr sync,
192 const BackgroundSyncService::RegisterCallback& callback) { 202 const BackgroundSyncService::RegisterCallback& callback) {
193 service_impl_->Register(sync.Pass(), sw_registration_id_, 203 service_impl_->Register(sync.Pass(), sw_registration_id_,
194 false /* requested_from_service_worker */, 204 false /* requested_from_service_worker */,
195 callback); 205 callback);
196 base::RunLoop().RunUntilIdle(); 206 base::RunLoop().RunUntilIdle();
197 } 207 }
198 208
199 void UnregisterOneShot( 209 void UnregisterOneShot(
200 SyncRegistrationPtr sync, 210 int32 handle_id,
201 const BackgroundSyncService::UnregisterCallback& callback) { 211 const BackgroundSyncService::UnregisterCallback& callback) {
202 service_impl_->Unregister( 212 service_impl_->Unregister(
203 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, 213 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT,
204 sync->handle_id, sw_registration_id_, callback); 214 handle_id, sw_registration_id_, callback);
205 base::RunLoop().RunUntilIdle(); 215 base::RunLoop().RunUntilIdle();
206 } 216 }
207 217
208 void GetRegistrationOneShot( 218 void GetRegistrationOneShot(
209 const mojo::String& tag, 219 const mojo::String& tag,
210 const BackgroundSyncService::RegisterCallback& callback) { 220 const BackgroundSyncService::RegisterCallback& callback) {
211 service_impl_->GetRegistration( 221 service_impl_->GetRegistration(
212 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, tag, 222 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, tag,
213 sw_registration_id_, callback); 223 sw_registration_id_, callback);
214 base::RunLoop().RunUntilIdle(); 224 base::RunLoop().RunUntilIdle();
215 } 225 }
216 226
217 void GetRegistrationsOneShot( 227 void GetRegistrationsOneShot(
218 const BackgroundSyncService::GetRegistrationsCallback& callback) { 228 const BackgroundSyncService::GetRegistrationsCallback& callback) {
219 service_impl_->GetRegistrations( 229 service_impl_->GetRegistrations(
220 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT, 230 BackgroundSyncPeriodicity::BACKGROUND_SYNC_PERIODICITY_ONE_SHOT,
221 sw_registration_id_, callback); 231 sw_registration_id_, callback);
222 base::RunLoop().RunUntilIdle(); 232 base::RunLoop().RunUntilIdle();
223 } 233 }
224 234
235 void NotifyWhenDone(
236 int32 handle_id,
237 const BackgroundSyncService::NotifyWhenDoneCallback& callback) {
238 service_impl_->NotifyWhenDone(handle_id, callback);
239 base::RunLoop().RunUntilIdle();
240 }
241
225 scoped_ptr<TestBrowserThreadBundle> thread_bundle_; 242 scoped_ptr<TestBrowserThreadBundle> thread_bundle_;
226 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; 243 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_;
227 scoped_ptr<EmbeddedWorkerTestHelper> embedded_worker_helper_; 244 scoped_ptr<EmbeddedWorkerTestHelper> embedded_worker_helper_;
228 scoped_ptr<base::PowerMonitor> power_monitor_; 245 scoped_ptr<base::PowerMonitor> power_monitor_;
229 scoped_refptr<BackgroundSyncContextImpl> background_sync_context_; 246 scoped_refptr<BackgroundSyncContextImpl> background_sync_context_;
230 scoped_ptr<ServiceWorkerProviderHost> provider_host_; 247 scoped_ptr<ServiceWorkerProviderHost> provider_host_;
231 int64 sw_registration_id_; 248 int64 sw_registration_id_;
232 scoped_refptr<ServiceWorkerRegistration> sw_registration_; 249 scoped_refptr<ServiceWorkerRegistration> sw_registration_;
233 BackgroundSyncServicePtr service_ptr_; 250 BackgroundSyncServicePtr service_ptr_;
234 BackgroundSyncServiceImpl* 251 BackgroundSyncServiceImpl*
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 EXPECT_TRUE(called); 302 EXPECT_TRUE(called);
286 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, error); 303 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, error);
287 EXPECT_EQ("", reg->tag); 304 EXPECT_EQ("", reg->tag);
288 } 305 }
289 306
290 TEST_F(BackgroundSyncServiceImplTest, Unregister) { 307 TEST_F(BackgroundSyncServiceImplTest, Unregister) {
291 bool unregister_called = false; 308 bool unregister_called = false;
292 BackgroundSyncError unregister_error; 309 BackgroundSyncError unregister_error;
293 SyncRegistrationPtr reg; 310 SyncRegistrationPtr reg;
294 UnregisterOneShot( 311 UnregisterOneShot(
295 default_sync_registration_.Clone(), 312 default_sync_registration_->handle_id,
296 base::Bind(&ErrorCallback, &unregister_called, &unregister_error)); 313 base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
297 EXPECT_TRUE(unregister_called); 314 EXPECT_TRUE(unregister_called);
298 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_ALLOWED, 315 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NOT_ALLOWED,
299 unregister_error); 316 unregister_error);
300 } 317 }
301 318
302 TEST_F(BackgroundSyncServiceImplTest, UnregisterWithRegisteredSync) { 319 TEST_F(BackgroundSyncServiceImplTest, UnregisterWithRegisteredSync) {
303 bool register_called = false; 320 bool register_called = false;
304 bool unregister_called = false; 321 bool unregister_called = false;
305 BackgroundSyncError register_error; 322 BackgroundSyncError register_error;
306 BackgroundSyncError unregister_error; 323 BackgroundSyncError unregister_error;
307 SyncRegistrationPtr reg; 324 SyncRegistrationPtr reg;
308 RegisterOneShot(default_sync_registration_.Clone(), 325 RegisterOneShot(default_sync_registration_.Clone(),
309 base::Bind(&ErrorAndRegistrationCallback, &register_called, 326 base::Bind(&ErrorAndRegistrationCallback, &register_called,
310 &register_error, &reg)); 327 &register_error, &reg));
311 EXPECT_TRUE(register_called); 328 EXPECT_TRUE(register_called);
312 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, register_error); 329 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, register_error);
313 UnregisterOneShot(reg.Pass(), base::Bind(&ErrorCallback, &unregister_called, 330 UnregisterOneShot(
314 &unregister_error)); 331 reg->handle_id,
332 base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
315 EXPECT_TRUE(unregister_called); 333 EXPECT_TRUE(unregister_called);
316 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, unregister_error); 334 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, unregister_error);
317 } 335 }
318 336
319 TEST_F(BackgroundSyncServiceImplTest, GetRegistration) { 337 TEST_F(BackgroundSyncServiceImplTest, GetRegistration) {
320 bool called = false; 338 bool called = false;
321 BackgroundSyncError error; 339 BackgroundSyncError error;
322 SyncRegistrationPtr reg; 340 SyncRegistrationPtr reg;
323 GetRegistrationOneShot( 341 GetRegistrationOneShot(
324 "", base::Bind(&ErrorAndRegistrationCallback, &called, &error, &reg)); 342 "", base::Bind(&ErrorAndRegistrationCallback, &called, &error, &reg));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, register_error); 390 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, register_error);
373 GetRegistrationsOneShot(base::Bind(&ErrorAndRegistrationListCallback, 391 GetRegistrationsOneShot(base::Bind(&ErrorAndRegistrationListCallback,
374 &getregistrations_called, 392 &getregistrations_called,
375 &getregistrations_error, &array_size)); 393 &getregistrations_error, &array_size));
376 EXPECT_TRUE(getregistrations_called); 394 EXPECT_TRUE(getregistrations_called);
377 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE, 395 EXPECT_EQ(BackgroundSyncError::BACKGROUND_SYNC_ERROR_NONE,
378 getregistrations_error); 396 getregistrations_error);
379 EXPECT_EQ(1UL, array_size); 397 EXPECT_EQ(1UL, array_size);
380 } 398 }
381 399
400 TEST_F(BackgroundSyncServiceImplTest, NotifyWhenDone) {
401 // Register a sync event.
402 bool register_called = false;
403 BackgroundSyncError register_error;
404 SyncRegistrationPtr reg;
405 RegisterOneShot(default_sync_registration_.Clone(),
406 base::Bind(&ErrorAndRegistrationCallback, &register_called,
407 &register_error, &reg));
408 EXPECT_TRUE(register_called);
409 EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, register_error);
410
411 // Unregister it.
412 bool unregister_called = false;
413 BackgroundSyncError unregister_error;
414 UnregisterOneShot(
415 reg->handle_id,
416 base::Bind(&ErrorCallback, &unregister_called, &unregister_error));
417 EXPECT_TRUE(unregister_called);
418 EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, unregister_error);
419
420 // Call NotifyWhenDone and verify that it calls back with unregistered.
421 bool notify_done_called = false;
422 BackgroundSyncError notify_done_error = BACKGROUND_SYNC_ERROR_NONE;
423 BackgroundSyncState notify_done_sync_state = BACKGROUND_SYNC_STATE_SUCCESS;
424
425 NotifyWhenDone(reg->handle_id,
426 base::Bind(&ErrorAndStateCallback, &notify_done_called,
427 &notify_done_error, &notify_done_sync_state));
428 EXPECT_TRUE(notify_done_called);
429 EXPECT_EQ(BACKGROUND_SYNC_ERROR_NONE, notify_done_error);
430 EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, notify_done_sync_state);
431 }
432
382 } // namespace content 433 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698