Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1312)

Side by Side Diff: content/browser/service_worker/service_worker_database_unittest.cc

Issue 1152543002: ServiceWorker: Migrate the script cache backend from BlockFile to Simple (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 base::ScopedTempDir database_dir;
143 ASSERT_TRUE(database_dir.CreateUniqueTempDir());
144 scoped_ptr<ServiceWorkerDatabase> database(
145 CreateDatabase(database_dir.path()));
146
147 // An empty database should return false.
148 bool migration_needed = false;
149 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
150 database->IsDiskCacheMigrationNeeded(&migration_needed));
151 EXPECT_FALSE(migration_needed);
152 bool deletion_needed = false;
153 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
154 database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
155 EXPECT_FALSE(deletion_needed);
156
157 // Simulate an existing database created before diskcache migration.
158 database->set_skip_writing_diskcache_migration_state_on_init_for_testing();
159 std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
160 ServiceWorkerDatabase::RegistrationData deleted_version;
161 std::vector<int64> newly_purgeable_resources;
162 ServiceWorkerDatabase::RegistrationData data;
163 data.registration_id = 100;
164 data.scope = URL(origin, "/foo");
165 data.script = URL(origin, "/script.js");
166 data.version_id = 200;
167 data.resources_total_size_bytes = 300;
168 resources.push_back(CreateResource(1, data.script, 300));
169 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
170 database->WriteRegistration(data, resources, &deleted_version,
171 &newly_purgeable_resources));
172 migration_needed = false;
173 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
174 database->IsDiskCacheMigrationNeeded(&migration_needed));
175 ASSERT_TRUE(migration_needed);
176 deletion_needed = false;
177 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
178 database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
179 ASSERT_TRUE(deletion_needed);
180
181 // Opening the existing database should not update the migration states.
182 database.reset(CreateDatabase(database_dir.path()));
183 migration_needed = false;
184 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
185 database->IsDiskCacheMigrationNeeded(&migration_needed));
186 EXPECT_TRUE(migration_needed);
187 deletion_needed = false;
188 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
189 database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
190 EXPECT_TRUE(deletion_needed);
191
192 // Test SetDiskCacheMigrationNotNeeded().
193 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
194 database->SetDiskCacheMigrationNotNeeded());
195 migration_needed = false;
196 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
197 database->IsDiskCacheMigrationNeeded(&migration_needed));
198 EXPECT_FALSE(migration_needed);
199
200 // Test SetOldDiskCacheDeletionNotNeeded().
201 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
202 database->SetOldDiskCacheDeletionNotNeeded());
203 deletion_needed = false;
204 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
205 database->IsOldDiskCacheDeletionNeeded(&deletion_needed));
206 EXPECT_FALSE(deletion_needed);
207 }
208
140 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) { 209 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) {
141 base::ScopedTempDir database_dir; 210 base::ScopedTempDir database_dir;
142 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); 211 ASSERT_TRUE(database_dir.CreateUniqueTempDir());
143 scoped_ptr<ServiceWorkerDatabase> database( 212 scoped_ptr<ServiceWorkerDatabase> database(
144 CreateDatabase(database_dir.path())); 213 CreateDatabase(database_dir.path()));
145 214
146 GURL origin("http://example.com"); 215 GURL origin("http://example.com");
147 216
148 // Add a registration to the database. 217 // Add a registration to the database.
149 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; 218 std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
(...skipping 1422 matching lines...) Expand 10 before | Expand all | Expand 10 after
1572 CreateDatabase(database_dir.path())); 1641 CreateDatabase(database_dir.path()));
1573 1642
1574 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 1643 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
1575 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); 1644 ASSERT_TRUE(base::DirectoryExists(database_dir.path()));
1576 1645
1577 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); 1646 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase());
1578 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); 1647 ASSERT_FALSE(base::DirectoryExists(database_dir.path()));
1579 } 1648 }
1580 1649
1581 } // namespace content 1650 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698