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 <string> | 7 #include <string> |
8 | 8 |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 data.resources_total_size_bytes = 10; | 130 data.resources_total_size_bytes = 10; |
131 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | 131 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
132 database->WriteRegistration( | 132 database->WriteRegistration( |
133 data, resources, &deleted_version, &newly_purgeable_resources)); | 133 data, resources, &deleted_version, &newly_purgeable_resources)); |
134 | 134 |
135 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, | 135 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
136 database->ReadDatabaseVersion(&db_version)); | 136 database->ReadDatabaseVersion(&db_version)); |
137 EXPECT_LT(0, db_version); | 137 EXPECT_LT(0, db_version); |
138 } | 138 } |
139 | 139 |
| 140 TEST(ServiceWorkerDatabaseTest, DiskCacheMigrationState) { |
| 141 GURL origin("http://example.com"); |
| 142 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 143 |
| 144 // An empty database should return DISKCACHE_NOT_USED. |
| 145 ServiceWorkerDatabase::DiskCacheMigrationState state = |
| 146 ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE; |
| 147 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 148 database->ReadDiskCacheMigrationState(&state)); |
| 149 EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NOT_USED, state); |
| 150 |
| 151 // Add a registration to the database. |
| 152 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; |
| 153 ServiceWorkerDatabase::RegistrationData deleted_version; |
| 154 std::vector<int64> newly_purgeable_resources; |
| 155 ServiceWorkerDatabase::RegistrationData data; |
| 156 data.registration_id = 100; |
| 157 data.scope = URL(origin, "/foo"); |
| 158 data.script = URL(origin, "/script.js"); |
| 159 data.version_id = 200; |
| 160 data.resources_total_size_bytes = 300; |
| 161 resources.push_back(CreateResource(1, data.script, 300)); |
| 162 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 163 database->WriteRegistration(data, resources, &deleted_version, |
| 164 &newly_purgeable_resources)); |
| 165 |
| 166 state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE; |
| 167 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 168 database->ReadDiskCacheMigrationState(&state)); |
| 169 EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_MIGRATE, state); |
| 170 |
| 171 state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE; |
| 172 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 173 database->WriteDiskCacheMigrationState( |
| 174 ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_DELETE_OLD)); |
| 175 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 176 database->ReadDiskCacheMigrationState(&state)); |
| 177 EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_NEEDS_TO_DELETE_OLD, state); |
| 178 |
| 179 state = ServiceWorkerDatabase::DISKCACHE_UNKNOWN_STATE; |
| 180 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 181 database->WriteDiskCacheMigrationState( |
| 182 ServiceWorkerDatabase::DISKCACHE_MIGRATED)); |
| 183 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 184 database->ReadDiskCacheMigrationState(&state)); |
| 185 EXPECT_EQ(ServiceWorkerDatabase::DISKCACHE_MIGRATED, state); |
| 186 } |
| 187 |
140 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) { | 188 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) { |
141 base::ScopedTempDir database_dir; | 189 base::ScopedTempDir database_dir; |
142 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); | 190 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); |
143 scoped_ptr<ServiceWorkerDatabase> database( | 191 scoped_ptr<ServiceWorkerDatabase> database( |
144 CreateDatabase(database_dir.path())); | 192 CreateDatabase(database_dir.path())); |
145 | 193 |
146 GURL origin("http://example.com"); | 194 GURL origin("http://example.com"); |
147 | 195 |
148 // Add a registration to the database. | 196 // Add a registration to the database. |
149 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; | 197 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; |
(...skipping 1422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1572 CreateDatabase(database_dir.path())); | 1620 CreateDatabase(database_dir.path())); |
1573 | 1621 |
1574 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); | 1622 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
1575 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); | 1623 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); |
1576 | 1624 |
1577 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); | 1625 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); |
1578 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); | 1626 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); |
1579 } | 1627 } |
1580 | 1628 |
1581 } // namespace content | 1629 } // namespace content |
OLD | NEW |