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_manager.h" | 5 #include "content/browser/background_sync/background_sync_manager.h" |
6 | 6 |
7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 }; | 134 }; |
135 | 135 |
136 class BackgroundSyncManagerTest : public testing::Test { | 136 class BackgroundSyncManagerTest : public testing::Test { |
137 public: | 137 public: |
138 BackgroundSyncManagerTest() | 138 BackgroundSyncManagerTest() |
139 : browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP), | 139 : browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP), |
140 sync_reg_1_(BackgroundSyncManager::BackgroundSyncRegistration()), | 140 sync_reg_1_(BackgroundSyncManager::BackgroundSyncRegistration()), |
141 sync_reg_2_(BackgroundSyncManager::BackgroundSyncRegistration()), | 141 sync_reg_2_(BackgroundSyncManager::BackgroundSyncRegistration()), |
142 callback_error_(BackgroundSyncManager::ERROR_TYPE_OK), | 142 callback_error_(BackgroundSyncManager::ERROR_TYPE_OK), |
143 callback_sw_status_code_(SERVICE_WORKER_OK) { | 143 callback_sw_status_code_(SERVICE_WORKER_OK) { |
144 sync_reg_1_.name = "foo"; | 144 sync_reg_1_.tag = "foo"; |
145 sync_reg_2_.name = "bar"; | 145 sync_reg_2_.tag = "bar"; |
146 } | 146 } |
147 | 147 |
148 void SetUp() override { | 148 void SetUp() override { |
149 helper_.reset( | 149 helper_.reset( |
150 new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId)); | 150 new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId)); |
151 | 151 |
152 background_sync_manager_ = | 152 background_sync_manager_ = |
153 BackgroundSyncManager::Create(helper_->context_wrapper()); | 153 BackgroundSyncManager::Create(helper_->context_wrapper()); |
154 | 154 |
155 // Wait for storage to finish initializing before registering service | 155 // Wait for storage to finish initializing before registering service |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 return UnregisterWithServiceWorkerId(sw_registration_id_1_, | 221 return UnregisterWithServiceWorkerId(sw_registration_id_1_, |
222 sync_registration); | 222 sync_registration); |
223 } | 223 } |
224 | 224 |
225 bool UnregisterWithServiceWorkerId( | 225 bool UnregisterWithServiceWorkerId( |
226 int64 sw_registration_id, | 226 int64 sw_registration_id, |
227 const BackgroundSyncManager::BackgroundSyncRegistration& | 227 const BackgroundSyncManager::BackgroundSyncRegistration& |
228 sync_registration) { | 228 sync_registration) { |
229 bool was_called = false; | 229 bool was_called = false; |
230 background_sync_manager_->Unregister( | 230 background_sync_manager_->Unregister( |
231 GURL(kOrigin), sw_registration_id, sync_registration.name, | 231 GURL(kOrigin), sw_registration_id, sync_registration.tag, |
232 sync_registration.id, | 232 sync_registration.id, |
233 base::Bind(&BackgroundSyncManagerTest::StatusCallback, | 233 base::Bind(&BackgroundSyncManagerTest::StatusCallback, |
234 base::Unretained(this), &was_called)); | 234 base::Unretained(this), &was_called)); |
235 base::RunLoop().RunUntilIdle(); | 235 base::RunLoop().RunUntilIdle(); |
236 EXPECT_TRUE(was_called); | 236 EXPECT_TRUE(was_called); |
237 return callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK; | 237 return callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK; |
238 } | 238 } |
239 | 239 |
240 bool GetRegistration(const std::string& sync_registration_name) { | 240 bool GetRegistration(const std::string& sync_registration_tag) { |
241 return GetRegistrationWithServiceWorkerId(sw_registration_id_1_, | 241 return GetRegistrationWithServiceWorkerId(sw_registration_id_1_, |
242 sync_registration_name); | 242 sync_registration_tag); |
243 } | 243 } |
244 | 244 |
245 bool GetRegistrationWithServiceWorkerId( | 245 bool GetRegistrationWithServiceWorkerId( |
246 int64 sw_registration_id, | 246 int64 sw_registration_id, |
247 const std::string& sync_registration_name) { | 247 const std::string& sync_registration_tag) { |
248 bool was_called = false; | 248 bool was_called = false; |
249 background_sync_manager_->GetRegistration( | 249 background_sync_manager_->GetRegistration( |
250 GURL(kOrigin), sw_registration_id, sync_registration_name, | 250 GURL(kOrigin), sw_registration_id, sync_registration_tag, |
251 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, | 251 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, |
252 base::Unretained(this), &was_called)); | 252 base::Unretained(this), &was_called)); |
253 base::RunLoop().RunUntilIdle(); | 253 base::RunLoop().RunUntilIdle(); |
254 EXPECT_TRUE(was_called); | 254 EXPECT_TRUE(was_called); |
255 | 255 |
256 if (callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK) | 256 if (callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK) |
257 EXPECT_TRUE(sync_registration_name == callback_registration_.name); | 257 EXPECT_TRUE(sync_registration_tag == callback_registration_.tag); |
258 | 258 |
259 return callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK; | 259 return callback_error_ == BackgroundSyncManager::ERROR_TYPE_OK; |
260 } | 260 } |
261 | 261 |
262 void StorageRegistrationCallback(ServiceWorkerStatusCode result) { | 262 void StorageRegistrationCallback(ServiceWorkerStatusCode result) { |
263 callback_sw_status_code_ = result; | 263 callback_sw_status_code_ = result; |
264 } | 264 } |
265 | 265 |
266 void UnregisterServiceWorker(uint64 sw_registration_id) { | 266 void UnregisterServiceWorker(uint64 sw_registration_id) { |
267 bool called = false; | 267 bool called = false; |
(...skipping 25 matching lines...) Expand all Loading... |
293 BackgroundSyncManager::BackgroundSyncRegistration callback_registration_; | 293 BackgroundSyncManager::BackgroundSyncRegistration callback_registration_; |
294 ServiceWorkerStatusCode callback_sw_status_code_; | 294 ServiceWorkerStatusCode callback_sw_status_code_; |
295 }; | 295 }; |
296 | 296 |
297 TEST_F(BackgroundSyncManagerTest, Register) { | 297 TEST_F(BackgroundSyncManagerTest, Register) { |
298 EXPECT_TRUE(Register(sync_reg_1_)); | 298 EXPECT_TRUE(Register(sync_reg_1_)); |
299 } | 299 } |
300 | 300 |
301 TEST_F(BackgroundSyncManagerTest, RegistractionIntact) { | 301 TEST_F(BackgroundSyncManagerTest, RegistractionIntact) { |
302 EXPECT_TRUE(Register(sync_reg_1_)); | 302 EXPECT_TRUE(Register(sync_reg_1_)); |
303 EXPECT_STREQ(sync_reg_1_.name.c_str(), callback_registration_.name.c_str()); | 303 EXPECT_STREQ(sync_reg_1_.tag.c_str(), callback_registration_.tag.c_str()); |
304 EXPECT_NE( | 304 EXPECT_NE( |
305 BackgroundSyncManager::BackgroundSyncRegistration::kInvalidRegistrationId, | 305 BackgroundSyncManager::BackgroundSyncRegistration::kInvalidRegistrationId, |
306 callback_registration_.id); | 306 callback_registration_.id); |
307 } | 307 } |
308 | 308 |
309 TEST_F(BackgroundSyncManagerTest, RegisterExistingKeepsId) { | 309 TEST_F(BackgroundSyncManagerTest, RegisterExistingKeepsId) { |
310 EXPECT_TRUE(Register(sync_reg_1_)); | 310 EXPECT_TRUE(Register(sync_reg_1_)); |
311 BackgroundSyncManager::BackgroundSyncRegistration first_registration = | 311 BackgroundSyncManager::BackgroundSyncRegistration first_registration = |
312 callback_registration_; | 312 callback_registration_; |
313 EXPECT_TRUE(Register(sync_reg_1_)); | 313 EXPECT_TRUE(Register(sync_reg_1_)); |
(...skipping 11 matching lines...) Expand all Loading... |
325 EXPECT_LT(first_registration.id, callback_registration_.id); | 325 EXPECT_LT(first_registration.id, callback_registration_.id); |
326 EXPECT_FALSE(callback_registration_.Equals(first_registration)); | 326 EXPECT_FALSE(callback_registration_.Equals(first_registration)); |
327 } | 327 } |
328 | 328 |
329 TEST_F(BackgroundSyncManagerTest, RegisterBadBackend) { | 329 TEST_F(BackgroundSyncManagerTest, RegisterBadBackend) { |
330 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); | 330 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); |
331 manager->set_corrupt_backend(true); | 331 manager->set_corrupt_backend(true); |
332 EXPECT_FALSE(Register(sync_reg_1_)); | 332 EXPECT_FALSE(Register(sync_reg_1_)); |
333 manager->set_corrupt_backend(false); | 333 manager->set_corrupt_backend(false); |
334 EXPECT_FALSE(Register(sync_reg_1_)); | 334 EXPECT_FALSE(Register(sync_reg_1_)); |
335 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 335 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
336 } | 336 } |
337 | 337 |
338 TEST_F(BackgroundSyncManagerTest, TwoRegistrations) { | 338 TEST_F(BackgroundSyncManagerTest, TwoRegistrations) { |
339 EXPECT_TRUE(Register(sync_reg_1_)); | 339 EXPECT_TRUE(Register(sync_reg_1_)); |
340 EXPECT_TRUE(Register(sync_reg_2_)); | 340 EXPECT_TRUE(Register(sync_reg_2_)); |
341 } | 341 } |
342 | 342 |
343 TEST_F(BackgroundSyncManagerTest, GetRegistrationNonExisting) { | 343 TEST_F(BackgroundSyncManagerTest, GetRegistrationNonExisting) { |
344 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 344 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
345 } | 345 } |
346 | 346 |
347 TEST_F(BackgroundSyncManagerTest, GetRegistrationExisting) { | 347 TEST_F(BackgroundSyncManagerTest, GetRegistrationExisting) { |
348 EXPECT_TRUE(Register(sync_reg_1_)); | 348 EXPECT_TRUE(Register(sync_reg_1_)); |
349 EXPECT_TRUE(GetRegistration(sync_reg_1_.name)); | 349 EXPECT_TRUE(GetRegistration(sync_reg_1_.tag)); |
350 EXPECT_FALSE(GetRegistration(sync_reg_2_.name)); | 350 EXPECT_FALSE(GetRegistration(sync_reg_2_.tag)); |
351 } | 351 } |
352 | 352 |
353 TEST_F(BackgroundSyncManagerTest, GetRegistrationBadBackend) { | 353 TEST_F(BackgroundSyncManagerTest, GetRegistrationBadBackend) { |
354 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); | 354 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); |
355 EXPECT_TRUE(Register(sync_reg_1_)); | 355 EXPECT_TRUE(Register(sync_reg_1_)); |
356 manager->set_corrupt_backend(true); | 356 manager->set_corrupt_backend(true); |
357 EXPECT_TRUE(GetRegistration(sync_reg_1_.name)); | 357 EXPECT_TRUE(GetRegistration(sync_reg_1_.tag)); |
358 EXPECT_FALSE(Register(sync_reg_2_)); | 358 EXPECT_FALSE(Register(sync_reg_2_)); |
359 // Registration should have discovered the bad backend and disabled the | 359 // Registration should have discovered the bad backend and disabled the |
360 // BackgroundSyncManager. | 360 // BackgroundSyncManager. |
361 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 361 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
362 manager->set_corrupt_backend(false); | 362 manager->set_corrupt_backend(false); |
363 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 363 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
364 } | 364 } |
365 | 365 |
366 TEST_F(BackgroundSyncManagerTest, Unregister) { | 366 TEST_F(BackgroundSyncManagerTest, Unregister) { |
367 EXPECT_TRUE(Register(sync_reg_1_)); | 367 EXPECT_TRUE(Register(sync_reg_1_)); |
368 EXPECT_TRUE(Unregister(callback_registration_)); | 368 EXPECT_TRUE(Unregister(callback_registration_)); |
369 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 369 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
370 } | 370 } |
371 | 371 |
372 TEST_F(BackgroundSyncManagerTest, UnregisterWrongId) { | 372 TEST_F(BackgroundSyncManagerTest, UnregisterWrongId) { |
373 EXPECT_TRUE(Register(sync_reg_1_)); | 373 EXPECT_TRUE(Register(sync_reg_1_)); |
374 callback_registration_.id += 1; | 374 callback_registration_.id += 1; |
375 EXPECT_FALSE(Unregister(callback_registration_)); | 375 EXPECT_FALSE(Unregister(callback_registration_)); |
376 } | 376 } |
377 | 377 |
378 TEST_F(BackgroundSyncManagerTest, Reregister) { | 378 TEST_F(BackgroundSyncManagerTest, Reregister) { |
379 EXPECT_TRUE(Register(sync_reg_1_)); | 379 EXPECT_TRUE(Register(sync_reg_1_)); |
380 EXPECT_TRUE(Unregister(callback_registration_)); | 380 EXPECT_TRUE(Unregister(callback_registration_)); |
381 EXPECT_TRUE(Register(sync_reg_1_)); | 381 EXPECT_TRUE(Register(sync_reg_1_)); |
382 } | 382 } |
383 | 383 |
384 TEST_F(BackgroundSyncManagerTest, UnregisterNonExisting) { | 384 TEST_F(BackgroundSyncManagerTest, UnregisterNonExisting) { |
385 EXPECT_FALSE(Unregister(sync_reg_1_)); | 385 EXPECT_FALSE(Unregister(sync_reg_1_)); |
386 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_); | 386 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_); |
387 } | 387 } |
388 | 388 |
389 TEST_F(BackgroundSyncManagerTest, UnregisterSecond) { | 389 TEST_F(BackgroundSyncManagerTest, UnregisterSecond) { |
390 EXPECT_TRUE(Register(sync_reg_1_)); | 390 EXPECT_TRUE(Register(sync_reg_1_)); |
391 EXPECT_TRUE(Register(sync_reg_2_)); | 391 EXPECT_TRUE(Register(sync_reg_2_)); |
392 EXPECT_TRUE(Unregister(callback_registration_)); | 392 EXPECT_TRUE(Unregister(callback_registration_)); |
393 EXPECT_TRUE(GetRegistration(sync_reg_1_.name)); | 393 EXPECT_TRUE(GetRegistration(sync_reg_1_.tag)); |
394 EXPECT_TRUE(Register(sync_reg_2_)); | 394 EXPECT_TRUE(Register(sync_reg_2_)); |
395 } | 395 } |
396 | 396 |
397 TEST_F(BackgroundSyncManagerTest, UnregisterBadBackend) { | 397 TEST_F(BackgroundSyncManagerTest, UnregisterBadBackend) { |
398 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); | 398 TestBackgroundSyncManager* manager = UseTestBackgroundSyncManager(); |
399 sync_reg_1_.min_period += 1; | 399 sync_reg_1_.min_period += 1; |
400 EXPECT_TRUE(Register(sync_reg_1_)); | 400 EXPECT_TRUE(Register(sync_reg_1_)); |
401 EXPECT_TRUE(Register(sync_reg_2_)); | 401 EXPECT_TRUE(Register(sync_reg_2_)); |
402 manager->set_corrupt_backend(true); | 402 manager->set_corrupt_backend(true); |
403 EXPECT_FALSE(Unregister(callback_registration_)); | 403 EXPECT_FALSE(Unregister(callback_registration_)); |
404 // Unregister should have discovered the bad backend and disabled the | 404 // Unregister should have discovered the bad backend and disabled the |
405 // BackgroundSyncManager. | 405 // BackgroundSyncManager. |
406 manager->set_corrupt_backend(false); | 406 manager->set_corrupt_backend(false); |
407 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 407 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
408 EXPECT_FALSE(GetRegistration(sync_reg_2_.name)); | 408 EXPECT_FALSE(GetRegistration(sync_reg_2_.tag)); |
409 } | 409 } |
410 | 410 |
411 TEST_F(BackgroundSyncManagerTest, RegistrationIncreasesId) { | 411 TEST_F(BackgroundSyncManagerTest, RegistrationIncreasesId) { |
412 EXPECT_TRUE(Register(sync_reg_1_)); | 412 EXPECT_TRUE(Register(sync_reg_1_)); |
413 BackgroundSyncManager::BackgroundSyncRegistration registered_sync = | 413 BackgroundSyncManager::BackgroundSyncRegistration registered_sync = |
414 callback_registration_; | 414 callback_registration_; |
415 BackgroundSyncManager::BackgroundSyncRegistration::RegistrationId cur_id = | 415 BackgroundSyncManager::BackgroundSyncRegistration::RegistrationId cur_id = |
416 callback_registration_.id; | 416 callback_registration_.id; |
417 | 417 |
418 EXPECT_TRUE(GetRegistration(sync_reg_1_.name)); | 418 EXPECT_TRUE(GetRegistration(sync_reg_1_.tag)); |
419 EXPECT_TRUE(Register(sync_reg_2_)); | 419 EXPECT_TRUE(Register(sync_reg_2_)); |
420 EXPECT_LT(cur_id, callback_registration_.id); | 420 EXPECT_LT(cur_id, callback_registration_.id); |
421 cur_id = callback_registration_.id; | 421 cur_id = callback_registration_.id; |
422 | 422 |
423 EXPECT_TRUE(Unregister(registered_sync)); | 423 EXPECT_TRUE(Unregister(registered_sync)); |
424 EXPECT_TRUE(Register(sync_reg_1_)); | 424 EXPECT_TRUE(Register(sync_reg_1_)); |
425 EXPECT_LT(cur_id, callback_registration_.id); | 425 EXPECT_LT(cur_id, callback_registration_.id); |
426 } | 426 } |
427 | 427 |
428 TEST_F(BackgroundSyncManagerTest, RebootRecovery) { | 428 TEST_F(BackgroundSyncManagerTest, RebootRecovery) { |
429 EXPECT_TRUE(Register(sync_reg_1_)); | 429 EXPECT_TRUE(Register(sync_reg_1_)); |
430 | 430 |
431 background_sync_manager_ = | 431 background_sync_manager_ = |
432 BackgroundSyncManager::Create(helper_->context_wrapper()); | 432 BackgroundSyncManager::Create(helper_->context_wrapper()); |
433 | 433 |
434 EXPECT_TRUE(GetRegistration(sync_reg_1_.name)); | 434 EXPECT_TRUE(GetRegistration(sync_reg_1_.tag)); |
435 EXPECT_FALSE(GetRegistration(sync_reg_2_.name)); | 435 EXPECT_FALSE(GetRegistration(sync_reg_2_.tag)); |
436 } | 436 } |
437 | 437 |
438 TEST_F(BackgroundSyncManagerTest, RebootRecoveryTwoServiceWorkers) { | 438 TEST_F(BackgroundSyncManagerTest, RebootRecoveryTwoServiceWorkers) { |
439 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_1_)); | 439 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_1_)); |
440 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_2_)); | 440 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_2_)); |
441 | 441 |
442 background_sync_manager_ = | 442 background_sync_manager_ = |
443 BackgroundSyncManager::Create(helper_->context_wrapper()); | 443 BackgroundSyncManager::Create(helper_->context_wrapper()); |
444 | 444 |
445 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, | 445 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, |
446 sync_reg_1_.name)); | 446 sync_reg_1_.tag)); |
447 EXPECT_FALSE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, | 447 EXPECT_FALSE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, |
448 sync_reg_2_.name)); | 448 sync_reg_2_.tag)); |
449 EXPECT_FALSE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, | 449 EXPECT_FALSE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, |
450 sync_reg_1_.name)); | 450 sync_reg_1_.tag)); |
451 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, | 451 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, |
452 sync_reg_2_.name)); | 452 sync_reg_2_.tag)); |
453 | 453 |
454 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, | 454 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_1_, |
455 sync_reg_1_.name)); | 455 sync_reg_1_.tag)); |
456 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, | 456 EXPECT_TRUE(GetRegistrationWithServiceWorkerId(sw_registration_id_2_, |
457 sync_reg_2_.name)); | 457 sync_reg_2_.tag)); |
458 | 458 |
459 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_2_)); | 459 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_1_, sync_reg_2_)); |
460 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_1_)); | 460 EXPECT_TRUE(RegisterWithServiceWorkerId(sw_registration_id_2_, sync_reg_1_)); |
461 } | 461 } |
462 | 462 |
463 TEST_F(BackgroundSyncManagerTest, InitWithBadBackend) { | 463 TEST_F(BackgroundSyncManagerTest, InitWithBadBackend) { |
464 TestBackgroundSyncManager* manager = | 464 TestBackgroundSyncManager* manager = |
465 new TestBackgroundSyncManager(helper_->context_wrapper()); | 465 new TestBackgroundSyncManager(helper_->context_wrapper()); |
466 background_sync_manager_.reset(manager); | 466 background_sync_manager_.reset(manager); |
467 manager->set_corrupt_backend(true); | 467 manager->set_corrupt_backend(true); |
468 manager->DoInit(); | 468 manager->DoInit(); |
469 | 469 |
470 EXPECT_FALSE(Register(sync_reg_1_)); | 470 EXPECT_FALSE(Register(sync_reg_1_)); |
471 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 471 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
472 } | 472 } |
473 | 473 |
474 TEST_F(BackgroundSyncManagerTest, SequentialOperations) { | 474 TEST_F(BackgroundSyncManagerTest, SequentialOperations) { |
475 // Schedule Init and all of the operations on a delayed backend. Verify that | 475 // Schedule Init and all of the operations on a delayed backend. Verify that |
476 // the operations complete sequentially. | 476 // the operations complete sequentially. |
477 TestBackgroundSyncManager* manager = | 477 TestBackgroundSyncManager* manager = |
478 new TestBackgroundSyncManager(helper_->context_wrapper()); | 478 new TestBackgroundSyncManager(helper_->context_wrapper()); |
479 background_sync_manager_.reset(manager); | 479 background_sync_manager_.reset(manager); |
480 manager->set_delay_backend(true); | 480 manager->set_delay_backend(true); |
481 manager->DoInit(); | 481 manager->DoInit(); |
482 | 482 |
483 const int64 kExpectedInitialId = | 483 const int64 kExpectedInitialId = |
484 BackgroundSyncManager::BackgroundSyncRegistrations::kInitialId; | 484 BackgroundSyncManager::BackgroundSyncRegistrations::kInitialId; |
485 | 485 |
486 bool register_called = false; | 486 bool register_called = false; |
487 bool unregister_called = false; | 487 bool unregister_called = false; |
488 bool get_registration_called = false; | 488 bool get_registration_called = false; |
489 manager->Register( | 489 manager->Register( |
490 GURL(kOrigin), sw_registration_id_1_, sync_reg_1_, | 490 GURL(kOrigin), sw_registration_id_1_, sync_reg_1_, |
491 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, | 491 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, |
492 base::Unretained(this), ®ister_called)); | 492 base::Unretained(this), ®ister_called)); |
493 manager->Unregister(GURL(kOrigin), sw_registration_id_1_, sync_reg_1_.name, | 493 manager->Unregister(GURL(kOrigin), sw_registration_id_1_, sync_reg_1_.tag, |
494 kExpectedInitialId, | 494 kExpectedInitialId, |
495 base::Bind(&BackgroundSyncManagerTest::StatusCallback, | 495 base::Bind(&BackgroundSyncManagerTest::StatusCallback, |
496 base::Unretained(this), &unregister_called)); | 496 base::Unretained(this), &unregister_called)); |
497 manager->GetRegistration( | 497 manager->GetRegistration( |
498 GURL(kOrigin), sw_registration_id_1_, sync_reg_1_.name, | 498 GURL(kOrigin), sw_registration_id_1_, sync_reg_1_.tag, |
499 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, | 499 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, |
500 base::Unretained(this), &get_registration_called)); | 500 base::Unretained(this), &get_registration_called)); |
501 | 501 |
502 base::RunLoop().RunUntilIdle(); | 502 base::RunLoop().RunUntilIdle(); |
503 // Init should be blocked while loading from the backend. | 503 // Init should be blocked while loading from the backend. |
504 EXPECT_FALSE(register_called); | 504 EXPECT_FALSE(register_called); |
505 EXPECT_FALSE(unregister_called); | 505 EXPECT_FALSE(unregister_called); |
506 EXPECT_FALSE(get_registration_called); | 506 EXPECT_FALSE(get_registration_called); |
507 | 507 |
508 manager->Continue(); | 508 manager->Continue(); |
(...skipping 17 matching lines...) Expand all Loading... |
526 // Unregister should be done and since GetRegistration doesn't require the | 526 // Unregister should be done and since GetRegistration doesn't require the |
527 // backend it should be done too. | 527 // backend it should be done too. |
528 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_); | 528 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_NOT_FOUND, callback_error_); |
529 EXPECT_TRUE(unregister_called); | 529 EXPECT_TRUE(unregister_called); |
530 EXPECT_TRUE(get_registration_called); | 530 EXPECT_TRUE(get_registration_called); |
531 } | 531 } |
532 | 532 |
533 TEST_F(BackgroundSyncManagerTest, UnregisterServiceWorker) { | 533 TEST_F(BackgroundSyncManagerTest, UnregisterServiceWorker) { |
534 EXPECT_TRUE(Register(sync_reg_1_)); | 534 EXPECT_TRUE(Register(sync_reg_1_)); |
535 UnregisterServiceWorker(sw_registration_id_1_); | 535 UnregisterServiceWorker(sw_registration_id_1_); |
536 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 536 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
537 } | 537 } |
538 | 538 |
539 TEST_F(BackgroundSyncManagerTest, | 539 TEST_F(BackgroundSyncManagerTest, |
540 UnregisterServiceWorkerDuringSyncRegistration) { | 540 UnregisterServiceWorkerDuringSyncRegistration) { |
541 TestBackgroundSyncManager* manager = | 541 TestBackgroundSyncManager* manager = |
542 new TestBackgroundSyncManager(helper_->context_wrapper()); | 542 new TestBackgroundSyncManager(helper_->context_wrapper()); |
543 background_sync_manager_.reset(manager); | 543 background_sync_manager_.reset(manager); |
544 manager->DoInit(); | 544 manager->DoInit(); |
545 | 545 |
546 EXPECT_TRUE(Register(sync_reg_1_)); | 546 EXPECT_TRUE(Register(sync_reg_1_)); |
547 | 547 |
548 manager->set_delay_backend(true); | 548 manager->set_delay_backend(true); |
549 bool callback_called = false; | 549 bool callback_called = false; |
550 manager->Register( | 550 manager->Register( |
551 GURL(kOrigin), sw_registration_id_1_, sync_reg_2_, | 551 GURL(kOrigin), sw_registration_id_1_, sync_reg_2_, |
552 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, | 552 base::Bind(&BackgroundSyncManagerTest::StatusAndRegistrationCallback, |
553 base::Unretained(this), &callback_called)); | 553 base::Unretained(this), &callback_called)); |
554 | 554 |
555 base::RunLoop().RunUntilIdle(); | 555 base::RunLoop().RunUntilIdle(); |
556 EXPECT_FALSE(callback_called); | 556 EXPECT_FALSE(callback_called); |
557 UnregisterServiceWorker(sw_registration_id_1_); | 557 UnregisterServiceWorker(sw_registration_id_1_); |
558 | 558 |
559 manager->Continue(); | 559 manager->Continue(); |
560 base::RunLoop().RunUntilIdle(); | 560 base::RunLoop().RunUntilIdle(); |
561 EXPECT_TRUE(callback_called); | 561 EXPECT_TRUE(callback_called); |
562 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_STORAGE, callback_error_); | 562 EXPECT_EQ(BackgroundSyncManager::ERROR_TYPE_STORAGE, callback_error_); |
563 | 563 |
564 manager->set_delay_backend(false); | 564 manager->set_delay_backend(false); |
565 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 565 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
566 } | 566 } |
567 | 567 |
568 TEST_F(BackgroundSyncManagerTest, DeleteAndStartOverServiceWorkerContext) { | 568 TEST_F(BackgroundSyncManagerTest, DeleteAndStartOverServiceWorkerContext) { |
569 EXPECT_TRUE(Register(sync_reg_1_)); | 569 EXPECT_TRUE(Register(sync_reg_1_)); |
570 helper_->context()->ScheduleDeleteAndStartOver(); | 570 helper_->context()->ScheduleDeleteAndStartOver(); |
571 base::RunLoop().RunUntilIdle(); | 571 base::RunLoop().RunUntilIdle(); |
572 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 572 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
573 } | 573 } |
574 | 574 |
575 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterBrowserRestart) { | 575 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterBrowserRestart) { |
576 TestBackgroundSyncManager* manager = | 576 TestBackgroundSyncManager* manager = |
577 new TestBackgroundSyncManager(helper_->context_wrapper()); | 577 new TestBackgroundSyncManager(helper_->context_wrapper()); |
578 background_sync_manager_.reset(manager); | 578 background_sync_manager_.reset(manager); |
579 manager->DoInit(); | 579 manager->DoInit(); |
580 EXPECT_TRUE(Register(sync_reg_1_)); | 580 EXPECT_TRUE(Register(sync_reg_1_)); |
581 manager->set_corrupt_backend(true); | 581 manager->set_corrupt_backend(true); |
582 EXPECT_FALSE(Register(sync_reg_2_)); | 582 EXPECT_FALSE(Register(sync_reg_2_)); |
583 | 583 |
584 // The manager is now disabled and not accepting new requests until browser | 584 // The manager is now disabled and not accepting new requests until browser |
585 // restart or notification that the storage has been wiped. | 585 // restart or notification that the storage has been wiped. |
586 manager->set_corrupt_backend(false); | 586 manager->set_corrupt_backend(false); |
587 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 587 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
588 EXPECT_FALSE(Register(sync_reg_2_)); | 588 EXPECT_FALSE(Register(sync_reg_2_)); |
589 | 589 |
590 // Simulate restarting the browser by creating a new BackgroundSyncManager. | 590 // Simulate restarting the browser by creating a new BackgroundSyncManager. |
591 background_sync_manager_.reset( | 591 background_sync_manager_.reset( |
592 new TestBackgroundSyncManager(helper_->context_wrapper())); | 592 new TestBackgroundSyncManager(helper_->context_wrapper())); |
593 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 593 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
594 EXPECT_TRUE(Register(sync_reg_1_)); | 594 EXPECT_TRUE(Register(sync_reg_1_)); |
595 } | 595 } |
596 | 596 |
597 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterDeleteAndStartOver) { | 597 TEST_F(BackgroundSyncManagerTest, DisabledManagerWorksAfterDeleteAndStartOver) { |
598 TestBackgroundSyncManager* manager = | 598 TestBackgroundSyncManager* manager = |
599 new TestBackgroundSyncManager(helper_->context_wrapper()); | 599 new TestBackgroundSyncManager(helper_->context_wrapper()); |
600 background_sync_manager_.reset(manager); | 600 background_sync_manager_.reset(manager); |
601 manager->DoInit(); | 601 manager->DoInit(); |
602 EXPECT_TRUE(Register(sync_reg_1_)); | 602 EXPECT_TRUE(Register(sync_reg_1_)); |
603 manager->set_corrupt_backend(true); | 603 manager->set_corrupt_backend(true); |
604 EXPECT_FALSE(Register(sync_reg_2_)); | 604 EXPECT_FALSE(Register(sync_reg_2_)); |
605 | 605 |
606 // The manager is now disabled and not accepting new requests until browser | 606 // The manager is now disabled and not accepting new requests until browser |
607 // restart or notification that the storage has been wiped. | 607 // restart or notification that the storage has been wiped. |
608 manager->set_corrupt_backend(false); | 608 manager->set_corrupt_backend(false); |
609 helper_->context()->ScheduleDeleteAndStartOver(); | 609 helper_->context()->ScheduleDeleteAndStartOver(); |
610 base::RunLoop().RunUntilIdle(); | 610 base::RunLoop().RunUntilIdle(); |
611 | 611 |
612 bool called = false; | 612 bool called = false; |
613 helper_->context()->RegisterServiceWorker( | 613 helper_->context()->RegisterServiceWorker( |
614 GURL(kPattern1), GURL(kScript1), NULL, | 614 GURL(kPattern1), GURL(kScript1), NULL, |
615 base::Bind(&RegisterServiceWorkerCallback, &called, | 615 base::Bind(&RegisterServiceWorkerCallback, &called, |
616 &sw_registration_id_1_)); | 616 &sw_registration_id_1_)); |
617 base::RunLoop().RunUntilIdle(); | 617 base::RunLoop().RunUntilIdle(); |
618 EXPECT_TRUE(called); | 618 EXPECT_TRUE(called); |
619 | 619 |
620 EXPECT_TRUE(Register(sync_reg_2_)); | 620 EXPECT_TRUE(Register(sync_reg_2_)); |
621 EXPECT_FALSE(GetRegistration(sync_reg_1_.name)); | 621 EXPECT_FALSE(GetRegistration(sync_reg_1_.tag)); |
622 EXPECT_TRUE(GetRegistration(sync_reg_2_.name)); | 622 EXPECT_TRUE(GetRegistration(sync_reg_2_.tag)); |
623 } | 623 } |
624 | 624 |
625 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsId) { | 625 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsId) { |
626 BackgroundSyncManager::BackgroundSyncRegistration reg_1; | 626 BackgroundSyncManager::BackgroundSyncRegistration reg_1; |
627 BackgroundSyncManager::BackgroundSyncRegistration reg_2; | 627 BackgroundSyncManager::BackgroundSyncRegistration reg_2; |
628 | 628 |
629 EXPECT_TRUE(reg_1.Equals(reg_2)); | 629 EXPECT_TRUE(reg_1.Equals(reg_2)); |
630 reg_2.id = reg_1.id + 1; | 630 reg_2.id = reg_1.id + 1; |
631 EXPECT_TRUE(reg_1.Equals(reg_2)); | 631 EXPECT_TRUE(reg_1.Equals(reg_2)); |
632 } | 632 } |
633 | 633 |
634 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsName) { | 634 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsTag) { |
635 BackgroundSyncManager::BackgroundSyncRegistration reg_1; | 635 BackgroundSyncManager::BackgroundSyncRegistration reg_1; |
636 BackgroundSyncManager::BackgroundSyncRegistration reg_2; | 636 BackgroundSyncManager::BackgroundSyncRegistration reg_2; |
637 EXPECT_TRUE(reg_1.Equals(reg_2)); | 637 EXPECT_TRUE(reg_1.Equals(reg_2)); |
638 reg_2.name = "bar"; | 638 reg_2.tag = "bar"; |
639 EXPECT_FALSE(reg_1.Equals(reg_2)); | 639 EXPECT_FALSE(reg_1.Equals(reg_2)); |
640 } | 640 } |
641 | 641 |
642 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsFireOnce) { | 642 TEST_F(BackgroundSyncManagerTest, RegistrationEqualsFireOnce) { |
643 BackgroundSyncManager::BackgroundSyncRegistration reg_1; | 643 BackgroundSyncManager::BackgroundSyncRegistration reg_1; |
644 BackgroundSyncManager::BackgroundSyncRegistration reg_2; | 644 BackgroundSyncManager::BackgroundSyncRegistration reg_2; |
645 EXPECT_TRUE(reg_1.Equals(reg_2)); | 645 EXPECT_TRUE(reg_1.Equals(reg_2)); |
646 reg_2.fire_once = !reg_1.fire_once; | 646 reg_2.fire_once = !reg_1.fire_once; |
647 EXPECT_FALSE(reg_1.Equals(reg_2)); | 647 EXPECT_FALSE(reg_1.Equals(reg_2)); |
648 } | 648 } |
(...skipping 20 matching lines...) Expand all Loading... |
669 BackgroundSyncManager::BackgroundSyncRegistration reg_2; | 669 BackgroundSyncManager::BackgroundSyncRegistration reg_2; |
670 EXPECT_TRUE(reg_1.Equals(reg_2)); | 670 EXPECT_TRUE(reg_1.Equals(reg_2)); |
671 reg_1.power_state = POWER_STATE_AUTO; | 671 reg_1.power_state = POWER_STATE_AUTO; |
672 reg_2.power_state = POWER_STATE_AVOID_DRAINING; | 672 reg_2.power_state = POWER_STATE_AVOID_DRAINING; |
673 EXPECT_FALSE(reg_1.Equals(reg_2)); | 673 EXPECT_FALSE(reg_1.Equals(reg_2)); |
674 } | 674 } |
675 | 675 |
676 TEST_F(BackgroundSyncManagerTest, StoreAndRetrievePreservesValues) { | 676 TEST_F(BackgroundSyncManagerTest, StoreAndRetrievePreservesValues) { |
677 BackgroundSyncManager::BackgroundSyncRegistration reg_1; | 677 BackgroundSyncManager::BackgroundSyncRegistration reg_1; |
678 // Set non-default values for each field. | 678 // Set non-default values for each field. |
679 reg_1.name = "foo"; | 679 reg_1.tag = "foo"; |
680 reg_1.fire_once = !reg_1.fire_once; | 680 reg_1.fire_once = !reg_1.fire_once; |
681 reg_1.min_period += 1; | 681 reg_1.min_period += 1; |
682 EXPECT_NE(NETWORK_STATE_ANY, reg_1.network_state); | 682 EXPECT_NE(NETWORK_STATE_ANY, reg_1.network_state); |
683 reg_1.network_state = NETWORK_STATE_ANY; | 683 reg_1.network_state = NETWORK_STATE_ANY; |
684 EXPECT_NE(POWER_STATE_AUTO, reg_1.power_state); | 684 EXPECT_NE(POWER_STATE_AUTO, reg_1.power_state); |
685 reg_1.power_state = POWER_STATE_AUTO; | 685 reg_1.power_state = POWER_STATE_AUTO; |
686 | 686 |
687 // Store the registration. | 687 // Store the registration. |
688 EXPECT_TRUE(Register(reg_1)); | 688 EXPECT_TRUE(Register(reg_1)); |
689 | 689 |
690 // Simulate restarting the sync manager, forcing the next read to come from | 690 // Simulate restarting the sync manager, forcing the next read to come from |
691 // disk. | 691 // disk. |
692 UseTestBackgroundSyncManager(); | 692 UseTestBackgroundSyncManager(); |
693 | 693 |
694 EXPECT_TRUE(GetRegistration(reg_1.name)); | 694 EXPECT_TRUE(GetRegistration(reg_1.tag)); |
695 EXPECT_TRUE(reg_1.Equals(callback_registration_)); | 695 EXPECT_TRUE(reg_1.Equals(callback_registration_)); |
696 } | 696 } |
697 | 697 |
698 } // namespace content | 698 } // namespace content |
OLD | NEW |