| 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..6c87f5aa066921cba09e8b9a821328596fba87aa 100644
|
| --- a/content/browser/service_worker/service_worker_database_unittest.cc
|
| +++ b/content/browser/service_worker/service_worker_database_unittest.cc
|
| @@ -137,6 +137,54 @@ TEST(ServiceWorkerDatabaseTest, DatabaseVersion) {
|
| EXPECT_LT(0, db_version);
|
| }
|
|
|
| +TEST(ServiceWorkerDatabaseTest, DiskCacheMigrationState) {
|
| + GURL origin("http://example.com");
|
| + scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
|
| +
|
| + // An empty database should return DISKCACHE_NOT_USED.
|
| + ServiceWorkerDatabase::DiskCacheMigrationState state =
|
| + ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->ReadDiskCacheMigrationState(&state));
|
| + EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NOT_USED, state);
|
| +
|
| + // Add a registration to the database.
|
| + 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));
|
| +
|
| + state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->ReadDiskCacheMigrationState(&state));
|
| + EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_MIGRATE, state);
|
| +
|
| + state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->WriteDiskCacheMigrationState(
|
| + ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_DELETE_OLD));
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->ReadDiskCacheMigrationState(&state));
|
| + EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_DELETE_OLD, state);
|
| +
|
| + state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE;
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->WriteDiskCacheMigrationState(
|
| + ServiceWorkerDatabase::DISKCACHE_MIGRATED));
|
| + EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
|
| + database->ReadDiskCacheMigrationState(&state));
|
| + EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_MIGRATED, state);
|
| +}
|
| +
|
| TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) {
|
| base::ScopedTempDir database_dir;
|
| ASSERT_TRUE(database_dir.CreateUniqueTempDir());
|
|
|