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 |