| 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/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 EXPECT_TRUE(was_called); | 311 EXPECT_TRUE(was_called); |
| 312 return result; | 312 return result; |
| 313 } | 313 } |
| 314 | 314 |
| 315 scoped_ptr<ServiceWorkerContextCore> context_; | 315 scoped_ptr<ServiceWorkerContextCore> context_; |
| 316 base::WeakPtr<ServiceWorkerContextCore> context_ptr_; | 316 base::WeakPtr<ServiceWorkerContextCore> context_ptr_; |
| 317 TestBrowserThreadBundle browser_thread_bundle_; | 317 TestBrowserThreadBundle browser_thread_bundle_; |
| 318 }; | 318 }; |
| 319 | 319 |
| 320 TEST_F(ServiceWorkerStorageTest, StoreFindUpdateDeleteRegistration) { | 320 TEST_F(ServiceWorkerStorageTest, StoreFindUpdateDeleteRegistration) { |
| 321 const GURL kScope("http://www.test.not/scope/*"); | 321 const GURL kScope("http://www.test.not/scope/"); |
| 322 const GURL kScript("http://www.test.not/script.js"); | 322 const GURL kScript("http://www.test.not/script.js"); |
| 323 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); | 323 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); |
| 324 const int64 kRegistrationId = 0; | 324 const int64 kRegistrationId = 0; |
| 325 const int64 kVersionId = 0; | 325 const int64 kVersionId = 0; |
| 326 | 326 |
| 327 scoped_refptr<ServiceWorkerRegistration> found_registration; | 327 scoped_refptr<ServiceWorkerRegistration> found_registration; |
| 328 | 328 |
| 329 // We shouldn't find anything without having stored anything. | 329 // We shouldn't find anything without having stored anything. |
| 330 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, | 330 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, |
| 331 FindRegistrationForDocument(kDocumentUrl, &found_registration)); | 331 FindRegistrationForDocument(kDocumentUrl, &found_registration)); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 FindRegistrationForId( | 438 FindRegistrationForId( |
| 439 kRegistrationId, kScope.GetOrigin(), &found_registration)); | 439 kRegistrationId, kScope.GetOrigin(), &found_registration)); |
| 440 EXPECT_FALSE(found_registration); | 440 EXPECT_FALSE(found_registration); |
| 441 | 441 |
| 442 // Deleting an unstored registration should succeed. | 442 // Deleting an unstored registration should succeed. |
| 443 EXPECT_EQ(SERVICE_WORKER_OK, | 443 EXPECT_EQ(SERVICE_WORKER_OK, |
| 444 DeleteRegistration(kRegistrationId + 1, kScope.GetOrigin())); | 444 DeleteRegistration(kRegistrationId + 1, kScope.GetOrigin())); |
| 445 } | 445 } |
| 446 | 446 |
| 447 TEST_F(ServiceWorkerStorageTest, InstallingRegistrationsAreFindable) { | 447 TEST_F(ServiceWorkerStorageTest, InstallingRegistrationsAreFindable) { |
| 448 const GURL kScope("http://www.test.not/scope/*"); | 448 const GURL kScope("http://www.test.not/scope/"); |
| 449 const GURL kScript("http://www.test.not/script.js"); | 449 const GURL kScript("http://www.test.not/script.js"); |
| 450 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); | 450 const GURL kDocumentUrl("http://www.test.not/scope/document.html"); |
| 451 const int64 kRegistrationId = 0; | 451 const int64 kRegistrationId = 0; |
| 452 const int64 kVersionId = 0; | 452 const int64 kVersionId = 0; |
| 453 | 453 |
| 454 scoped_refptr<ServiceWorkerRegistration> found_registration; | 454 scoped_refptr<ServiceWorkerRegistration> found_registration; |
| 455 | 455 |
| 456 // Create an unstored registration. | 456 // Create an unstored registration. |
| 457 scoped_refptr<ServiceWorkerRegistration> live_registration = | 457 scoped_refptr<ServiceWorkerRegistration> live_registration = |
| 458 new ServiceWorkerRegistration( | 458 new ServiceWorkerRegistration( |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 EXPECT_TRUE(all_registrations.empty()); | 527 EXPECT_TRUE(all_registrations.empty()); |
| 528 } | 528 } |
| 529 | 529 |
| 530 class ServiceWorkerResourceStorageTest : public ServiceWorkerStorageTest { | 530 class ServiceWorkerResourceStorageTest : public ServiceWorkerStorageTest { |
| 531 public: | 531 public: |
| 532 virtual void SetUp() OVERRIDE { | 532 virtual void SetUp() OVERRIDE { |
| 533 ServiceWorkerStorageTest::SetUp(); | 533 ServiceWorkerStorageTest::SetUp(); |
| 534 | 534 |
| 535 storage()->LazyInitialize(base::Bind(&base::DoNothing)); | 535 storage()->LazyInitialize(base::Bind(&base::DoNothing)); |
| 536 base::RunLoop().RunUntilIdle(); | 536 base::RunLoop().RunUntilIdle(); |
| 537 scope_ = GURL("http://www.test.not/scope/*"); | 537 scope_ = GURL("http://www.test.not/scope/"); |
| 538 script_ = GURL("http://www.test.not/script.js"); | 538 script_ = GURL("http://www.test.not/script.js"); |
| 539 import_ = GURL("http://www.test.not/import.js"); | 539 import_ = GURL("http://www.test.not/import.js"); |
| 540 document_url_ = GURL("http://www.test.not/scope/document.html"); | 540 document_url_ = GURL("http://www.test.not/scope/document.html"); |
| 541 registration_id_ = storage()->NewRegistrationId(); | 541 registration_id_ = storage()->NewRegistrationId(); |
| 542 version_id_ = storage()->NewVersionId(); | 542 version_id_ = storage()->NewVersionId(); |
| 543 resource_id1_ = storage()->NewResourceId(); | 543 resource_id1_ = storage()->NewResourceId(); |
| 544 resource_id2_ = storage()->NewResourceId(); | 544 resource_id2_ = storage()->NewResourceId(); |
| 545 | 545 |
| 546 // Cons up a new registration+version with two script resources. | 546 // Cons up a new registration+version with two script resources. |
| 547 RegistrationData data; | 547 RegistrationData data; |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 EXPECT_TRUE(verify_ids.empty()); | 884 EXPECT_TRUE(verify_ids.empty()); |
| 885 | 885 |
| 886 EXPECT_FALSE(VerifyBasicResponse(storage(), resource_id1_, false)); | 886 EXPECT_FALSE(VerifyBasicResponse(storage(), resource_id1_, false)); |
| 887 EXPECT_FALSE(VerifyBasicResponse(storage(), resource_id2_, false)); | 887 EXPECT_FALSE(VerifyBasicResponse(storage(), resource_id2_, false)); |
| 888 } | 888 } |
| 889 | 889 |
| 890 TEST_F(ServiceWorkerStorageTest, FindRegistration_LongestScopeMatch) { | 890 TEST_F(ServiceWorkerStorageTest, FindRegistration_LongestScopeMatch) { |
| 891 const GURL kDocumentUrl("http://www.example.com/scope/foo"); | 891 const GURL kDocumentUrl("http://www.example.com/scope/foo"); |
| 892 scoped_refptr<ServiceWorkerRegistration> found_registration; | 892 scoped_refptr<ServiceWorkerRegistration> found_registration; |
| 893 | 893 |
| 894 // Registration for "/scope/*". | 894 // Registration for "/scope/". |
| 895 const GURL kScope1("http://www.example.com/scope/*"); | 895 const GURL kScope1("http://www.example.com/scope/"); |
| 896 const GURL kScript1("http://www.example.com/script1.js"); | 896 const GURL kScript1("http://www.example.com/script1.js"); |
| 897 const int64 kRegistrationId1 = 1; | 897 const int64 kRegistrationId1 = 1; |
| 898 const int64 kVersionId1 = 1; | 898 const int64 kVersionId1 = 1; |
| 899 scoped_refptr<ServiceWorkerRegistration> live_registration1 = | 899 scoped_refptr<ServiceWorkerRegistration> live_registration1 = |
| 900 new ServiceWorkerRegistration( | 900 new ServiceWorkerRegistration( |
| 901 kScope1, kScript1, kRegistrationId1, context_ptr_); | 901 kScope1, kScript1, kRegistrationId1, context_ptr_); |
| 902 scoped_refptr<ServiceWorkerVersion> live_version1 = | 902 scoped_refptr<ServiceWorkerVersion> live_version1 = |
| 903 new ServiceWorkerVersion( | 903 new ServiceWorkerVersion( |
| 904 live_registration1, kVersionId1, context_ptr_); | 904 live_registration1, kVersionId1, context_ptr_); |
| 905 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); | 905 live_version1->SetStatus(ServiceWorkerVersion::INSTALLED); |
| 906 live_registration1->SetWaitingVersion(live_version1); | 906 live_registration1->SetWaitingVersion(live_version1); |
| 907 | 907 |
| 908 // Registration for "/scope/foo*". | 908 // Registration for "/scope/foo". |
| 909 const GURL kScope2("http://www.example.com/scope/foo*"); | 909 const GURL kScope2("http://www.example.com/scope/foo"); |
| 910 const GURL kScript2("http://www.example.com/script2.js"); | 910 const GURL kScript2("http://www.example.com/script2.js"); |
| 911 const int64 kRegistrationId2 = 2; | 911 const int64 kRegistrationId2 = 2; |
| 912 const int64 kVersionId2 = 2; | 912 const int64 kVersionId2 = 2; |
| 913 scoped_refptr<ServiceWorkerRegistration> live_registration2 = | 913 scoped_refptr<ServiceWorkerRegistration> live_registration2 = |
| 914 new ServiceWorkerRegistration( | 914 new ServiceWorkerRegistration( |
| 915 kScope2, kScript2, kRegistrationId2, context_ptr_); | 915 kScope2, kScript2, kRegistrationId2, context_ptr_); |
| 916 scoped_refptr<ServiceWorkerVersion> live_version2 = | 916 scoped_refptr<ServiceWorkerVersion> live_version2 = |
| 917 new ServiceWorkerVersion( | 917 new ServiceWorkerVersion( |
| 918 live_registration2, kVersionId2, context_ptr_); | 918 live_registration2, kVersionId2, context_ptr_); |
| 919 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); | 919 live_version2->SetStatus(ServiceWorkerVersion::INSTALLED); |
| 920 live_registration2->SetWaitingVersion(live_version2); | 920 live_registration2->SetWaitingVersion(live_version2); |
| 921 | 921 |
| 922 // Registration for "/scope/foo". | 922 // Registration for "/scope/foobar". |
| 923 const GURL kScope3("http://www.example.com/scope/foo"); | 923 const GURL kScope3("http://www.example.com/scope/foobar"); |
| 924 const GURL kScript3("http://www.example.com/script3.js"); | 924 const GURL kScript3("http://www.example.com/script3.js"); |
| 925 const int64 kRegistrationId3 = 3; | 925 const int64 kRegistrationId3 = 3; |
| 926 const int64 kVersionId3 = 3; | 926 const int64 kVersionId3 = 3; |
| 927 scoped_refptr<ServiceWorkerRegistration> live_registration3 = | 927 scoped_refptr<ServiceWorkerRegistration> live_registration3 = |
| 928 new ServiceWorkerRegistration( | 928 new ServiceWorkerRegistration( |
| 929 kScope3, kScript3, kRegistrationId3, context_ptr_); | 929 kScope3, kScript3, kRegistrationId3, context_ptr_); |
| 930 scoped_refptr<ServiceWorkerVersion> live_version3 = | 930 scoped_refptr<ServiceWorkerVersion> live_version3 = |
| 931 new ServiceWorkerVersion( | 931 new ServiceWorkerVersion( |
| 932 live_registration3, kVersionId3, context_ptr_); | 932 live_registration3, kVersionId3, context_ptr_); |
| 933 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED); | 933 live_version3->SetStatus(ServiceWorkerVersion::INSTALLED); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 are_equal = true; | 1022 are_equal = true; |
| 1023 storage()->CompareScriptResources( | 1023 storage()->CompareScriptResources( |
| 1024 5, 6, | 1024 5, 6, |
| 1025 base::Bind(&OnCompareComplete, &status, &are_equal)); | 1025 base::Bind(&OnCompareComplete, &status, &are_equal)); |
| 1026 base::RunLoop().RunUntilIdle(); | 1026 base::RunLoop().RunUntilIdle(); |
| 1027 EXPECT_EQ(SERVICE_WORKER_OK, status); | 1027 EXPECT_EQ(SERVICE_WORKER_OK, status); |
| 1028 EXPECT_FALSE(are_equal); | 1028 EXPECT_FALSE(are_equal); |
| 1029 } | 1029 } |
| 1030 | 1030 |
| 1031 } // namespace content | 1031 } // namespace content |
| OLD | NEW |