OLD | NEW |
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/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 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 EXPECT_FALSE(found_registration); | 343 EXPECT_FALSE(found_registration); |
344 | 344 |
345 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, | 345 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, |
346 FindRegistrationForId( | 346 FindRegistrationForId( |
347 kRegistrationId, kScope.GetOrigin(), &found_registration)); | 347 kRegistrationId, kScope.GetOrigin(), &found_registration)); |
348 EXPECT_FALSE(found_registration); | 348 EXPECT_FALSE(found_registration); |
349 | 349 |
350 // Store something. | 350 // Store something. |
351 scoped_refptr<ServiceWorkerRegistration> live_registration = | 351 scoped_refptr<ServiceWorkerRegistration> live_registration = |
352 new ServiceWorkerRegistration( | 352 new ServiceWorkerRegistration( |
353 kScope, kScript, kRegistrationId, context_ptr_); | 353 kScope, kRegistrationId, context_ptr_); |
354 scoped_refptr<ServiceWorkerVersion> live_version = | 354 scoped_refptr<ServiceWorkerVersion> live_version = |
355 new ServiceWorkerVersion( | 355 new ServiceWorkerVersion( |
356 live_registration, kVersionId, context_ptr_); | 356 live_registration, kScript, kVersionId, context_ptr_); |
357 live_version->SetStatus(ServiceWorkerVersion::INSTALLED); | 357 live_version->SetStatus(ServiceWorkerVersion::INSTALLED); |
358 live_registration->SetWaitingVersion(live_version); | 358 live_registration->SetWaitingVersion(live_version); |
359 live_registration->set_last_update_check(kYesterday); | 359 live_registration->set_last_update_check(kYesterday); |
360 EXPECT_EQ(SERVICE_WORKER_OK, | 360 EXPECT_EQ(SERVICE_WORKER_OK, |
361 StoreRegistration(live_registration, live_version)); | 361 StoreRegistration(live_registration, live_version)); |
362 | 362 |
363 // Now we should find it and get the live ptr back immediately. | 363 // Now we should find it and get the live ptr back immediately. |
364 EXPECT_EQ(SERVICE_WORKER_OK, | 364 EXPECT_EQ(SERVICE_WORKER_OK, |
365 FindRegistrationForDocument(kDocumentUrl, &found_registration)); | 365 FindRegistrationForDocument(kDocumentUrl, &found_registration)); |
366 EXPECT_EQ(live_registration, found_registration); | 366 EXPECT_EQ(live_registration, found_registration); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 temp_version = NULL; | 416 temp_version = NULL; |
417 EXPECT_EQ(SERVICE_WORKER_OK, UpdateToActiveState(found_registration)); | 417 EXPECT_EQ(SERVICE_WORKER_OK, UpdateToActiveState(found_registration)); |
418 found_registration->set_last_update_check(kToday); | 418 found_registration->set_last_update_check(kToday); |
419 UpdateLastUpdateCheckTime(found_registration); | 419 UpdateLastUpdateCheckTime(found_registration); |
420 | 420 |
421 found_registration = NULL; | 421 found_registration = NULL; |
422 | 422 |
423 // Trying to update a unstored registration to active should fail. | 423 // Trying to update a unstored registration to active should fail. |
424 scoped_refptr<ServiceWorkerRegistration> unstored_registration = | 424 scoped_refptr<ServiceWorkerRegistration> unstored_registration = |
425 new ServiceWorkerRegistration( | 425 new ServiceWorkerRegistration( |
426 kScope, kScript, kRegistrationId + 1, context_ptr_); | 426 kScope, kRegistrationId + 1, context_ptr_); |
427 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, | 427 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, |
428 UpdateToActiveState(unstored_registration)); | 428 UpdateToActiveState(unstored_registration)); |
429 unstored_registration = NULL; | 429 unstored_registration = NULL; |
430 | 430 |
431 // The Find methods should return a registration with an active version | 431 // The Find methods should return a registration with an active version |
432 // and the expected update time. | 432 // and the expected update time. |
433 EXPECT_EQ(SERVICE_WORKER_OK, | 433 EXPECT_EQ(SERVICE_WORKER_OK, |
434 FindRegistrationForDocument(kDocumentUrl, &found_registration)); | 434 FindRegistrationForDocument(kDocumentUrl, &found_registration)); |
435 ASSERT_TRUE(found_registration); | 435 ASSERT_TRUE(found_registration); |
436 EXPECT_EQ(kRegistrationId, found_registration->id()); | 436 EXPECT_EQ(kRegistrationId, found_registration->id()); |
(...skipping 26 matching lines...) Expand all Loading... |
463 const GURL kScript("http://www.test.not/script.js"); | 463 const GURL kScript("http://www.test.not/script.js"); |
464 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); | 464 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); |
465 const int64 kRegistrationId = 0; | 465 const int64 kRegistrationId = 0; |
466 const int64 kVersionId = 0; | 466 const int64 kVersionId = 0; |
467 | 467 |
468 scoped_refptr<ServiceWorkerRegistration> found_registration; | 468 scoped_refptr<ServiceWorkerRegistration> found_registration; |
469 | 469 |
470 // Create an unstored registration. | 470 // Create an unstored registration. |
471 scoped_refptr<ServiceWorkerRegistration> live_registration = | 471 scoped_refptr<ServiceWorkerRegistration> live_registration = |
472 new ServiceWorkerRegistration( | 472 new ServiceWorkerRegistration( |
473 kScope, kScript, kRegistrationId, context_ptr_); | 473 kScope, kRegistrationId, context_ptr_); |
474 scoped_refptr<ServiceWorkerVersion> live_version = | 474 scoped_refptr<ServiceWorkerVersion> live_version = |
475 new ServiceWorkerVersion( | 475 new ServiceWorkerVersion( |
476 live_registration, kVersionId, context_ptr_); | 476 live_registration, kScript, kVersionId, context_ptr_); |
477 live_version->SetStatus(ServiceWorkerVersion::INSTALLING); | 477 live_version->SetStatus(ServiceWorkerVersion::INSTALLING); |
478 live_registration->SetWaitingVersion(live_version); | 478 live_registration->SetWaitingVersion(live_version); |
479 | 479 |
480 // Should not be findable, including by GetAllRegistrations. | 480 // Should not be findable, including by GetAllRegistrations. |
481 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, | 481 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, |
482 FindRegistrationForId( | 482 FindRegistrationForId( |
483 kRegistrationId, kScope.GetOrigin(), &found_registration)); | 483 kRegistrationId, kScope.GetOrigin(), &found_registration)); |
484 EXPECT_FALSE(found_registration); | 484 EXPECT_FALSE(found_registration); |
485 | 485 |
486 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, | 486 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 context_->AsWeakPtr(), | 855 context_->AsWeakPtr(), |
856 NULL)); | 856 NULL)); |
857 registration_->active_version()->AddControllee(host.get()); | 857 registration_->active_version()->AddControllee(host.get()); |
858 | 858 |
859 bool was_called = false; | 859 bool was_called = false; |
860 ServiceWorkerStatusCode result = SERVICE_WORKER_ERROR_FAILED; | 860 ServiceWorkerStatusCode result = SERVICE_WORKER_ERROR_FAILED; |
861 std::set<int64> verify_ids; | 861 std::set<int64> verify_ids; |
862 | 862 |
863 // Make an updated registration. | 863 // Make an updated registration. |
864 scoped_refptr<ServiceWorkerVersion> live_version = new ServiceWorkerVersion( | 864 scoped_refptr<ServiceWorkerVersion> live_version = new ServiceWorkerVersion( |
865 registration_, storage()->NewVersionId(), context_ptr_); | 865 registration_, script_, storage()->NewVersionId(), context_ptr_); |
866 live_version->SetStatus(ServiceWorkerVersion::NEW); | 866 live_version->SetStatus(ServiceWorkerVersion::NEW); |
867 registration_->SetWaitingVersion(live_version); | 867 registration_->SetWaitingVersion(live_version); |
868 | 868 |
869 // Writing the registration should move the old version's resources to the | 869 // Writing the registration should move the old version's resources to the |
870 // purgeable list but keep them available. | 870 // purgeable list but keep them available. |
871 storage()->StoreRegistration( | 871 storage()->StoreRegistration( |
872 registration_, | 872 registration_, |
873 registration_->waiting_version(), | 873 registration_->waiting_version(), |
874 base::Bind(&VerifyPurgeableListStatusCallback, | 874 base::Bind(&VerifyPurgeableListStatusCallback, |
875 base::Unretained(storage()->database_.get()), | 875 base::Unretained(storage()->database_.get()), |
(...skipping 30 matching lines...) Expand all Loading... |
906 const GURL kDocumentUrl("http://www.example.com/scope/foo"); | 906 const GURL kDocumentUrl("http://www.example.com/scope/foo"); |
907 scoped_refptr<ServiceWorkerRegistration> found_registration; | 907 scoped_refptr<ServiceWorkerRegistration> found_registration; |
908 | 908 |
909 // Registration for "/scope/". | 909 // Registration for "/scope/". |
910 const GURL kScope1("http://www.example.com/scope/"); | 910 const GURL kScope1("http://www.example.com/scope/"); |
911 const GURL kScript1("http://www.example.com/script1.js"); | 911 const GURL kScript1("http://www.example.com/script1.js"); |
912 const int64 kRegistrationId1 = 1; | 912 const int64 kRegistrationId1 = 1; |
913 const int64 kVersionId1 = 1; | 913 const int64 kVersionId1 = 1; |
914 scoped_refptr<ServiceWorkerRegistration> live_registration1 = | 914 scoped_refptr<ServiceWorkerRegistration> live_registration1 = |
915 new ServiceWorkerRegistration( | 915 new ServiceWorkerRegistration( |
916 kScope1, kScript1, kRegistrationId1, context_ptr_); | 916 kScope1, kRegistrationId1, context_ptr_); |
917 scoped_refptr<ServiceWorkerVersion> live_version1 = | 917 scoped_refptr<ServiceWorkerVersion> live_version1 = |
918 new ServiceWorkerVersion( | 918 new ServiceWorkerVersion( |
919 live_registration1, kVersionId1, context_ptr_); | 919 live_registration1, kScript1, kVersionId1, context_ptr_); |
920 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); | 920 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); |
921 live_registration1->SetWaitingVersion(live_version1); | 921 live_registration1->SetWaitingVersion(live_version1); |
922 | 922 |
923 // Registration for "/scope/foo". | 923 // Registration for "/scope/foo". |
924 const GURL kScope2("http://www.example.com/scope/foo"); | 924 const GURL kScope2("http://www.example.com/scope/foo"); |
925 const GURL kScript2("http://www.example.com/script2.js"); | 925 const GURL kScript2("http://www.example.com/script2.js"); |
926 const int64 kRegistrationId2 = 2; | 926 const int64 kRegistrationId2 = 2; |
927 const int64 kVersionId2 = 2; | 927 const int64 kVersionId2 = 2; |
928 scoped_refptr<ServiceWorkerRegistration> live_registration2 = | 928 scoped_refptr<ServiceWorkerRegistration> live_registration2 = |
929 new ServiceWorkerRegistration( | 929 new ServiceWorkerRegistration( |
930 kScope2, kScript2, kRegistrationId2, context_ptr_); | 930 kScope2, kRegistrationId2, context_ptr_); |
931 scoped_refptr<ServiceWorkerVersion> live_version2 = | 931 scoped_refptr<ServiceWorkerVersion> live_version2 = |
932 new ServiceWorkerVersion( | 932 new ServiceWorkerVersion( |
933 live_registration2, kVersionId2, context_ptr_); | 933 live_registration2, kScript2, kVersionId2, context_ptr_); |
934 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); | 934 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); |
935 live_registration2->SetWaitingVersion(live_version2); | 935 live_registration2->SetWaitingVersion(live_version2); |
936 | 936 |
937 // Registration for "/scope/foobar". | 937 // Registration for "/scope/foobar". |
938 const GURL kScope3("http://www.example.com/scope/foobar"); | 938 const GURL kScope3("http://www.example.com/scope/foobar"); |
939 const GURL kScript3("http://www.example.com/script3.js"); | 939 const GURL kScript3("http://www.example.com/script3.js"); |
940 const int64 kRegistrationId3 = 3; | 940 const int64 kRegistrationId3 = 3; |
941 const int64 kVersionId3 = 3; | 941 const int64 kVersionId3 = 3; |
942 scoped_refptr<ServiceWorkerRegistration> live_registration3 = | 942 scoped_refptr<ServiceWorkerRegistration> live_registration3 = |
943 new ServiceWorkerRegistration( | 943 new ServiceWorkerRegistration( |
944 kScope3, kScript3, kRegistrationId3, context_ptr_); | 944 kScope3, kRegistrationId3, context_ptr_); |
945 scoped_refptr<ServiceWorkerVersion> live_version3 = | 945 scoped_refptr<ServiceWorkerVersion> live_version3 = |
946 new ServiceWorkerVersion( | 946 new ServiceWorkerVersion( |
947 live_registration3, kVersionId3, context_ptr_); | 947 live_registration3, kScript3, kVersionId3, context_ptr_); |
948 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED); | 948 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED); |
949 live_registration3->SetWaitingVersion(live_version3); | 949 live_registration3->SetWaitingVersion(live_version3); |
950 | 950 |
951 // Notify storage of they being installed. | 951 // Notify storage of they being installed. |
952 storage()->NotifyInstallingRegistration(live_registration1); | 952 storage()->NotifyInstallingRegistration(live_registration1); |
953 storage()->NotifyInstallingRegistration(live_registration2); | 953 storage()->NotifyInstallingRegistration(live_registration2); |
954 storage()->NotifyInstallingRegistration(live_registration3); | 954 storage()->NotifyInstallingRegistration(live_registration3); |
955 | 955 |
956 // Find a registration among installing ones. | 956 // Find a registration among installing ones. |
957 EXPECT_EQ(SERVICE_WORKER_OK, | 957 EXPECT_EQ(SERVICE_WORKER_OK, |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 are_equal = true; | 1037 are_equal = true; |
1038 storage()->CompareScriptResources( | 1038 storage()->CompareScriptResources( |
1039 5, 6, | 1039 5, 6, |
1040 base::Bind(&OnCompareComplete, &status, &are_equal)); | 1040 base::Bind(&OnCompareComplete, &status, &are_equal)); |
1041 base::RunLoop().RunUntilIdle(); | 1041 base::RunLoop().RunUntilIdle(); |
1042 EXPECT_EQ(SERVICE_WORKER_OK, status); | 1042 EXPECT_EQ(SERVICE_WORKER_OK, status); |
1043 EXPECT_FALSE(are_equal); | 1043 EXPECT_FALSE(are_equal); |
1044 } | 1044 } |
1045 | 1045 |
1046 } // namespace content | 1046 } // namespace content |
OLD | NEW |