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

Side by Side Diff: content/browser/service_worker/service_worker_storage_unittest.cc

Issue 360123002: ServiceWorker: some more groundwork in support of the update process (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <string> 5 #include <string>
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "content/browser/browser_thread_impl.h" 10 #include "content/browser/browser_thread_impl.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 EXPECT_FALSE(found_registration); 298 EXPECT_FALSE(found_registration);
299 299
300 // Store something. 300 // Store something.
301 scoped_refptr<ServiceWorkerRegistration> live_registration = 301 scoped_refptr<ServiceWorkerRegistration> live_registration =
302 new ServiceWorkerRegistration( 302 new ServiceWorkerRegistration(
303 kScope, kScript, kRegistrationId, context_ptr_); 303 kScope, kScript, kRegistrationId, context_ptr_);
304 scoped_refptr<ServiceWorkerVersion> live_version = 304 scoped_refptr<ServiceWorkerVersion> live_version =
305 new ServiceWorkerVersion( 305 new ServiceWorkerVersion(
306 live_registration, kVersionId, context_ptr_); 306 live_registration, kVersionId, context_ptr_);
307 live_version->SetStatus(ServiceWorkerVersion::INSTALLED); 307 live_version->SetStatus(ServiceWorkerVersion::INSTALLED);
308 live_registration->set_waiting_version(live_version); 308 live_registration->SetWaitingVersion(live_version);
309 EXPECT_EQ(SERVICE_WORKER_OK, 309 EXPECT_EQ(SERVICE_WORKER_OK,
310 StoreRegistration(live_registration, live_version)); 310 StoreRegistration(live_registration, live_version));
311 311
312 // Now we should find it and get the live ptr back immediately. 312 // Now we should find it and get the live ptr back immediately.
313 EXPECT_EQ(SERVICE_WORKER_OK, 313 EXPECT_EQ(SERVICE_WORKER_OK,
314 FindRegistrationForDocument(kDocumentUrl, &found_registration)); 314 FindRegistrationForDocument(kDocumentUrl, &found_registration));
315 EXPECT_EQ(live_registration, found_registration); 315 EXPECT_EQ(live_registration, found_registration);
316 found_registration = NULL; 316 found_registration = NULL;
317 317
318 // But FindRegistrationForPattern is always async. 318 // But FindRegistrationForPattern is always async.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 EXPECT_EQ(kRegistrationId, found_registration->id()); 352 EXPECT_EQ(kRegistrationId, found_registration->id());
353 EXPECT_TRUE(found_registration->HasOneRef()); 353 EXPECT_TRUE(found_registration->HasOneRef());
354 EXPECT_FALSE(found_registration->active_version()); 354 EXPECT_FALSE(found_registration->active_version());
355 ASSERT_TRUE(found_registration->waiting_version()); 355 ASSERT_TRUE(found_registration->waiting_version());
356 EXPECT_EQ(ServiceWorkerVersion::INSTALLED, 356 EXPECT_EQ(ServiceWorkerVersion::INSTALLED,
357 found_registration->waiting_version()->status()); 357 found_registration->waiting_version()->status());
358 358
359 // Update to active. 359 // Update to active.
360 scoped_refptr<ServiceWorkerVersion> temp_version = 360 scoped_refptr<ServiceWorkerVersion> temp_version =
361 found_registration->waiting_version(); 361 found_registration->waiting_version();
362 found_registration->set_waiting_version(NULL);
363 temp_version->SetStatus(ServiceWorkerVersion::ACTIVE); 362 temp_version->SetStatus(ServiceWorkerVersion::ACTIVE);
364 found_registration->set_active_version(temp_version); 363 found_registration->SetActiveVersion(temp_version);
365 temp_version = NULL; 364 temp_version = NULL;
366 EXPECT_EQ(SERVICE_WORKER_OK, UpdateToActiveState(found_registration)); 365 EXPECT_EQ(SERVICE_WORKER_OK, UpdateToActiveState(found_registration));
367 found_registration = NULL; 366 found_registration = NULL;
368 367
369 // Trying to update a unstored registration to active should fail. 368 // Trying to update a unstored registration to active should fail.
370 scoped_refptr<ServiceWorkerRegistration> unstored_registration = 369 scoped_refptr<ServiceWorkerRegistration> unstored_registration =
371 new ServiceWorkerRegistration( 370 new ServiceWorkerRegistration(
372 kScope, kScript, kRegistrationId + 1, context_ptr_); 371 kScope, kScript, kRegistrationId + 1, context_ptr_);
373 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 372 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
374 UpdateToActiveState(unstored_registration)); 373 UpdateToActiveState(unstored_registration));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 scoped_refptr<ServiceWorkerRegistration> found_registration; 411 scoped_refptr<ServiceWorkerRegistration> found_registration;
413 412
414 // Create an unstored registration. 413 // Create an unstored registration.
415 scoped_refptr<ServiceWorkerRegistration> live_registration = 414 scoped_refptr<ServiceWorkerRegistration> live_registration =
416 new ServiceWorkerRegistration( 415 new ServiceWorkerRegistration(
417 kScope, kScript, kRegistrationId, context_ptr_); 416 kScope, kScript, kRegistrationId, context_ptr_);
418 scoped_refptr<ServiceWorkerVersion> live_version = 417 scoped_refptr<ServiceWorkerVersion> live_version =
419 new ServiceWorkerVersion( 418 new ServiceWorkerVersion(
420 live_registration, kVersionId, context_ptr_); 419 live_registration, kVersionId, context_ptr_);
421 live_version->SetStatus(ServiceWorkerVersion::INSTALLING); 420 live_version->SetStatus(ServiceWorkerVersion::INSTALLING);
422 live_registration->set_waiting_version(live_version); 421 live_registration->SetWaitingVersion(live_version);
423 422
424 // Should not be findable, including by GetAllRegistrations. 423 // Should not be findable, including by GetAllRegistrations.
425 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 424 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
426 FindRegistrationForId( 425 FindRegistrationForId(
427 kRegistrationId, kScope.GetOrigin(), &found_registration)); 426 kRegistrationId, kScope.GetOrigin(), &found_registration));
428 EXPECT_FALSE(found_registration); 427 EXPECT_FALSE(found_registration);
429 428
430 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 429 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
431 FindRegistrationForDocument(kDocumentUrl, &found_registration)); 430 FindRegistrationForDocument(kDocumentUrl, &found_registration));
432 EXPECT_FALSE(found_registration); 431 EXPECT_FALSE(found_registration);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 const GURL kScript1("http://www.example.com/script1.js"); 565 const GURL kScript1("http://www.example.com/script1.js");
567 const int64 kRegistrationId1 = 1; 566 const int64 kRegistrationId1 = 1;
568 const int64 kVersionId1 = 1; 567 const int64 kVersionId1 = 1;
569 scoped_refptr<ServiceWorkerRegistration> live_registration1 = 568 scoped_refptr<ServiceWorkerRegistration> live_registration1 =
570 new ServiceWorkerRegistration( 569 new ServiceWorkerRegistration(
571 kScope1, kScript1, kRegistrationId1, context_ptr_); 570 kScope1, kScript1, kRegistrationId1, context_ptr_);
572 scoped_refptr<ServiceWorkerVersion> live_version1 = 571 scoped_refptr<ServiceWorkerVersion> live_version1 =
573 new ServiceWorkerVersion( 572 new ServiceWorkerVersion(
574 live_registration1, kVersionId1, context_ptr_); 573 live_registration1, kVersionId1, context_ptr_);
575 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); 574 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED);
576 live_registration1->set_waiting_version(live_version1); 575 live_registration1->SetWaitingVersion(live_version1);
577 576
578 // Registration for "/scope/foo*". 577 // Registration for "/scope/foo*".
579 const GURL kScope2("http://www.example.com/scope/foo*"); 578 const GURL kScope2("http://www.example.com/scope/foo*");
580 const GURL kScript2("http://www.example.com/script2.js"); 579 const GURL kScript2("http://www.example.com/script2.js");
581 const int64 kRegistrationId2 = 2; 580 const int64 kRegistrationId2 = 2;
582 const int64 kVersionId2 = 2; 581 const int64 kVersionId2 = 2;
583 scoped_refptr<ServiceWorkerRegistration> live_registration2 = 582 scoped_refptr<ServiceWorkerRegistration> live_registration2 =
584 new ServiceWorkerRegistration( 583 new ServiceWorkerRegistration(
585 kScope2, kScript2, kRegistrationId2, context_ptr_); 584 kScope2, kScript2, kRegistrationId2, context_ptr_);
586 scoped_refptr<ServiceWorkerVersion> live_version2 = 585 scoped_refptr<ServiceWorkerVersion> live_version2 =
587 new ServiceWorkerVersion( 586 new ServiceWorkerVersion(
588 live_registration2, kVersionId2, context_ptr_); 587 live_registration2, kVersionId2, context_ptr_);
589 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); 588 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED);
590 live_registration2->set_waiting_version(live_version2); 589 live_registration2->SetWaitingVersion(live_version2);
591 590
592 // Registration for "/scope/foo". 591 // Registration for "/scope/foo".
593 const GURL kScope3("http://www.example.com/scope/foo"); 592 const GURL kScope3("http://www.example.com/scope/foo");
594 const GURL kScript3("http://www.example.com/script3.js"); 593 const GURL kScript3("http://www.example.com/script3.js");
595 const int64 kRegistrationId3 = 3; 594 const int64 kRegistrationId3 = 3;
596 const int64 kVersionId3 = 3; 595 const int64 kVersionId3 = 3;
597 scoped_refptr<ServiceWorkerRegistration> live_registration3 = 596 scoped_refptr<ServiceWorkerRegistration> live_registration3 =
598 new ServiceWorkerRegistration( 597 new ServiceWorkerRegistration(
599 kScope3, kScript3, kRegistrationId3, context_ptr_); 598 kScope3, kScript3, kRegistrationId3, context_ptr_);
600 scoped_refptr<ServiceWorkerVersion> live_version3 = 599 scoped_refptr<ServiceWorkerVersion> live_version3 =
601 new ServiceWorkerVersion( 600 new ServiceWorkerVersion(
602 live_registration3, kVersionId3, context_ptr_); 601 live_registration3, kVersionId3, context_ptr_);
603 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED); 602 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED);
604 live_registration3->set_waiting_version(live_version3); 603 live_registration3->SetWaitingVersion(live_version3);
605 604
606 // Notify storage of they being installed. 605 // Notify storage of they being installed.
607 storage()->NotifyInstallingRegistration(live_registration1); 606 storage()->NotifyInstallingRegistration(live_registration1);
608 storage()->NotifyInstallingRegistration(live_registration2); 607 storage()->NotifyInstallingRegistration(live_registration2);
609 storage()->NotifyInstallingRegistration(live_registration3); 608 storage()->NotifyInstallingRegistration(live_registration3);
610 609
611 // Find a registration among installing ones. 610 // Find a registration among installing ones.
612 EXPECT_EQ(SERVICE_WORKER_OK, 611 EXPECT_EQ(SERVICE_WORKER_OK,
613 FindRegistrationForDocument(kDocumentUrl, &found_registration)); 612 FindRegistrationForDocument(kDocumentUrl, &found_registration));
614 EXPECT_EQ(live_registration2, found_registration); 613 EXPECT_EQ(live_registration2, found_registration);
(...skipping 15 matching lines...) Expand all
630 storage()->NotifyDoneInstallingRegistration( 629 storage()->NotifyDoneInstallingRegistration(
631 live_registration3, NULL, SERVICE_WORKER_OK); 630 live_registration3, NULL, SERVICE_WORKER_OK);
632 631
633 // Find a registration among installed ones. 632 // Find a registration among installed ones.
634 EXPECT_EQ(SERVICE_WORKER_OK, 633 EXPECT_EQ(SERVICE_WORKER_OK,
635 FindRegistrationForDocument(kDocumentUrl, &found_registration)); 634 FindRegistrationForDocument(kDocumentUrl, &found_registration));
636 EXPECT_EQ(live_registration2, found_registration); 635 EXPECT_EQ(live_registration2, found_registration);
637 } 636 }
638 637
639 } // namespace content 638 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698