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

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

Issue 1221643014: Service Worker: Migrate to version_uuid and surface ServiceWorker.id. (Chromium 2/3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 506
507 TEST_F(ServiceWorkerStorageTest, StoreFindUpdateDeleteRegistration) { 507 TEST_F(ServiceWorkerStorageTest, StoreFindUpdateDeleteRegistration) {
508 const GURL kScope("http://www.test.not/scope/"); 508 const GURL kScope("http://www.test.not/scope/");
509 const GURL kScript("http://www.test.not/script.js"); 509 const GURL kScript("http://www.test.not/script.js");
510 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); 510 const GURL kDocumentUrl("http://www.test.not/scope/document.html");
511 const GURL kResource1("http://www.test.not/scope/resource1.js"); 511 const GURL kResource1("http://www.test.not/scope/resource1.js");
512 const int64 kResource1Size = 1591234; 512 const int64 kResource1Size = 1591234;
513 const GURL kResource2("http://www.test.not/scope/resource2.js"); 513 const GURL kResource2("http://www.test.not/scope/resource2.js");
514 const int64 kResource2Size = 51; 514 const int64 kResource2Size = 51;
515 const int64 kRegistrationId = 0; 515 const int64 kRegistrationId = 0;
516 const int64 kVersionId = 0; 516 const std::string kVersionId = "ba78579f-c923-45a0-95e7-bcc86b8ebb97";
517 const base::Time kToday = base::Time::Now(); 517 const base::Time kToday = base::Time::Now();
518 const base::Time kYesterday = kToday - base::TimeDelta::FromDays(1); 518 const base::Time kYesterday = kToday - base::TimeDelta::FromDays(1);
519 519
520 scoped_refptr<ServiceWorkerRegistration> found_registration; 520 scoped_refptr<ServiceWorkerRegistration> found_registration;
521 521
522 // We shouldn't find anything without having stored anything. 522 // We shouldn't find anything without having stored anything.
523 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 523 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
524 FindRegistrationForDocument(kDocumentUrl, &found_registration)); 524 FindRegistrationForDocument(kDocumentUrl, &found_registration));
525 EXPECT_FALSE(found_registration.get()); 525 EXPECT_FALSE(found_registration.get());
526 526
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 ASSERT_TRUE(found_registration.get()); 662 ASSERT_TRUE(found_registration.get());
663 EXPECT_EQ(kRegistrationId, found_registration->id()); 663 EXPECT_EQ(kRegistrationId, found_registration->id());
664 EXPECT_TRUE(found_registration->HasOneRef()); 664 EXPECT_TRUE(found_registration->HasOneRef());
665 EXPECT_FALSE(found_registration->waiting_version()); 665 EXPECT_FALSE(found_registration->waiting_version());
666 ASSERT_TRUE(found_registration->active_version()); 666 ASSERT_TRUE(found_registration->active_version());
667 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, 667 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED,
668 found_registration->active_version()->status()); 668 found_registration->active_version()->status());
669 EXPECT_EQ(kToday, found_registration->last_update_check()); 669 EXPECT_EQ(kToday, found_registration->last_update_check());
670 670
671 // Delete from storage but with a instance still live. 671 // Delete from storage but with a instance still live.
672 EXPECT_TRUE(context_->GetLiveVersion(kRegistrationId)); 672 EXPECT_TRUE(context_->GetLiveVersion(kVersionId));
673 EXPECT_EQ(SERVICE_WORKER_OK, 673 EXPECT_EQ(SERVICE_WORKER_OK,
674 DeleteRegistration(kRegistrationId, kScope.GetOrigin())); 674 DeleteRegistration(kRegistrationId, kScope.GetOrigin()));
675 EXPECT_TRUE(context_->GetLiveVersion(kRegistrationId)); 675 EXPECT_TRUE(context_->GetLiveVersion(kVersionId));
676 676
677 // Should no longer be found. 677 // Should no longer be found.
678 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 678 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
679 FindRegistrationForId( 679 FindRegistrationForId(
680 kRegistrationId, kScope.GetOrigin(), &found_registration)); 680 kRegistrationId, kScope.GetOrigin(), &found_registration));
681 EXPECT_FALSE(found_registration.get()); 681 EXPECT_FALSE(found_registration.get());
682 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, 682 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND,
683 FindRegistrationForIdOnly(kRegistrationId, &found_registration)); 683 FindRegistrationForIdOnly(kRegistrationId, &found_registration));
684 EXPECT_FALSE(found_registration.get()); 684 EXPECT_FALSE(found_registration.get());
685 685
686 // Deleting an unstored registration should succeed. 686 // Deleting an unstored registration should succeed.
687 EXPECT_EQ(SERVICE_WORKER_OK, 687 EXPECT_EQ(SERVICE_WORKER_OK,
688 DeleteRegistration(kRegistrationId + 1, kScope.GetOrigin())); 688 DeleteRegistration(kRegistrationId + 1, kScope.GetOrigin()));
689 } 689 }
690 690
691 TEST_F(ServiceWorkerStorageTest, InstallingRegistrationsAreFindable) { 691 TEST_F(ServiceWorkerStorageTest, InstallingRegistrationsAreFindable) {
692 const GURL kScope("http://www.test.not/scope/"); 692 const GURL kScope("http://www.test.not/scope/");
693 const GURL kScript("http://www.test.not/script.js"); 693 const GURL kScript("http://www.test.not/script.js");
694 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); 694 const GURL kDocumentUrl("http://www.test.not/scope/document.html");
695 const int64 kRegistrationId = 0; 695 const int64 kRegistrationId = 0;
696 const int64 kVersionId = 0; 696 const std::string kVersionId = "152a5cb0-79d5-47b5-a196-5b94963e612b";
697 697
698 scoped_refptr<ServiceWorkerRegistration> found_registration; 698 scoped_refptr<ServiceWorkerRegistration> found_registration;
699 699
700 // Create an unstored registration. 700 // Create an unstored registration.
701 scoped_refptr<ServiceWorkerRegistration> live_registration = 701 scoped_refptr<ServiceWorkerRegistration> live_registration =
702 new ServiceWorkerRegistration( 702 new ServiceWorkerRegistration(
703 kScope, kRegistrationId, context_ptr_); 703 kScope, kRegistrationId, context_ptr_);
704 scoped_refptr<ServiceWorkerVersion> live_version = 704 scoped_refptr<ServiceWorkerVersion> live_version =
705 new ServiceWorkerVersion( 705 new ServiceWorkerVersion(
706 live_registration.get(), kScript, kVersionId, context_ptr_); 706 live_registration.get(), kScript, kVersionId, context_ptr_);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 806
807 GetRegistrationsForOrigin(GURL("http://example.com/").GetOrigin(), 807 GetRegistrationsForOrigin(GURL("http://example.com/").GetOrigin(),
808 &registrations_for_origin); 808 &registrations_for_origin);
809 EXPECT_TRUE(registrations_for_origin.empty()); 809 EXPECT_TRUE(registrations_for_origin.empty());
810 } 810 }
811 811
812 TEST_F(ServiceWorkerStorageTest, StoreUserData) { 812 TEST_F(ServiceWorkerStorageTest, StoreUserData) {
813 const GURL kScope("http://www.test.not/scope/"); 813 const GURL kScope("http://www.test.not/scope/");
814 const GURL kScript("http://www.test.not/script.js"); 814 const GURL kScript("http://www.test.not/script.js");
815 const int64 kRegistrationId = 0; 815 const int64 kRegistrationId = 0;
816 const int64 kVersionId = 0; 816 const std::string kVersionId = "152a5cb0-79d5-47b5-a196-5b94963e612b";
817 817
818 LazyInitialize(); 818 LazyInitialize();
819 819
820 // Store a registration. 820 // Store a registration.
821 scoped_refptr<ServiceWorkerRegistration> live_registration = 821 scoped_refptr<ServiceWorkerRegistration> live_registration =
822 new ServiceWorkerRegistration( 822 new ServiceWorkerRegistration(
823 kScope, kRegistrationId, context_ptr_); 823 kScope, kRegistrationId, context_ptr_);
824 scoped_refptr<ServiceWorkerVersion> live_version = 824 scoped_refptr<ServiceWorkerVersion> live_version =
825 new ServiceWorkerVersion( 825 new ServiceWorkerVersion(
826 live_registration.get(), kScript, kVersionId, context_ptr_); 826 live_registration.get(), kScript, kVersionId, context_ptr_);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 void SetUp() override { 898 void SetUp() override {
899 ServiceWorkerStorageTest::SetUp(); 899 ServiceWorkerStorageTest::SetUp();
900 900
901 storage()->LazyInitialize(base::Bind(&base::DoNothing)); 901 storage()->LazyInitialize(base::Bind(&base::DoNothing));
902 base::RunLoop().RunUntilIdle(); 902 base::RunLoop().RunUntilIdle();
903 scope_ = GURL("http://www.test.not/scope/"); 903 scope_ = GURL("http://www.test.not/scope/");
904 script_ = GURL("http://www.test.not/script.js"); 904 script_ = GURL("http://www.test.not/script.js");
905 import_ = GURL("http://www.test.not/import.js"); 905 import_ = GURL("http://www.test.not/import.js");
906 document_url_ = GURL("http://www.test.not/scope/document.html"); 906 document_url_ = GURL("http://www.test.not/scope/document.html");
907 registration_id_ = storage()->NewRegistrationId(); 907 registration_id_ = storage()->NewRegistrationId();
908 version_id_ = storage()->NewVersionId(); 908 version_uuid_ = "2df145e9-00d2-4200-a6c5-cffd60320022";
909 resource_id1_ = storage()->NewResourceId(); 909 resource_id1_ = storage()->NewResourceId();
910 resource_id2_ = storage()->NewResourceId(); 910 resource_id2_ = storage()->NewResourceId();
911 resource_id1_size_ = 239193; 911 resource_id1_size_ = 239193;
912 resource_id2_size_ = 59923; 912 resource_id2_size_ = 59923;
913 913
914 // Cons up a new registration+version with two script resources. 914 // Cons up a new registration+version with two script resources.
915 RegistrationData data; 915 RegistrationData data;
916 data.registration_id = registration_id_; 916 data.registration_id = registration_id_;
917 data.scope = scope_; 917 data.scope = scope_;
918 data.script = script_; 918 data.script = script_;
919 data.version_id = version_id_; 919 data.version_uuid = version_uuid_;
920 data.is_active = false; 920 data.is_active = false;
921 std::vector<ResourceRecord> resources; 921 std::vector<ResourceRecord> resources;
922 resources.push_back( 922 resources.push_back(
923 ResourceRecord(resource_id1_, script_, resource_id1_size_)); 923 ResourceRecord(resource_id1_, script_, resource_id1_size_));
924 resources.push_back( 924 resources.push_back(
925 ResourceRecord(resource_id2_, import_, resource_id2_size_)); 925 ResourceRecord(resource_id2_, import_, resource_id2_size_));
926 registration_ = storage()->GetOrCreateRegistration(data, resources); 926 registration_ = storage()->GetOrCreateRegistration(data, resources);
927 registration_->waiting_version()->SetStatus(ServiceWorkerVersion::NEW); 927 registration_->waiting_version()->SetStatus(ServiceWorkerVersion::NEW);
928 928
929 // Add the resources ids to the uncommitted list. 929 // Add the resources ids to the uncommitted list.
(...skipping 21 matching lines...) Expand all
951 storage()->database_->GetUncommittedResourceIds(&verify_ids)); 951 storage()->database_->GetUncommittedResourceIds(&verify_ids));
952 EXPECT_TRUE(verify_ids.empty()); 952 EXPECT_TRUE(verify_ids.empty());
953 } 953 }
954 954
955 protected: 955 protected:
956 GURL scope_; 956 GURL scope_;
957 GURL script_; 957 GURL script_;
958 GURL import_; 958 GURL import_;
959 GURL document_url_; 959 GURL document_url_;
960 int64 registration_id_; 960 int64 registration_id_;
961 int64 version_id_; 961 std::string version_uuid_;
962 int64 resource_id1_; 962 int64 resource_id1_;
963 uint64 resource_id1_size_; 963 uint64 resource_id1_size_;
964 int64 resource_id2_; 964 int64 resource_id2_;
965 uint64 resource_id2_size_; 965 uint64 resource_id2_size_;
966 scoped_refptr<ServiceWorkerRegistration> registration_; 966 scoped_refptr<ServiceWorkerRegistration> registration_;
967 }; 967 };
968 968
969 class ServiceWorkerResourceStorageDiskTest 969 class ServiceWorkerResourceStorageDiskTest
970 : public ServiceWorkerResourceStorageTest { 970 : public ServiceWorkerResourceStorageTest {
971 public: 971 public:
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 } 1399 }
1400 1400
1401 TEST_F(ServiceWorkerStorageTest, FindRegistration_LongestScopeMatch) { 1401 TEST_F(ServiceWorkerStorageTest, FindRegistration_LongestScopeMatch) {
1402 const GURL kDocumentUrl("http://www.example.com/scope/foo"); 1402 const GURL kDocumentUrl("http://www.example.com/scope/foo");
1403 scoped_refptr<ServiceWorkerRegistration> found_registration; 1403 scoped_refptr<ServiceWorkerRegistration> found_registration;
1404 1404
1405 // Registration for "/scope/". 1405 // Registration for "/scope/".
1406 const GURL kScope1("http://www.example.com/scope/"); 1406 const GURL kScope1("http://www.example.com/scope/");
1407 const GURL kScript1("http://www.example.com/script1.js"); 1407 const GURL kScript1("http://www.example.com/script1.js");
1408 const int64 kRegistrationId1 = 1; 1408 const int64 kRegistrationId1 = 1;
1409 const int64 kVersionId1 = 1; 1409 const std::string kVersionId1 = "96097827-4b07-4f1e-8d63-1cbae771ee00";
1410 scoped_refptr<ServiceWorkerRegistration> live_registration1 = 1410 scoped_refptr<ServiceWorkerRegistration> live_registration1 =
1411 new ServiceWorkerRegistration( 1411 new ServiceWorkerRegistration(
1412 kScope1, kRegistrationId1, context_ptr_); 1412 kScope1, kRegistrationId1, context_ptr_);
1413 scoped_refptr<ServiceWorkerVersion> live_version1 = 1413 scoped_refptr<ServiceWorkerVersion> live_version1 =
1414 new ServiceWorkerVersion( 1414 new ServiceWorkerVersion(
1415 live_registration1.get(), kScript1, kVersionId1, context_ptr_); 1415 live_registration1.get(), kScript1, kVersionId1, context_ptr_);
1416 std::vector<ServiceWorkerDatabase::ResourceRecord> records1; 1416 std::vector<ServiceWorkerDatabase::ResourceRecord> records1;
1417 records1.push_back(ServiceWorkerDatabase::ResourceRecord( 1417 records1.push_back(ServiceWorkerDatabase::ResourceRecord(
1418 1, live_version1->script_url(), 100)); 1418 1, live_version1->script_url(), 100));
1419 live_version1->script_cache_map()->SetResources(records1); 1419 live_version1->script_cache_map()->SetResources(records1);
1420 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); 1420 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED);
1421 live_registration1->SetWaitingVersion(live_version1); 1421 live_registration1->SetWaitingVersion(live_version1);
1422 1422
1423 // Registration for "/scope/foo". 1423 // Registration for "/scope/foo".
1424 const GURL kScope2("http://www.example.com/scope/foo"); 1424 const GURL kScope2("http://www.example.com/scope/foo");
1425 const GURL kScript2("http://www.example.com/script2.js"); 1425 const GURL kScript2("http://www.example.com/script2.js");
1426 const int64 kRegistrationId2 = 2; 1426 const int64 kRegistrationId2 = 2;
1427 const int64 kVersionId2 = 2; 1427 const std::string kVersionId2 = "721a870b-f0e6-4740-88e4-3055a7662ac0";
1428 scoped_refptr<ServiceWorkerRegistration> live_registration2 = 1428 scoped_refptr<ServiceWorkerRegistration> live_registration2 =
1429 new ServiceWorkerRegistration( 1429 new ServiceWorkerRegistration(
1430 kScope2, kRegistrationId2, context_ptr_); 1430 kScope2, kRegistrationId2, context_ptr_);
1431 scoped_refptr<ServiceWorkerVersion> live_version2 = 1431 scoped_refptr<ServiceWorkerVersion> live_version2 =
1432 new ServiceWorkerVersion( 1432 new ServiceWorkerVersion(
1433 live_registration2.get(), kScript2, kVersionId2, context_ptr_); 1433 live_registration2.get(), kScript2, kVersionId2, context_ptr_);
1434 std::vector<ServiceWorkerDatabase::ResourceRecord> records2; 1434 std::vector<ServiceWorkerDatabase::ResourceRecord> records2;
1435 records2.push_back(ServiceWorkerDatabase::ResourceRecord( 1435 records2.push_back(ServiceWorkerDatabase::ResourceRecord(
1436 2, live_version2->script_url(), 100)); 1436 2, live_version2->script_url(), 100));
1437 live_version2->script_cache_map()->SetResources(records2); 1437 live_version2->script_cache_map()->SetResources(records2);
1438 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); 1438 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED);
1439 live_registration2->SetWaitingVersion(live_version2); 1439 live_registration2->SetWaitingVersion(live_version2);
1440 1440
1441 // Registration for "/scope/foobar". 1441 // Registration for "/scope/foobar".
1442 const GURL kScope3("http://www.example.com/scope/foobar"); 1442 const GURL kScope3("http://www.example.com/scope/foobar");
1443 const GURL kScript3("http://www.example.com/script3.js"); 1443 const GURL kScript3("http://www.example.com/script3.js");
1444 const int64 kRegistrationId3 = 3; 1444 const int64 kRegistrationId3 = 3;
1445 const int64 kVersionId3 = 3; 1445 const std::string kVersionId3 = "4ac0d6cf-8369-4d1b-8961-ba5a0fb01d2d";
1446 scoped_refptr<ServiceWorkerRegistration> live_registration3 = 1446 scoped_refptr<ServiceWorkerRegistration> live_registration3 =
1447 new ServiceWorkerRegistration( 1447 new ServiceWorkerRegistration(
1448 kScope3, kRegistrationId3, context_ptr_); 1448 kScope3, kRegistrationId3, context_ptr_);
1449 scoped_refptr<ServiceWorkerVersion> live_version3 = 1449 scoped_refptr<ServiceWorkerVersion> live_version3 =
1450 new ServiceWorkerVersion( 1450 new ServiceWorkerVersion(
1451 live_registration3.get(), kScript3, kVersionId3, context_ptr_); 1451 live_registration3.get(), kScript3, kVersionId3, context_ptr_);
1452 std::vector<ServiceWorkerDatabase::ResourceRecord> records3; 1452 std::vector<ServiceWorkerDatabase::ResourceRecord> records3;
1453 records3.push_back(ServiceWorkerDatabase::ResourceRecord( 1453 records3.push_back(ServiceWorkerDatabase::ResourceRecord(
1454 3, live_version3->script_url(), 100)); 1454 3, live_version3->script_url(), 100));
1455 live_version3->script_cache_map()->SetResources(records3); 1455 live_version3->script_cache_map()->SetResources(records3);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1547 are_equal = true; 1547 are_equal = true;
1548 storage()->CompareScriptResources( 1548 storage()->CompareScriptResources(
1549 5, 6, 1549 5, 6,
1550 base::Bind(&OnCompareComplete, &status, &are_equal)); 1550 base::Bind(&OnCompareComplete, &status, &are_equal));
1551 base::RunLoop().RunUntilIdle(); 1551 base::RunLoop().RunUntilIdle();
1552 EXPECT_EQ(SERVICE_WORKER_OK, status); 1552 EXPECT_EQ(SERVICE_WORKER_OK, status);
1553 EXPECT_FALSE(are_equal); 1553 EXPECT_FALSE(are_equal);
1554 } 1554 }
1555 1555
1556 } // namespace content 1556 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698