| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 std::vector<Resource> resources4; | 386 std::vector<Resource> resources4; |
| 387 resources4.push_back(CreateResource(4, data4.script, 400)); | 387 resources4.push_back(CreateResource(4, data4.script, 400)); |
| 388 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 388 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 389 database->WriteRegistration(data4, resources4, &deleted_version, | 389 database->WriteRegistration(data4, resources4, &deleted_version, |
| 390 &newly_purgeable_resources)); | 390 &newly_purgeable_resources)); |
| 391 | 391 |
| 392 origins.clear(); | 392 origins.clear(); |
| 393 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 393 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 394 database->GetOriginsWithRegistrations(&origins)); | 394 database->GetOriginsWithRegistrations(&origins)); |
| 395 EXPECT_EQ(3U, origins.size()); | 395 EXPECT_EQ(3U, origins.size()); |
| 396 EXPECT_TRUE(ContainsKey(origins, origin1)); | 396 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 397 EXPECT_TRUE(ContainsKey(origins, origin2)); | 397 EXPECT_TRUE(base::ContainsKey(origins, origin2)); |
| 398 EXPECT_TRUE(ContainsKey(origins, origin3)); | 398 EXPECT_TRUE(base::ContainsKey(origins, origin3)); |
| 399 | 399 |
| 400 // |origin3| has another registration, so should not remove it from the | 400 // |origin3| has another registration, so should not remove it from the |
| 401 // unique origin list. | 401 // unique origin list. |
| 402 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 402 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 403 database->DeleteRegistration(data4.registration_id, | 403 database->DeleteRegistration(data4.registration_id, |
| 404 origin3, | 404 origin3, |
| 405 &deleted_version, | 405 &deleted_version, |
| 406 &newly_purgeable_resources)); | 406 &newly_purgeable_resources)); |
| 407 EXPECT_EQ(data4.registration_id, deleted_version.registration_id); | 407 EXPECT_EQ(data4.registration_id, deleted_version.registration_id); |
| 408 | 408 |
| 409 origins.clear(); | 409 origins.clear(); |
| 410 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 410 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 411 database->GetOriginsWithRegistrations(&origins)); | 411 database->GetOriginsWithRegistrations(&origins)); |
| 412 EXPECT_EQ(3U, origins.size()); | 412 EXPECT_EQ(3U, origins.size()); |
| 413 EXPECT_TRUE(ContainsKey(origins, origin1)); | 413 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 414 EXPECT_TRUE(ContainsKey(origins, origin2)); | 414 EXPECT_TRUE(base::ContainsKey(origins, origin2)); |
| 415 EXPECT_TRUE(ContainsKey(origins, origin3)); | 415 EXPECT_TRUE(base::ContainsKey(origins, origin3)); |
| 416 | 416 |
| 417 // |origin3| should be removed from the unique origin list. | 417 // |origin3| should be removed from the unique origin list. |
| 418 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 418 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 419 database->DeleteRegistration(data3.registration_id, | 419 database->DeleteRegistration(data3.registration_id, |
| 420 origin3, | 420 origin3, |
| 421 &deleted_version, | 421 &deleted_version, |
| 422 &newly_purgeable_resources)); | 422 &newly_purgeable_resources)); |
| 423 EXPECT_EQ(data3.registration_id, deleted_version.registration_id); | 423 EXPECT_EQ(data3.registration_id, deleted_version.registration_id); |
| 424 | 424 |
| 425 origins.clear(); | 425 origins.clear(); |
| 426 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 426 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 427 database->GetOriginsWithRegistrations(&origins)); | 427 database->GetOriginsWithRegistrations(&origins)); |
| 428 EXPECT_EQ(2U, origins.size()); | 428 EXPECT_EQ(2U, origins.size()); |
| 429 EXPECT_TRUE(ContainsKey(origins, origin1)); | 429 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 430 EXPECT_TRUE(ContainsKey(origins, origin2)); | 430 EXPECT_TRUE(base::ContainsKey(origins, origin2)); |
| 431 } | 431 } |
| 432 | 432 |
| 433 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) { | 433 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) { |
| 434 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 434 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 435 | 435 |
| 436 GURL origin1("http://example.com"); | 436 GURL origin1("http://example.com"); |
| 437 GURL origin2("https://www.example.com"); | 437 GURL origin2("https://www.example.com"); |
| 438 GURL origin3("https://example.org"); | 438 GURL origin3("https://example.org"); |
| 439 | 439 |
| 440 std::vector<RegistrationData> registrations; | 440 std::vector<RegistrationData> registrations; |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 EXPECT_TRUE(resources_out.empty()); | 688 EXPECT_TRUE(resources_out.empty()); |
| 689 EXPECT_EQ( | 689 EXPECT_EQ( |
| 690 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 690 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 691 database->ReadRegistrationOrigin(data.registration_id, &origin_out)); | 691 database->ReadRegistrationOrigin(data.registration_id, &origin_out)); |
| 692 | 692 |
| 693 // Resources should be purgeable because these are no longer referred. | 693 // Resources should be purgeable because these are no longer referred. |
| 694 std::set<int64_t> purgeable_ids_out; | 694 std::set<int64_t> purgeable_ids_out; |
| 695 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 695 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 696 database->GetPurgeableResourceIds(&purgeable_ids_out)); | 696 database->GetPurgeableResourceIds(&purgeable_ids_out)); |
| 697 EXPECT_EQ(2u, purgeable_ids_out.size()); | 697 EXPECT_EQ(2u, purgeable_ids_out.size()); |
| 698 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources[0].resource_id)); | 698 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources[0].resource_id)); |
| 699 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources[1].resource_id)); | 699 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources[1].resource_id)); |
| 700 } | 700 } |
| 701 | 701 |
| 702 TEST(ServiceWorkerDatabaseTest, DeleteNonExistentRegistration) { | 702 TEST(ServiceWorkerDatabaseTest, DeleteNonExistentRegistration) { |
| 703 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 703 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 704 | 704 |
| 705 GURL origin("http://example.com"); | 705 GURL origin("http://example.com"); |
| 706 RegistrationData data; | 706 RegistrationData data; |
| 707 data.registration_id = 100; | 707 data.registration_id = 100; |
| 708 data.scope = URL(origin, "/foo"); | 708 data.scope = URL(origin, "/foo"); |
| 709 data.script = URL(origin, "/script.js"); | 709 data.script = URL(origin, "/script.js"); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 resources_out.clear(); | 812 resources_out.clear(); |
| 813 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( | 813 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( |
| 814 updated_data.registration_id, origin, &data_out, &resources_out)); | 814 updated_data.registration_id, origin, &data_out, &resources_out)); |
| 815 VerifyRegistrationData(updated_data, data_out); | 815 VerifyRegistrationData(updated_data, data_out); |
| 816 VerifyResourceRecords(resources2, resources_out); | 816 VerifyResourceRecords(resources2, resources_out); |
| 817 | 817 |
| 818 std::set<int64_t> purgeable_ids_out; | 818 std::set<int64_t> purgeable_ids_out; |
| 819 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 819 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 820 database->GetPurgeableResourceIds(&purgeable_ids_out)); | 820 database->GetPurgeableResourceIds(&purgeable_ids_out)); |
| 821 EXPECT_EQ(2u, purgeable_ids_out.size()); | 821 EXPECT_EQ(2u, purgeable_ids_out.size()); |
| 822 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[0].resource_id)); | 822 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources1[0].resource_id)); |
| 823 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[1].resource_id)); | 823 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources1[1].resource_id)); |
| 824 } | 824 } |
| 825 | 825 |
| 826 TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { | 826 TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
| 827 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 827 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 828 GURL origin("http://example.com"); | 828 GURL origin("http://example.com"); |
| 829 | 829 |
| 830 ServiceWorkerDatabase::RegistrationData deleted_version; | 830 ServiceWorkerDatabase::RegistrationData deleted_version; |
| 831 std::vector<int64_t> newly_purgeable_resources; | 831 std::vector<int64_t> newly_purgeable_resources; |
| 832 | 832 |
| 833 // Add registration1. | 833 // Add registration1. |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 data1.registration_id, origin, &data_out, &resources_out)); | 906 data1.registration_id, origin, &data_out, &resources_out)); |
| 907 EXPECT_TRUE(resources_out.empty()); | 907 EXPECT_TRUE(resources_out.empty()); |
| 908 EXPECT_EQ( | 908 EXPECT_EQ( |
| 909 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 909 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 910 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); | 910 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); |
| 911 | 911 |
| 912 purgeable_ids_out.clear(); | 912 purgeable_ids_out.clear(); |
| 913 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 913 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 914 database->GetPurgeableResourceIds(&purgeable_ids_out)); | 914 database->GetPurgeableResourceIds(&purgeable_ids_out)); |
| 915 EXPECT_EQ(2u, purgeable_ids_out.size()); | 915 EXPECT_EQ(2u, purgeable_ids_out.size()); |
| 916 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[0].resource_id)); | 916 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources1[0].resource_id)); |
| 917 EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[1].resource_id)); | 917 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, resources1[1].resource_id)); |
| 918 | 918 |
| 919 // Make sure that registration2 is still alive. | 919 // Make sure that registration2 is still alive. |
| 920 resources_out.clear(); | 920 resources_out.clear(); |
| 921 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( | 921 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( |
| 922 data2.registration_id, origin, &data_out, &resources_out)); | 922 data2.registration_id, origin, &data_out, &resources_out)); |
| 923 VerifyRegistrationData(data2, data_out); | 923 VerifyRegistrationData(data2, data_out); |
| 924 VerifyResourceRecords(resources2, resources_out); | 924 VerifyResourceRecords(resources2, resources_out); |
| 925 EXPECT_EQ( | 925 EXPECT_EQ( |
| 926 ServiceWorkerDatabase::STATUS_OK, | 926 ServiceWorkerDatabase::STATUS_OK, |
| 927 database->ReadRegistrationOrigin(data2.registration_id, &origin_out)); | 927 database->ReadRegistrationOrigin(data2.registration_id, &origin_out)); |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1554 origins_to_delete.insert(origin1); | 1554 origins_to_delete.insert(origin1); |
| 1555 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1555 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1556 database->DeleteAllDataForOrigins(origins_to_delete, | 1556 database->DeleteAllDataForOrigins(origins_to_delete, |
| 1557 &newly_purgeable_resources)); | 1557 &newly_purgeable_resources)); |
| 1558 | 1558 |
| 1559 // |origin1| should be removed from the unique origin list. | 1559 // |origin1| should be removed from the unique origin list. |
| 1560 std::set<GURL> unique_origins; | 1560 std::set<GURL> unique_origins; |
| 1561 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1561 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1562 database->GetOriginsWithRegistrations(&unique_origins)); | 1562 database->GetOriginsWithRegistrations(&unique_origins)); |
| 1563 EXPECT_EQ(1u, unique_origins.size()); | 1563 EXPECT_EQ(1u, unique_origins.size()); |
| 1564 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); | 1564 EXPECT_TRUE(base::ContainsKey(unique_origins, origin2)); |
| 1565 | 1565 |
| 1566 // |origin1| should be removed from the foreign fetch origin list. | 1566 // |origin1| should be removed from the foreign fetch origin list. |
| 1567 unique_origins.clear(); | 1567 unique_origins.clear(); |
| 1568 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1568 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1569 database->GetOriginsWithForeignFetchRegistrations(&unique_origins)); | 1569 database->GetOriginsWithForeignFetchRegistrations(&unique_origins)); |
| 1570 EXPECT_EQ(1u, unique_origins.size()); | 1570 EXPECT_EQ(1u, unique_origins.size()); |
| 1571 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); | 1571 EXPECT_TRUE(base::ContainsKey(unique_origins, origin2)); |
| 1572 | 1572 |
| 1573 // The registrations for |origin1| should be removed. | 1573 // The registrations for |origin1| should be removed. |
| 1574 std::vector<RegistrationData> registrations; | 1574 std::vector<RegistrationData> registrations; |
| 1575 EXPECT_EQ( | 1575 EXPECT_EQ( |
| 1576 ServiceWorkerDatabase::STATUS_OK, | 1576 ServiceWorkerDatabase::STATUS_OK, |
| 1577 database->GetRegistrationsForOrigin(origin1, ®istrations, nullptr)); | 1577 database->GetRegistrationsForOrigin(origin1, ®istrations, nullptr)); |
| 1578 EXPECT_TRUE(registrations.empty()); | 1578 EXPECT_TRUE(registrations.empty()); |
| 1579 GURL origin_out; | 1579 GURL origin_out; |
| 1580 EXPECT_EQ( | 1580 EXPECT_EQ( |
| 1581 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 1581 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 1582 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); | 1582 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); |
| 1583 | 1583 |
| 1584 // The registration for |origin2| should not be removed. | 1584 // The registration for |origin2| should not be removed. |
| 1585 RegistrationData data_out; | 1585 RegistrationData data_out; |
| 1586 std::vector<Resource> resources_out; | 1586 std::vector<Resource> resources_out; |
| 1587 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( | 1587 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( |
| 1588 data3.registration_id, origin2, &data_out, &resources_out)); | 1588 data3.registration_id, origin2, &data_out, &resources_out)); |
| 1589 VerifyRegistrationData(data3, data_out); | 1589 VerifyRegistrationData(data3, data_out); |
| 1590 VerifyResourceRecords(resources3, resources_out); | 1590 VerifyResourceRecords(resources3, resources_out); |
| 1591 EXPECT_EQ( | 1591 EXPECT_EQ( |
| 1592 ServiceWorkerDatabase::STATUS_OK, | 1592 ServiceWorkerDatabase::STATUS_OK, |
| 1593 database->ReadRegistrationOrigin(data3.registration_id, &origin_out)); | 1593 database->ReadRegistrationOrigin(data3.registration_id, &origin_out)); |
| 1594 EXPECT_EQ(origin2, origin_out); | 1594 EXPECT_EQ(origin2, origin_out); |
| 1595 | 1595 |
| 1596 // The resources associated with |origin1| should be purgeable. | 1596 // The resources associated with |origin1| should be purgeable. |
| 1597 std::set<int64_t> purgeable_ids_out; | 1597 std::set<int64_t> purgeable_ids_out; |
| 1598 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1598 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1599 database->GetPurgeableResourceIds(&purgeable_ids_out)); | 1599 database->GetPurgeableResourceIds(&purgeable_ids_out)); |
| 1600 EXPECT_EQ(4u, purgeable_ids_out.size()); | 1600 EXPECT_EQ(4u, purgeable_ids_out.size()); |
| 1601 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 1)); | 1601 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, 1)); |
| 1602 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 2)); | 1602 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, 2)); |
| 1603 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 3)); | 1603 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, 3)); |
| 1604 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 4)); | 1604 EXPECT_TRUE(base::ContainsKey(purgeable_ids_out, 4)); |
| 1605 | 1605 |
| 1606 // The user data associated with |origin1| should be removed. | 1606 // The user data associated with |origin1| should be removed. |
| 1607 std::vector<std::string> user_data_out; | 1607 std::vector<std::string> user_data_out; |
| 1608 EXPECT_EQ( | 1608 EXPECT_EQ( |
| 1609 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 1609 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 1610 database->ReadUserData(data1.registration_id, {"key1"}, &user_data_out)); | 1610 database->ReadUserData(data1.registration_id, {"key1"}, &user_data_out)); |
| 1611 EXPECT_EQ( | 1611 EXPECT_EQ( |
| 1612 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 1612 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 1613 database->ReadUserData(data1.registration_id, {"key2"}, &user_data_out)); | 1613 database->ReadUserData(data1.registration_id, {"key2"}, &user_data_out)); |
| 1614 EXPECT_EQ( | 1614 EXPECT_EQ( |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1719 std::vector<Resource> resources5; | 1719 std::vector<Resource> resources5; |
| 1720 resources5.push_back(CreateResource(5, data5.script, 500)); | 1720 resources5.push_back(CreateResource(5, data5.script, 500)); |
| 1721 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1721 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1722 database->WriteRegistration(data5, resources5, &deleted_version, | 1722 database->WriteRegistration(data5, resources5, &deleted_version, |
| 1723 &newly_purgeable_resources)); | 1723 &newly_purgeable_resources)); |
| 1724 | 1724 |
| 1725 origins.clear(); | 1725 origins.clear(); |
| 1726 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1726 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1727 database->GetOriginsWithForeignFetchRegistrations(&origins)); | 1727 database->GetOriginsWithForeignFetchRegistrations(&origins)); |
| 1728 EXPECT_EQ(2U, origins.size()); | 1728 EXPECT_EQ(2U, origins.size()); |
| 1729 EXPECT_TRUE(ContainsKey(origins, origin1)); | 1729 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 1730 EXPECT_TRUE(ContainsKey(origins, origin3)); | 1730 EXPECT_TRUE(base::ContainsKey(origins, origin3)); |
| 1731 | 1731 |
| 1732 // |origin3| has another registration, so should not remove it from the | 1732 // |origin3| has another registration, so should not remove it from the |
| 1733 // foreign fetch origin list. | 1733 // foreign fetch origin list. |
| 1734 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1734 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1735 database->DeleteRegistration(data4.registration_id, origin3, | 1735 database->DeleteRegistration(data4.registration_id, origin3, |
| 1736 &deleted_version, | 1736 &deleted_version, |
| 1737 &newly_purgeable_resources)); | 1737 &newly_purgeable_resources)); |
| 1738 EXPECT_EQ(data4.registration_id, deleted_version.registration_id); | 1738 EXPECT_EQ(data4.registration_id, deleted_version.registration_id); |
| 1739 | 1739 |
| 1740 origins.clear(); | 1740 origins.clear(); |
| 1741 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1741 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1742 database->GetOriginsWithForeignFetchRegistrations(&origins)); | 1742 database->GetOriginsWithForeignFetchRegistrations(&origins)); |
| 1743 EXPECT_EQ(2U, origins.size()); | 1743 EXPECT_EQ(2U, origins.size()); |
| 1744 EXPECT_TRUE(ContainsKey(origins, origin1)); | 1744 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 1745 EXPECT_TRUE(ContainsKey(origins, origin3)); | 1745 EXPECT_TRUE(base::ContainsKey(origins, origin3)); |
| 1746 | 1746 |
| 1747 // |origin3| should be removed from the foreign fetch origin list, since its | 1747 // |origin3| should be removed from the foreign fetch origin list, since its |
| 1748 // only remaining registration doesn't have foreign fetch scopes. | 1748 // only remaining registration doesn't have foreign fetch scopes. |
| 1749 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1749 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1750 database->DeleteRegistration(data3.registration_id, origin3, | 1750 database->DeleteRegistration(data3.registration_id, origin3, |
| 1751 &deleted_version, | 1751 &deleted_version, |
| 1752 &newly_purgeable_resources)); | 1752 &newly_purgeable_resources)); |
| 1753 EXPECT_EQ(data3.registration_id, deleted_version.registration_id); | 1753 EXPECT_EQ(data3.registration_id, deleted_version.registration_id); |
| 1754 | 1754 |
| 1755 origins.clear(); | 1755 origins.clear(); |
| 1756 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1756 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1757 database->GetOriginsWithForeignFetchRegistrations(&origins)); | 1757 database->GetOriginsWithForeignFetchRegistrations(&origins)); |
| 1758 EXPECT_EQ(1U, origins.size()); | 1758 EXPECT_EQ(1U, origins.size()); |
| 1759 EXPECT_TRUE(ContainsKey(origins, origin1)); | 1759 EXPECT_TRUE(base::ContainsKey(origins, origin1)); |
| 1760 | 1760 |
| 1761 // |origin1| should be removed from the foreign fetch origin list, since we | 1761 // |origin1| should be removed from the foreign fetch origin list, since we |
| 1762 // replace its registration with one without scopes. | 1762 // replace its registration with one without scopes. |
| 1763 RegistrationData updated_data1 = data1; | 1763 RegistrationData updated_data1 = data1; |
| 1764 updated_data1.version_id++; | 1764 updated_data1.version_id++; |
| 1765 updated_data1.resources_total_size_bytes = 12 + 13; | 1765 updated_data1.resources_total_size_bytes = 12 + 13; |
| 1766 updated_data1.foreign_fetch_scopes.clear(); | 1766 updated_data1.foreign_fetch_scopes.clear(); |
| 1767 std::vector<Resource> updated_resources1; | 1767 std::vector<Resource> updated_resources1; |
| 1768 updated_resources1.push_back( | 1768 updated_resources1.push_back( |
| 1769 CreateResource(13, URL(origin1, "/resource3"), 12)); | 1769 CreateResource(13, URL(origin1, "/resource3"), 12)); |
| 1770 updated_resources1.push_back( | 1770 updated_resources1.push_back( |
| 1771 CreateResource(14, URL(origin1, "/resource4"), 13)); | 1771 CreateResource(14, URL(origin1, "/resource4"), 13)); |
| 1772 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1772 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1773 database->WriteRegistration(updated_data1, updated_resources1, | 1773 database->WriteRegistration(updated_data1, updated_resources1, |
| 1774 &deleted_version, | 1774 &deleted_version, |
| 1775 &newly_purgeable_resources)); | 1775 &newly_purgeable_resources)); |
| 1776 | 1776 |
| 1777 origins.clear(); | 1777 origins.clear(); |
| 1778 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 1778 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 1779 database->GetOriginsWithForeignFetchRegistrations(&origins)); | 1779 database->GetOriginsWithForeignFetchRegistrations(&origins)); |
| 1780 EXPECT_EQ(0U, origins.size()); | 1780 EXPECT_EQ(0U, origins.size()); |
| 1781 } | 1781 } |
| 1782 | 1782 |
| 1783 } // namespace content | 1783 } // namespace content |
| OLD | NEW |