Index: content/browser/service_worker/service_worker_database_unittest.cc |
diff --git a/content/browser/service_worker/service_worker_database_unittest.cc b/content/browser/service_worker/service_worker_database_unittest.cc |
index 2f01fa610feefff871a33d2fa81dba96a6d07384..49497d42c0e27a36d76e90d7a99f35799e2579a6 100644 |
--- a/content/browser/service_worker/service_worker_database_unittest.cc |
+++ b/content/browser/service_worker/service_worker_database_unittest.cc |
@@ -29,16 +29,17 @@ struct AvailableIds { |
GURL URL(const GURL& origin, const std::string& path) { |
EXPECT_TRUE(origin.is_valid()); |
- GURL out(origin.GetOrigin().spec() + path); |
+ EXPECT_EQ(origin, origin.GetOrigin()); |
+ GURL out(origin.spec() + path); |
EXPECT_TRUE(out.is_valid()); |
return out; |
} |
Resource CreateResource(int64 resource_id, const GURL& url) { |
+ EXPECT_TRUE(url.is_valid()); |
Resource resource; |
resource.resource_id = resource_id; |
resource.url = url; |
- EXPECT_TRUE(resource.url.is_valid()); |
return resource; |
} |
@@ -63,9 +64,7 @@ void VerifyRegistrationData(const RegistrationData& expected, |
void VerifyResourceRecords(const std::vector<Resource>& expected, |
const std::vector<Resource>& actual) { |
- EXPECT_EQ(expected.size(), actual.size()); |
- if (expected.size() != actual.size()) |
- return; |
+ ASSERT_EQ(expected.size(), actual.size()); |
for (size_t i = 0; i < expected.size(); ++i) { |
EXPECT_EQ(expected[i].resource_id, actual[i].resource_id); |
EXPECT_EQ(expected[i].url, actual[i].url); |
@@ -218,7 +217,6 @@ TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) { |
data4.scope = URL(origin3, "/fuga"); |
data4.script = URL(origin3, "/script4.js"); |
data4.version_id = 789; |
- ASSERT_EQ(origin3, data4.scope.GetOrigin()); |
ASSERT_TRUE(database->WriteRegistration(data4, resources)); |
origins.clear(); |
@@ -348,9 +346,6 @@ TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) { |
VerifyRegistrationData(data4, registrations[3]); |
} |
-// TODO(nhiroki): Record read/write operations using gtest fixture to avoid |
-// building expectations by hand. For example, expected purgeable resource ids |
-// should be calculated automatically. |
TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
@@ -361,23 +356,19 @@ TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
data.script = URL(origin, "/script.js"); |
data.version_id = 200; |
- Resource resource1 = CreateResource(1, URL(origin, "/resource1")); |
- Resource resource2 = CreateResource(2, URL(origin, "/resource2")); |
- |
std::vector<Resource> resources; |
- resources.push_back(resource1); |
- resources.push_back(resource2); |
+ resources.push_back(CreateResource(1, URL(origin, "/resource1"))); |
+ resources.push_back(CreateResource(2, URL(origin, "/resource2"))); |
- // Write |resource1| to the uncommitted list to make sure that writing |
+ // Write a resource to the uncommitted list to make sure that writing |
// registration removes resource ids associated with the registration from |
// the uncommitted list. |
std::set<int64> uncommitted_ids; |
- uncommitted_ids.insert(resource1.resource_id); |
+ uncommitted_ids.insert(resources[0].resource_id); |
EXPECT_TRUE(database->WriteUncommittedResourceIds(uncommitted_ids)); |
std::set<int64> uncommitted_ids_out; |
EXPECT_TRUE(database->GetUncommittedResourceIds(&uncommitted_ids_out)); |
- EXPECT_EQ(1u, uncommitted_ids_out.size()); |
- EXPECT_TRUE(ContainsKey(uncommitted_ids_out, resource1.resource_id)); |
+ EXPECT_EQ(uncommitted_ids, uncommitted_ids_out); |
EXPECT_TRUE(database->WriteRegistration(data, resources)); |
@@ -389,13 +380,12 @@ TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
VerifyRegistrationData(data, data_out); |
VerifyResourceRecords(resources, resources_out); |
- // Make sure that |resource1| is removed from the uncommitted list. |
+ // Make sure that the resource is removed from the uncommitted list. |
uncommitted_ids_out.clear(); |
EXPECT_TRUE(database->GetUncommittedResourceIds(&uncommitted_ids_out)); |
EXPECT_TRUE(uncommitted_ids_out.empty()); |
- EXPECT_TRUE(database->DeleteRegistration( |
- data.registration_id, data.scope.GetOrigin())); |
+ EXPECT_TRUE(database->DeleteRegistration(data.registration_id, origin)); |
// Make sure that the registration and resource records are gone. |
resources_out.clear(); |
@@ -404,11 +394,11 @@ TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
EXPECT_TRUE(resources_out.empty()); |
// Resources should be purgeable because these are no longer referred. |
- std::set<int64> purgeable_resource_ids; |
- EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_resource_ids)); |
- EXPECT_EQ(2u, purgeable_resource_ids.size()); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource1.resource_id)); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource2.resource_id)); |
+ std::set<int64> purgeable_ids_out; |
+ EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); |
+ EXPECT_EQ(2u, purgeable_ids_out.size()); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources[0].resource_id)); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources[1].resource_id)); |
} |
TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) { |
@@ -421,12 +411,9 @@ TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) { |
data.script = URL(origin, "/script.js"); |
data.version_id = 200; |
- Resource resource1 = CreateResource(1, URL(origin, "/resource1")); |
- Resource resource2 = CreateResource(2, URL(origin, "/resource2")); |
- |
std::vector<Resource> resources1; |
- resources1.push_back(resource1); |
- resources1.push_back(resource2); |
+ resources1.push_back(CreateResource(1, URL(origin, "/resource1"))); |
+ resources1.push_back(CreateResource(2, URL(origin, "/resource2"))); |
EXPECT_TRUE(database->WriteRegistration(data, resources1)); |
@@ -441,11 +428,9 @@ TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) { |
// Update the registration. |
RegistrationData updated_data = data; |
updated_data.version_id = data.version_id + 1; |
- Resource resource3 = CreateResource(3, URL(origin, "/resource3")); |
- Resource resource4 = CreateResource(4, URL(origin, "/resource4")); |
std::vector<Resource> resources2; |
- resources2.push_back(resource3); |
- resources2.push_back(resource4); |
+ resources2.push_back(CreateResource(3, URL(origin, "/resource3"))); |
+ resources2.push_back(CreateResource(4, URL(origin, "/resource4"))); |
EXPECT_TRUE(database->WriteRegistration(updated_data, resources2)); |
@@ -457,16 +442,15 @@ TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) { |
VerifyRegistrationData(updated_data, data_out); |
VerifyResourceRecords(resources2, resources_out); |
- std::set<int64> purgeable_resource_ids; |
- EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_resource_ids)); |
- EXPECT_EQ(2u, purgeable_resource_ids.size()); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource1.resource_id)); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource2.resource_id)); |
+ std::set<int64> purgeable_ids_out; |
+ EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); |
+ EXPECT_EQ(2u, purgeable_ids_out.size()); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[0].resource_id)); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[1].resource_id)); |
} |
TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
- |
GURL origin("http://example.com"); |
// Add registration1. |
@@ -475,14 +459,10 @@ TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
data1.scope = URL(origin, "/foo"); |
data1.script = URL(origin, "/script1.js"); |
data1.version_id = 200; |
- GURL origin1 = data1.scope.GetOrigin(); |
- |
- Resource resource1 = CreateResource(1, URL(origin, "/resource1")); |
- Resource resource2 = CreateResource(2, URL(origin, "/resource2")); |
std::vector<Resource> resources1; |
- resources1.push_back(resource1); |
- resources1.push_back(resource2); |
+ resources1.push_back(CreateResource(1, URL(origin, "/resource1"))); |
+ resources1.push_back(CreateResource(2, URL(origin, "/resource2"))); |
EXPECT_TRUE(database->WriteRegistration(data1, resources1)); |
// Add registration2. |
@@ -491,14 +471,10 @@ TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
data2.scope = URL(origin, "/bar"); |
data2.script = URL(origin, "/script2.js"); |
data2.version_id = 201; |
- GURL origin2 = data2.scope.GetOrigin(); |
- |
- Resource resource3 = CreateResource(3, URL(origin, "/resource3")); |
- Resource resource4 = CreateResource(4, URL(origin, "/resource4")); |
std::vector<Resource> resources2; |
- resources2.push_back(resource3); |
- resources2.push_back(resource4); |
+ resources2.push_back(CreateResource(3, URL(origin, "/resource3"))); |
+ resources2.push_back(CreateResource(4, URL(origin, "/resource4"))); |
EXPECT_TRUE(database->WriteRegistration(data2, resources2)); |
// Make sure that registration1 is stored. |
@@ -516,9 +492,9 @@ TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
VerifyRegistrationData(data2, data_out); |
VerifyResourceRecords(resources2, resources_out); |
- std::set<int64> purgeable_resource_ids; |
- EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_resource_ids)); |
- EXPECT_TRUE(purgeable_resource_ids.empty()); |
+ std::set<int64> purgeable_ids_out; |
+ EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); |
+ EXPECT_TRUE(purgeable_ids_out.empty()); |
// Delete registration1. |
EXPECT_TRUE(database->DeleteRegistration(data1.registration_id, origin)); |
@@ -529,11 +505,11 @@ TEST(ServiceWorkerDatabaseTest, Registration_Multiple) { |
data1.registration_id, origin, &data_out, &resources_out)); |
EXPECT_TRUE(resources_out.empty()); |
- purgeable_resource_ids.clear(); |
- EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_resource_ids)); |
- EXPECT_EQ(2u, purgeable_resource_ids.size()); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource1.resource_id)); |
- EXPECT_TRUE(ContainsKey(purgeable_resource_ids, resource2.resource_id)); |
+ purgeable_ids_out.clear(); |
+ EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); |
+ EXPECT_EQ(2u, purgeable_ids_out.size()); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[0].resource_id)); |
+ EXPECT_TRUE(ContainsKey(purgeable_ids_out, resources1[1].resource_id)); |
// Make sure that registration2 is still alive. |
resources_out.clear(); |
@@ -555,8 +531,7 @@ TEST(ServiceWorkerDatabaseTest, UncommittedResourceIds) { |
std::set<int64> ids_out; |
EXPECT_TRUE(database->GetUncommittedResourceIds(&ids_out)); |
- EXPECT_EQ(ids1.size(), ids_out.size()); |
- EXPECT_TRUE(base::STLIncludes(ids1, ids_out)); |
+ EXPECT_EQ(ids1, ids_out); |
// Write {2, 4}. |
std::set<int64> ids2; |
@@ -566,11 +541,8 @@ TEST(ServiceWorkerDatabaseTest, UncommittedResourceIds) { |
ids_out.clear(); |
EXPECT_TRUE(database->GetUncommittedResourceIds(&ids_out)); |
- EXPECT_EQ(4U, ids_out.size()); |
- EXPECT_TRUE(ContainsKey(ids_out, 1)); |
- EXPECT_TRUE(ContainsKey(ids_out, 2)); |
- EXPECT_TRUE(ContainsKey(ids_out, 3)); |
- EXPECT_TRUE(ContainsKey(ids_out, 4)); |
+ std::set<int64> expected = base::STLSetUnion<std::set<int64> >(ids1, ids2); |
+ EXPECT_EQ(expected, ids_out); |
// Delete {2, 3}. |
std::set<int64> ids3; |
@@ -580,9 +552,8 @@ TEST(ServiceWorkerDatabaseTest, UncommittedResourceIds) { |
ids_out.clear(); |
EXPECT_TRUE(database->GetUncommittedResourceIds(&ids_out)); |
- EXPECT_EQ(2U, ids_out.size()); |
- EXPECT_TRUE(ContainsKey(ids_out, 1)); |
- EXPECT_TRUE(ContainsKey(ids_out, 4)); |
+ expected = base::STLSetDifference<std::set<int64> >(expected, ids3); |
+ EXPECT_EQ(expected, ids_out); |
} |
TEST(ServiceWorkerDatabaseTest, PurgeableResourceIds) { |
@@ -597,8 +568,7 @@ TEST(ServiceWorkerDatabaseTest, PurgeableResourceIds) { |
std::set<int64> ids_out; |
EXPECT_TRUE(database->GetPurgeableResourceIds(&ids_out)); |
- EXPECT_EQ(ids1.size(), ids_out.size()); |
- EXPECT_TRUE(base::STLIncludes(ids1, ids_out)); |
+ EXPECT_EQ(ids1, ids_out); |
// Write {2, 4}. |
std::set<int64> ids2; |
@@ -608,11 +578,8 @@ TEST(ServiceWorkerDatabaseTest, PurgeableResourceIds) { |
ids_out.clear(); |
EXPECT_TRUE(database->GetPurgeableResourceIds(&ids_out)); |
- EXPECT_EQ(4U, ids_out.size()); |
- EXPECT_TRUE(ContainsKey(ids_out, 1)); |
- EXPECT_TRUE(ContainsKey(ids_out, 2)); |
- EXPECT_TRUE(ContainsKey(ids_out, 3)); |
- EXPECT_TRUE(ContainsKey(ids_out, 4)); |
+ std::set<int64> expected = base::STLSetUnion<std::set<int64> >(ids1, ids2); |
+ EXPECT_EQ(expected, ids_out); |
// Delete {2, 3}. |
std::set<int64> ids3; |
@@ -622,9 +589,8 @@ TEST(ServiceWorkerDatabaseTest, PurgeableResourceIds) { |
ids_out.clear(); |
EXPECT_TRUE(database->GetPurgeableResourceIds(&ids_out)); |
- EXPECT_EQ(2U, ids_out.size()); |
- EXPECT_TRUE(ContainsKey(ids_out, 1)); |
- EXPECT_TRUE(ContainsKey(ids_out, 4)); |
+ expected = base::STLSetDifference<std::set<int64> >(expected, ids3); |
+ EXPECT_EQ(expected, ids_out); |
} |
TEST(ServiceWorkerDatabaseTest, DeleteAllDataForOrigin) { |