| 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 e38930366318f4323ce62b3a8b05033d9101d652..1d19f2237b81bdcf396a4630e9c711f8efd83dd0 100644
|
| --- a/content/browser/service_worker/service_worker_database_unittest.cc
|
| +++ b/content/browser/service_worker/service_worker_database_unittest.cc
|
| @@ -137,6 +137,75 @@ TEST(ServiceWorkerDatabaseTest, DatabaseVersion) {
|
| EXPECT_LT(0, db_version);
|
| }
|
|
|
| +TEST(ServiceWorkerDatabaseTest, DiskCacheMigrationState) {
|
| + GURL origin("http://example.com");
|
| + base::ScopedTempDir database_dir;
|
| + ASSERT_TRUE(database_dir.CreateUniqueTempDir());
|
| + scoped_ptr<ServiceWorkerDatabase> database(
|
| + CreateDatabase(database_dir.path()));
|
| +
|
| + // An empty database should return false.
|
| + bool migration_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsDiskCacheMigrationNeeded(&migration_needed));
|
| + EXPECT_FALSE(migration_needed);
|
| + bool deletion_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
|
| + EXPECT_FALSE(deletion_needed);
|
| +
|
| + // Simulate an existing database created before diskcache migration.
|
| + database->set_skip_writing_diskcache_migration_state_on_init_for_testing();
|
| + std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
|
| + ServiceWorkerDatabase::RegistrationData deleted_version;
|
| + std::vector<int64> newly_purgeable_resources;
|
| + ServiceWorkerDatabase::RegistrationData data;
|
| + data.registration_id = 100;
|
| + data.scope = URL(origin, "/foo");
|
| + data.script = URL(origin, "/script.js");
|
| + data.version_id = 200;
|
| + data.resources_total_size_bytes = 300;
|
| + resources.push_back(CreateResource(1, data.script, 300));
|
| + ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->WriteRegistration(data, resources, &deleted_version,
|
| + &newly_purgeable_resources));
|
| + migration_needed = false;
|
| + ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsDiskCacheMigrationNeeded(&migration_needed));
|
| + ASSERT_TRUE(migration_needed);
|
| + deletion_needed = false;
|
| + ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
|
| + ASSERT_TRUE(deletion_needed);
|
| +
|
| + // Opening the existing database should not update the migration states.
|
| + database.reset(CreateDatabase(database_dir.path()));
|
| + migration_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsDiskCacheMigrationNeeded(&migration_needed));
|
| + EXPECT_TRUE(migration_needed);
|
| + deletion_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
|
| + EXPECT_TRUE(deletion_needed);
|
| +
|
| + // Test SetDiskCacheMigrationNotNeeded().
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->SetDiskCacheMigrationNotNeeded());
|
| + migration_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsDiskCacheMigrationNeeded(&migration_needed));
|
| + EXPECT_FALSE(migration_needed);
|
| +
|
| + // Test SetOldDiskCacheDeletionNotNeeded().
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->SetOldDiskCacheDeletionNotNeeded());
|
| + deletion_needed = false;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
|
| + EXPECT_FALSE(deletion_needed);
|
| +}
|
| +
|
| TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) {
|
| base::ScopedTempDir database_dir;
|
| ASSERT_TRUE(database_dir.CreateUniqueTempDir());
|
|
|