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 4bf042f46e14b602bbe74fc6dd4747b8df68553d..8d88eae27dc334f5d24782a50cdad687561a6c97 100644 |
--- a/content/browser/service_worker/service_worker_database_unittest.cc |
+++ b/content/browser/service_worker/service_worker_database_unittest.cc |
@@ -176,6 +176,31 @@ TEST(ServiceWorkerDatabaseTest, GetNextAvailableIds) { |
EXPECT_EQ(201, ids.ver_id); |
EXPECT_EQ(0, ids.res_id); |
+ // Writing uncommitted resources bumps the next available id. |
+ const int64 kUncommittedIds[] = {0, 1, 3, 5, 6, 10}; |
+ EXPECT_EQ( |
+ ServiceWorkerDatabase::STATUS_OK, |
+ database->WriteUncommittedResourceIds(std::set<int64>( |
+ kUncommittedIds, kUncommittedIds + arraysize(kUncommittedIds)))); |
+ EXPECT_EQ( |
+ ServiceWorkerDatabase::STATUS_OK, |
+ database->GetNextAvailableIds(&ids.reg_id, &ids.ver_id, &ids.res_id)); |
+ EXPECT_EQ(101, ids.reg_id); |
+ EXPECT_EQ(201, ids.ver_id); |
+ EXPECT_EQ(11, ids.res_id); |
+ |
+ // Writing purgeable resources bumps the next available id. |
+ const int64 kPurgeableIds[] = {4, 12, 16, 17, 20}; |
+ EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
+ database->WriteUncommittedResourceIds(std::set<int64>( |
+ kPurgeableIds, kPurgeableIds + arraysize(kPurgeableIds)))); |
+ EXPECT_EQ( |
+ ServiceWorkerDatabase::STATUS_OK, |
+ database->GetNextAvailableIds(&ids.reg_id, &ids.ver_id, &ids.res_id)); |
+ EXPECT_EQ(101, ids.reg_id); |
+ EXPECT_EQ(201, ids.ver_id); |
+ EXPECT_EQ(21, ids.res_id); |
+ |
// Writing a registration whose ids are lower than the stored ones should not |
// bump the next available ids. |
RegistrationData data2; |
@@ -188,6 +213,12 @@ TEST(ServiceWorkerDatabaseTest, GetNextAvailableIds) { |
database->WriteRegistration( |
data2, resources, &deleted_version_id, &newly_purgeable_resources)); |
+ // Same with resources. |
+ int64 kLowResourceId = 15; |
+ EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
+ database->WriteUncommittedResourceIds( |
+ std::set<int64>(&kLowResourceId, &kLowResourceId + 1))); |
+ |
// Close and reopen the database to verify the stored values. |
database.reset(CreateDatabase(database_dir.path())); |
@@ -195,7 +226,7 @@ TEST(ServiceWorkerDatabaseTest, GetNextAvailableIds) { |
&ids.reg_id, &ids.ver_id, &ids.res_id)); |
EXPECT_EQ(101, ids.reg_id); |
EXPECT_EQ(201, ids.ver_id); |
- EXPECT_EQ(0, ids.res_id); |
+ EXPECT_EQ(21, ids.res_id); |
} |
TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) { |