| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/service_worker/service_worker_database.h" | 5 #include "content/browser/service_worker/service_worker_database.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 GURL URL(const GURL& origin, const std::string& path) { | 32 GURL URL(const GURL& origin, const std::string& path) { |
| 33 EXPECT_TRUE(origin.is_valid()); | 33 EXPECT_TRUE(origin.is_valid()); |
| 34 EXPECT_EQ(origin, origin.GetOrigin()); | 34 EXPECT_EQ(origin, origin.GetOrigin()); |
| 35 GURL out(origin.spec() + path); | 35 GURL out(origin.spec() + path); |
| 36 EXPECT_TRUE(out.is_valid()); | 36 EXPECT_TRUE(out.is_valid()); |
| 37 return out; | 37 return out; |
| 38 } | 38 } |
| 39 | 39 |
| 40 Resource CreateResource(int64 resource_id, const GURL& url) { | 40 Resource CreateResource(int64 resource_id, const GURL& url, uint64 size_bytes) { |
| 41 EXPECT_TRUE(url.is_valid()); | 41 EXPECT_TRUE(url.is_valid()); |
| 42 Resource resource; | 42 return Resource(resource_id, url, size_bytes); |
| 43 resource.resource_id = resource_id; | |
| 44 resource.url = url; | |
| 45 return resource; | |
| 46 } | 43 } |
| 47 | 44 |
| 48 ServiceWorkerDatabase* CreateDatabase(const base::FilePath& path) { | 45 ServiceWorkerDatabase* CreateDatabase(const base::FilePath& path) { |
| 49 return new ServiceWorkerDatabase(path); | 46 return new ServiceWorkerDatabase(path); |
| 50 } | 47 } |
| 51 | 48 |
| 52 ServiceWorkerDatabase* CreateDatabaseInMemory() { | 49 ServiceWorkerDatabase* CreateDatabaseInMemory() { |
| 53 return new ServiceWorkerDatabase(base::FilePath()); | 50 return new ServiceWorkerDatabase(base::FilePath()); |
| 54 } | 51 } |
| 55 | 52 |
| 56 void VerifyRegistrationData(const RegistrationData& expected, | 53 void VerifyRegistrationData(const RegistrationData& expected, |
| 57 const RegistrationData& actual) { | 54 const RegistrationData& actual) { |
| 58 EXPECT_EQ(expected.registration_id, actual.registration_id); | 55 EXPECT_EQ(expected.registration_id, actual.registration_id); |
| 59 EXPECT_EQ(expected.scope, actual.scope); | 56 EXPECT_EQ(expected.scope, actual.scope); |
| 60 EXPECT_EQ(expected.script, actual.script); | 57 EXPECT_EQ(expected.script, actual.script); |
| 61 EXPECT_EQ(expected.version_id, actual.version_id); | 58 EXPECT_EQ(expected.version_id, actual.version_id); |
| 62 EXPECT_EQ(expected.is_active, actual.is_active); | 59 EXPECT_EQ(expected.is_active, actual.is_active); |
| 63 EXPECT_EQ(expected.has_fetch_handler, actual.has_fetch_handler); | 60 EXPECT_EQ(expected.has_fetch_handler, actual.has_fetch_handler); |
| 64 EXPECT_EQ(expected.last_update_check, actual.last_update_check); | 61 EXPECT_EQ(expected.last_update_check, actual.last_update_check); |
| 62 EXPECT_EQ(expected.resources_total_size_bytes, |
| 63 actual.resources_total_size_bytes); |
| 65 } | 64 } |
| 66 | 65 |
| 67 void VerifyResourceRecords(const std::vector<Resource>& expected, | 66 void VerifyResourceRecords(const std::vector<Resource>& expected, |
| 68 const std::vector<Resource>& actual) { | 67 const std::vector<Resource>& actual) { |
| 69 ASSERT_EQ(expected.size(), actual.size()); | 68 ASSERT_EQ(expected.size(), actual.size()); |
| 70 for (size_t i = 0; i < expected.size(); ++i) { | 69 for (size_t i = 0; i < expected.size(); ++i) { |
| 71 EXPECT_EQ(expected[i].resource_id, actual[i].resource_id); | 70 EXPECT_EQ(expected[i].resource_id, actual[i].resource_id); |
| 72 EXPECT_EQ(expected[i].url, actual[i].url); | 71 EXPECT_EQ(expected[i].url, actual[i].url); |
| 72 EXPECT_EQ(expected[i].size_bytes, actual[i].size_bytes); |
| 73 } | 73 } |
| 74 } | 74 } |
| 75 | 75 |
| 76 } // namespace | 76 } // namespace |
| 77 | 77 |
| 78 TEST(ServiceWorkerDatabaseTest, OpenDatabase) { | 78 TEST(ServiceWorkerDatabaseTest, OpenDatabase) { |
| 79 base::ScopedTempDir database_dir; | 79 base::ScopedTempDir database_dir; |
| 80 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); | 80 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); |
| 81 scoped_ptr<ServiceWorkerDatabase> database( | 81 scoped_ptr<ServiceWorkerDatabase> database( |
| 82 CreateDatabase(database_dir.path())); | 82 CreateDatabase(database_dir.path())); |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 | 458 |
| 459 TEST(ServiceWorkerDatabaseTest, Registration_Basic) { | 459 TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
| 460 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 460 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 461 | 461 |
| 462 GURL origin("http://example.com"); | 462 GURL origin("http://example.com"); |
| 463 RegistrationData data; | 463 RegistrationData data; |
| 464 data.registration_id = 100; | 464 data.registration_id = 100; |
| 465 data.scope = URL(origin, "/foo"); | 465 data.scope = URL(origin, "/foo"); |
| 466 data.script = URL(origin, "/script.js"); | 466 data.script = URL(origin, "/script.js"); |
| 467 data.version_id = 200; | 467 data.version_id = 200; |
| 468 data.resources_total_size_bytes = 10939 + 200; |
| 468 | 469 |
| 469 std::vector<Resource> resources; | 470 std::vector<Resource> resources; |
| 470 resources.push_back(CreateResource(1, URL(origin, "/resource1"))); | 471 resources.push_back(CreateResource(1, URL(origin, "/resource1"), 10939)); |
| 471 resources.push_back(CreateResource(2, URL(origin, "/resource2"))); | 472 resources.push_back(CreateResource(2, URL(origin, "/resource2"), 200)); |
| 472 | 473 |
| 473 // Write a resource to the uncommitted list to make sure that writing | 474 // Write a resource to the uncommitted list to make sure that writing |
| 474 // registration removes resource ids associated with the registration from | 475 // registration removes resource ids associated with the registration from |
| 475 // the uncommitted list. | 476 // the uncommitted list. |
| 476 std::set<int64> uncommitted_ids; | 477 std::set<int64> uncommitted_ids; |
| 477 uncommitted_ids.insert(resources[0].resource_id); | 478 uncommitted_ids.insert(resources[0].resource_id); |
| 478 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 479 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 479 database->WriteUncommittedResourceIds(uncommitted_ids)); | 480 database->WriteUncommittedResourceIds(uncommitted_ids)); |
| 480 std::set<int64> uncommitted_ids_out; | 481 std::set<int64> uncommitted_ids_out; |
| 481 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 482 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 538 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 538 | 539 |
| 539 GURL origin("http://example.com"); | 540 GURL origin("http://example.com"); |
| 540 RegistrationData data; | 541 RegistrationData data; |
| 541 data.registration_id = 100; | 542 data.registration_id = 100; |
| 542 data.scope = URL(origin, "/foo"); | 543 data.scope = URL(origin, "/foo"); |
| 543 data.script = URL(origin, "/script.js"); | 544 data.script = URL(origin, "/script.js"); |
| 544 data.version_id = 200; | 545 data.version_id = 200; |
| 545 | 546 |
| 546 std::vector<Resource> resources; | 547 std::vector<Resource> resources; |
| 547 resources.push_back(CreateResource(1, URL(origin, "/resource1"))); | 548 resources.push_back(CreateResource(1, URL(origin, "/resource1"), 19)); |
| 548 resources.push_back(CreateResource(2, URL(origin, "/resource2"))); | 549 resources.push_back(CreateResource(2, URL(origin, "/resource2"), 29129)); |
| 549 | 550 |
| 550 const int64 kNonExistentRegistrationId = 999; | 551 const int64 kNonExistentRegistrationId = 999; |
| 551 const int64 kArbitraryVersionId = 222; // Used as a dummy initial value | 552 const int64 kArbitraryVersionId = 222; // Used as a dummy initial value |
| 552 | 553 |
| 553 int64 deleted_version_id = kArbitraryVersionId; | 554 int64 deleted_version_id = kArbitraryVersionId; |
| 554 std::vector<int64> newly_purgeable_resources; | 555 std::vector<int64> newly_purgeable_resources; |
| 555 EXPECT_EQ( | 556 EXPECT_EQ( |
| 556 ServiceWorkerDatabase::STATUS_OK, | 557 ServiceWorkerDatabase::STATUS_OK, |
| 557 database->WriteRegistration( | 558 database->WriteRegistration( |
| 558 data, resources, &deleted_version_id, &newly_purgeable_resources)); | 559 data, resources, &deleted_version_id, &newly_purgeable_resources)); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 586 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 587 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 587 | 588 |
| 588 GURL origin("http://example.com"); | 589 GURL origin("http://example.com"); |
| 589 RegistrationData data; | 590 RegistrationData data; |
| 590 data.registration_id = 100; | 591 data.registration_id = 100; |
| 591 data.scope = URL(origin, "/foo"); | 592 data.scope = URL(origin, "/foo"); |
| 592 data.script = URL(origin, "/script.js"); | 593 data.script = URL(origin, "/script.js"); |
| 593 data.version_id = 200; | 594 data.version_id = 200; |
| 594 | 595 |
| 595 std::vector<Resource> resources1; | 596 std::vector<Resource> resources1; |
| 596 resources1.push_back(CreateResource(1, URL(origin, "/resource1"))); | 597 resources1.push_back(CreateResource(1, URL(origin, "/resource1"), 10)); |
| 597 resources1.push_back(CreateResource(2, URL(origin, "/resource2"))); | 598 resources1.push_back(CreateResource(2, URL(origin, "/resource2"), 11)); |
| 598 | 599 |
| 599 int64 deleted_version_id = 222; // Dummy inital value | 600 int64 deleted_version_id = 222; // Dummy inital value |
| 600 std::vector<int64> newly_purgeable_resources; | 601 std::vector<int64> newly_purgeable_resources; |
| 601 | 602 |
| 602 EXPECT_EQ( | 603 EXPECT_EQ( |
| 603 ServiceWorkerDatabase::STATUS_OK, | 604 ServiceWorkerDatabase::STATUS_OK, |
| 604 database->WriteRegistration( | 605 database->WriteRegistration( |
| 605 data, resources1, &deleted_version_id, &newly_purgeable_resources)); | 606 data, resources1, &deleted_version_id, &newly_purgeable_resources)); |
| 606 EXPECT_EQ(kInvalidServiceWorkerVersionId, deleted_version_id); | 607 EXPECT_EQ(kInvalidServiceWorkerVersionId, deleted_version_id); |
| 607 EXPECT_TRUE(newly_purgeable_resources.empty()); | 608 EXPECT_TRUE(newly_purgeable_resources.empty()); |
| 608 | 609 |
| 609 // Make sure that the registration and resource records are stored. | 610 // Make sure that the registration and resource records are stored. |
| 610 RegistrationData data_out; | 611 RegistrationData data_out; |
| 611 std::vector<Resource> resources_out; | 612 std::vector<Resource> resources_out; |
| 612 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( | 613 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( |
| 613 data.registration_id, origin, &data_out, &resources_out)); | 614 data.registration_id, origin, &data_out, &resources_out)); |
| 614 VerifyRegistrationData(data, data_out); | 615 VerifyRegistrationData(data, data_out); |
| 615 VerifyResourceRecords(resources1, resources_out); | 616 VerifyResourceRecords(resources1, resources_out); |
| 616 | 617 |
| 617 // Update the registration. | 618 // Update the registration. |
| 618 RegistrationData updated_data = data; | 619 RegistrationData updated_data = data; |
| 619 updated_data.version_id = data.version_id + 1; | 620 updated_data.version_id = data.version_id + 1; |
| 620 std::vector<Resource> resources2; | 621 std::vector<Resource> resources2; |
| 621 resources2.push_back(CreateResource(3, URL(origin, "/resource3"))); | 622 resources2.push_back(CreateResource(3, URL(origin, "/resource3"), 12)); |
| 622 resources2.push_back(CreateResource(4, URL(origin, "/resource4"))); | 623 resources2.push_back(CreateResource(4, URL(origin, "/resource4"), 13)); |
| 623 | 624 |
| 624 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 625 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 625 database->WriteRegistration(updated_data, | 626 database->WriteRegistration(updated_data, |
| 626 resources2, | 627 resources2, |
| 627 &deleted_version_id, | 628 &deleted_version_id, |
| 628 &newly_purgeable_resources)); | 629 &newly_purgeable_resources)); |
| 629 EXPECT_EQ(data.version_id, deleted_version_id); | 630 EXPECT_EQ(data.version_id, deleted_version_id); |
| 630 ASSERT_EQ(resources1.size(), newly_purgeable_resources.size()); | 631 ASSERT_EQ(resources1.size(), newly_purgeable_resources.size()); |
| 631 for (size_t i = 0; i < resources1.size(); ++i) | 632 for (size_t i = 0; i < resources1.size(); ++i) |
| 632 EXPECT_EQ(newly_purgeable_resources[i], resources1[i].resource_id); | 633 EXPECT_EQ(newly_purgeable_resources[i], resources1[i].resource_id); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 655 std::vector<int64> newly_purgeable_resources; | 656 std::vector<int64> newly_purgeable_resources; |
| 656 | 657 |
| 657 // Add registration1. | 658 // Add registration1. |
| 658 RegistrationData data1; | 659 RegistrationData data1; |
| 659 data1.registration_id = 100; | 660 data1.registration_id = 100; |
| 660 data1.scope = URL(origin, "/foo"); | 661 data1.scope = URL(origin, "/foo"); |
| 661 data1.script = URL(origin, "/script1.js"); | 662 data1.script = URL(origin, "/script1.js"); |
| 662 data1.version_id = 200; | 663 data1.version_id = 200; |
| 663 | 664 |
| 664 std::vector<Resource> resources1; | 665 std::vector<Resource> resources1; |
| 665 resources1.push_back(CreateResource(1, URL(origin, "/resource1"))); | 666 resources1.push_back(CreateResource(1, URL(origin, "/resource1"), 1451)); |
| 666 resources1.push_back(CreateResource(2, URL(origin, "/resource2"))); | 667 resources1.push_back(CreateResource(2, URL(origin, "/resource2"), 15234)); |
| 667 EXPECT_EQ( | 668 EXPECT_EQ( |
| 668 ServiceWorkerDatabase::STATUS_OK, | 669 ServiceWorkerDatabase::STATUS_OK, |
| 669 database->WriteRegistration( | 670 database->WriteRegistration( |
| 670 data1, resources1, &deleted_version_id, &newly_purgeable_resources)); | 671 data1, resources1, &deleted_version_id, &newly_purgeable_resources)); |
| 671 | 672 |
| 672 // Add registration2. | 673 // Add registration2. |
| 673 RegistrationData data2; | 674 RegistrationData data2; |
| 674 data2.registration_id = 101; | 675 data2.registration_id = 101; |
| 675 data2.scope = URL(origin, "/bar"); | 676 data2.scope = URL(origin, "/bar"); |
| 676 data2.script = URL(origin, "/script2.js"); | 677 data2.script = URL(origin, "/script2.js"); |
| 677 data2.version_id = 201; | 678 data2.version_id = 201; |
| 678 | 679 |
| 679 std::vector<Resource> resources2; | 680 std::vector<Resource> resources2; |
| 680 resources2.push_back(CreateResource(3, URL(origin, "/resource3"))); | 681 resources2.push_back(CreateResource(3, URL(origin, "/resource3"), 5)); |
| 681 resources2.push_back(CreateResource(4, URL(origin, "/resource4"))); | 682 resources2.push_back(CreateResource(4, URL(origin, "/resource4"), 6)); |
| 682 EXPECT_EQ( | 683 EXPECT_EQ( |
| 683 ServiceWorkerDatabase::STATUS_OK, | 684 ServiceWorkerDatabase::STATUS_OK, |
| 684 database->WriteRegistration( | 685 database->WriteRegistration( |
| 685 data2, resources2, &deleted_version_id, &newly_purgeable_resources)); | 686 data2, resources2, &deleted_version_id, &newly_purgeable_resources)); |
| 686 | 687 |
| 687 // Make sure that registration1 is stored. | 688 // Make sure that registration1 is stored. |
| 688 RegistrationData data_out; | 689 RegistrationData data_out; |
| 689 std::vector<Resource> resources_out; | 690 std::vector<Resource> resources_out; |
| 690 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( | 691 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( |
| 691 data1.registration_id, origin, &data_out, &resources_out)); | 692 data1.registration_id, origin, &data_out, &resources_out)); |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 GURL origin2("http://example.org"); | 953 GURL origin2("http://example.org"); |
| 953 | 954 |
| 954 // |origin1| has two registrations. | 955 // |origin1| has two registrations. |
| 955 RegistrationData data1; | 956 RegistrationData data1; |
| 956 data1.registration_id = 10; | 957 data1.registration_id = 10; |
| 957 data1.scope = URL(origin1, "/foo"); | 958 data1.scope = URL(origin1, "/foo"); |
| 958 data1.script = URL(origin1, "/script1.js"); | 959 data1.script = URL(origin1, "/script1.js"); |
| 959 data1.version_id = 100; | 960 data1.version_id = 100; |
| 960 | 961 |
| 961 std::vector<Resource> resources1; | 962 std::vector<Resource> resources1; |
| 962 resources1.push_back(CreateResource(1, URL(origin1, "/resource1"))); | 963 resources1.push_back(CreateResource(1, URL(origin1, "/resource1"), 2013)); |
| 963 resources1.push_back(CreateResource(2, URL(origin1, "/resource2"))); | 964 resources1.push_back(CreateResource(2, URL(origin1, "/resource2"), 512)); |
| 964 ASSERT_EQ( | 965 ASSERT_EQ( |
| 965 ServiceWorkerDatabase::STATUS_OK, | 966 ServiceWorkerDatabase::STATUS_OK, |
| 966 database->WriteRegistration( | 967 database->WriteRegistration( |
| 967 data1, resources1, &deleted_version_id, &newly_purgeable_resources)); | 968 data1, resources1, &deleted_version_id, &newly_purgeable_resources)); |
| 968 | 969 |
| 969 RegistrationData data2; | 970 RegistrationData data2; |
| 970 data2.registration_id = 11; | 971 data2.registration_id = 11; |
| 971 data2.scope = URL(origin1, "/bar"); | 972 data2.scope = URL(origin1, "/bar"); |
| 972 data2.script = URL(origin1, "/script2.js"); | 973 data2.script = URL(origin1, "/script2.js"); |
| 973 data2.version_id = 101; | 974 data2.version_id = 101; |
| 974 | 975 |
| 975 std::vector<Resource> resources2; | 976 std::vector<Resource> resources2; |
| 976 resources2.push_back(CreateResource(3, URL(origin1, "/resource3"))); | 977 resources2.push_back(CreateResource(3, URL(origin1, "/resource3"), 4)); |
| 977 resources2.push_back(CreateResource(4, URL(origin1, "/resource4"))); | 978 resources2.push_back(CreateResource(4, URL(origin1, "/resource4"), 5)); |
| 978 ASSERT_EQ( | 979 ASSERT_EQ( |
| 979 ServiceWorkerDatabase::STATUS_OK, | 980 ServiceWorkerDatabase::STATUS_OK, |
| 980 database->WriteRegistration( | 981 database->WriteRegistration( |
| 981 data2, resources2, &deleted_version_id, &newly_purgeable_resources)); | 982 data2, resources2, &deleted_version_id, &newly_purgeable_resources)); |
| 982 | 983 |
| 983 // |origin2| has one registration. | 984 // |origin2| has one registration. |
| 984 RegistrationData data3; | 985 RegistrationData data3; |
| 985 data3.registration_id = 12; | 986 data3.registration_id = 12; |
| 986 data3.scope = URL(origin2, "/hoge"); | 987 data3.scope = URL(origin2, "/hoge"); |
| 987 data3.script = URL(origin2, "/script3.js"); | 988 data3.script = URL(origin2, "/script3.js"); |
| 988 data3.version_id = 102; | 989 data3.version_id = 102; |
| 989 | 990 |
| 990 std::vector<Resource> resources3; | 991 std::vector<Resource> resources3; |
| 991 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"))); | 992 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"), 6)); |
| 992 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"))); | 993 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"), 7)); |
| 993 ASSERT_EQ( | 994 ASSERT_EQ( |
| 994 ServiceWorkerDatabase::STATUS_OK, | 995 ServiceWorkerDatabase::STATUS_OK, |
| 995 database->WriteRegistration( | 996 database->WriteRegistration( |
| 996 data3, resources3, &deleted_version_id, &newly_purgeable_resources)); | 997 data3, resources3, &deleted_version_id, &newly_purgeable_resources)); |
| 997 | 998 |
| 998 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 999 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 999 database->DeleteAllDataForOrigin(origin1, | 1000 database->DeleteAllDataForOrigin(origin1, |
| 1000 &newly_purgeable_resources)); | 1001 &newly_purgeable_resources)); |
| 1001 | 1002 |
| 1002 // |origin1| should be removed from the unique origin list. | 1003 // |origin1| should be removed from the unique origin list. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1038 CreateDatabase(database_dir.path())); | 1039 CreateDatabase(database_dir.path())); |
| 1039 | 1040 |
| 1040 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); | 1041 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
| 1041 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); | 1042 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); |
| 1042 | 1043 |
| 1043 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); | 1044 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); |
| 1044 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); | 1045 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); |
| 1045 } | 1046 } |
| 1046 | 1047 |
| 1047 } // namespace content | 1048 } // namespace content |
| OLD | NEW |