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

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

Issue 1135743002: Check the size of ResourceRecords in ServiceWorkerDatabase::ReadRegistration() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DCHECK in ServiceWorkerStorage::ReturnFoundRegistration() Created 5 years, 7 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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 103 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
104 database.reset(CreateDatabaseInMemory()); 104 database.reset(CreateDatabaseInMemory());
105 105
106 // Should be false because the database is not persistent. 106 // Should be false because the database is not persistent.
107 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, 107 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND,
108 database->LazyOpen(false)); 108 database->LazyOpen(false));
109 } 109 }
110 110
111 TEST(ServiceWorkerDatabaseTest, DatabaseVersion) { 111 TEST(ServiceWorkerDatabaseTest, DatabaseVersion) {
112 GURL origin("http://example.com");
112 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 113 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
113 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 114 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
114 115
115 // Opening a new database does not write anything, so its schema version 116 // Opening a new database does not write anything, so its schema version
116 // should be 0. 117 // should be 0.
117 int64 db_version = -1; 118 int64 db_version = -1;
118 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 119 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
119 database->ReadDatabaseVersion(&db_version)); 120 database->ReadDatabaseVersion(&db_version));
120 EXPECT_EQ(0u, db_version); 121 EXPECT_EQ(0u, db_version);
121 122
122 // First writing triggers database initialization and bumps the schema 123 // First writing triggers database initialization and bumps the schema
123 // version. 124 // version.
124 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; 125 std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
126 resources.push_back(CreateResource(1, URL(origin, "/resource"), 10));
125 ServiceWorkerDatabase::RegistrationData deleted_version; 127 ServiceWorkerDatabase::RegistrationData deleted_version;
126 std::vector<int64> newly_purgeable_resources; 128 std::vector<int64> newly_purgeable_resources;
127 ServiceWorkerDatabase::RegistrationData data; 129 ServiceWorkerDatabase::RegistrationData data;
130 data.resources_total_size_bytes = 10;
128 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 131 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
129 database->WriteRegistration( 132 database->WriteRegistration(
130 data, resources, &deleted_version, &newly_purgeable_resources)); 133 data, resources, &deleted_version, &newly_purgeable_resources));
131 134
132 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 135 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
133 database->ReadDatabaseVersion(&db_version)); 136 database->ReadDatabaseVersion(&db_version));
134 EXPECT_LT(0, db_version); 137 EXPECT_LT(0, db_version);
135 } 138 }
136 139
137 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) { 140 TEST(ServiceWorkerDatabaseTest, UpgradeSchemaToVersion2) {
138 base::ScopedTempDir database_dir; 141 base::ScopedTempDir database_dir;
139 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); 142 ASSERT_TRUE(database_dir.CreateUniqueTempDir());
140 scoped_ptr<ServiceWorkerDatabase> database( 143 scoped_ptr<ServiceWorkerDatabase> database(
141 CreateDatabase(database_dir.path())); 144 CreateDatabase(database_dir.path()));
142 145
143 GURL origin("http://example.com"); 146 GURL origin("http://example.com");
144 147
145 // Add a registration to the database. 148 // Add a registration to the database.
146 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; 149 std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
147 ServiceWorkerDatabase::RegistrationData deleted_version; 150 ServiceWorkerDatabase::RegistrationData deleted_version;
148 std::vector<int64> newly_purgeable_resources; 151 std::vector<int64> newly_purgeable_resources;
149 ServiceWorkerDatabase::RegistrationData data; 152 ServiceWorkerDatabase::RegistrationData data;
150 data.registration_id = 100; 153 data.registration_id = 100;
151 data.scope = URL(origin, "/foo"); 154 data.scope = URL(origin, "/foo");
152 data.script = URL(origin, "/script1.js"); 155 data.script = URL(origin, "/script1.js");
153 data.version_id = 200; 156 data.version_id = 200;
157 data.resources_total_size_bytes = 300;
158 resources.push_back(CreateResource(1, data.script, 300));
154 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 159 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
155 database->WriteRegistration(data, resources, &deleted_version, 160 database->WriteRegistration(data, resources, &deleted_version,
156 &newly_purgeable_resources)); 161 &newly_purgeable_resources));
157 162
158 // Sanity check on current version. 163 // Sanity check on current version.
159 int64 db_version = -1; 164 int64 db_version = -1;
160 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 165 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
161 database->ReadDatabaseVersion(&db_version)); 166 database->ReadDatabaseVersion(&db_version));
162 EXPECT_LE(2, db_version); 167 EXPECT_LE(2, db_version);
163 168
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 EXPECT_EQ(0, ids.res_id); 212 EXPECT_EQ(0, ids.res_id);
208 213
209 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 214 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
210 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( 215 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds(
211 &ids.reg_id, &ids.ver_id, &ids.res_id)); 216 &ids.reg_id, &ids.ver_id, &ids.res_id));
212 EXPECT_EQ(0, ids.reg_id); 217 EXPECT_EQ(0, ids.reg_id);
213 EXPECT_EQ(0, ids.ver_id); 218 EXPECT_EQ(0, ids.ver_id);
214 EXPECT_EQ(0, ids.res_id); 219 EXPECT_EQ(0, ids.res_id);
215 220
216 // Writing a registration bumps the next available ids. 221 // Writing a registration bumps the next available ids.
217 std::vector<Resource> resources; 222 std::vector<Resource> resources1;
218 RegistrationData data1; 223 RegistrationData data1;
219 ServiceWorkerDatabase::RegistrationData deleted_version; 224 ServiceWorkerDatabase::RegistrationData deleted_version;
220 std::vector<int64> newly_purgeable_resources; 225 std::vector<int64> newly_purgeable_resources;
221 data1.registration_id = 100; 226 data1.registration_id = 100;
222 data1.scope = URL(origin, "/foo"); 227 data1.scope = URL(origin, "/foo");
223 data1.script = URL(origin, "/script1.js"); 228 data1.script = URL(origin, "/script1.js");
224 data1.version_id = 200; 229 data1.version_id = 200;
225 ASSERT_EQ( 230 data1.resources_total_size_bytes = 300;
226 ServiceWorkerDatabase::STATUS_OK, 231 resources1.push_back(CreateResource(1, data1.script, 300));
227 database->WriteRegistration( 232 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
228 data1, resources, &deleted_version, &newly_purgeable_resources)); 233 database->WriteRegistration(data1, resources1, &deleted_version,
234 &newly_purgeable_resources));
229 235
230 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( 236 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds(
231 &ids.reg_id, &ids.ver_id, &ids.res_id)); 237 &ids.reg_id, &ids.ver_id, &ids.res_id));
232 EXPECT_EQ(101, ids.reg_id); 238 EXPECT_EQ(101, ids.reg_id);
233 EXPECT_EQ(201, ids.ver_id); 239 EXPECT_EQ(201, ids.ver_id);
234 EXPECT_EQ(0, ids.res_id); 240 EXPECT_EQ(0, ids.res_id);
235 241
236 // Writing uncommitted resources bumps the next available id. 242 // Writing uncommitted resources bumps the next available id.
237 const int64 kUncommittedIds[] = {0, 1, 3, 5, 6, 10}; 243 const int64 kUncommittedIds[] = {0, 1, 3, 5, 6, 10};
238 EXPECT_EQ( 244 EXPECT_EQ(
(...skipping 19 matching lines...) Expand all
258 EXPECT_EQ(201, ids.ver_id); 264 EXPECT_EQ(201, ids.ver_id);
259 EXPECT_EQ(21, ids.res_id); 265 EXPECT_EQ(21, ids.res_id);
260 266
261 // Writing a registration whose ids are lower than the stored ones should not 267 // Writing a registration whose ids are lower than the stored ones should not
262 // bump the next available ids. 268 // bump the next available ids.
263 RegistrationData data2; 269 RegistrationData data2;
264 data2.registration_id = 10; 270 data2.registration_id = 10;
265 data2.scope = URL(origin, "/bar"); 271 data2.scope = URL(origin, "/bar");
266 data2.script = URL(origin, "/script2.js"); 272 data2.script = URL(origin, "/script2.js");
267 data2.version_id = 20; 273 data2.version_id = 20;
268 ASSERT_EQ( 274 data2.resources_total_size_bytes = 400;
269 ServiceWorkerDatabase::STATUS_OK, 275 std::vector<Resource> resources2;
270 database->WriteRegistration( 276 resources2.push_back(CreateResource(2, data2.script, 400));
271 data2, resources, &deleted_version, &newly_purgeable_resources)); 277 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
278 database->WriteRegistration(data2, resources2, &deleted_version,
279 &newly_purgeable_resources));
272 280
273 // Same with resources. 281 // Same with resources.
274 int64 kLowResourceId = 15; 282 int64 kLowResourceId = 15;
275 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 283 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
276 database->WriteUncommittedResourceIds( 284 database->WriteUncommittedResourceIds(
277 std::set<int64>(&kLowResourceId, &kLowResourceId + 1))); 285 std::set<int64>(&kLowResourceId, &kLowResourceId + 1)));
278 286
279 // Close and reopen the database to verify the stored values. 287 // Close and reopen the database to verify the stored values.
280 database.reset(CreateDatabase(database_dir.path())); 288 database.reset(CreateDatabase(database_dir.path()));
281 289
282 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( 290 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds(
283 &ids.reg_id, &ids.ver_id, &ids.res_id)); 291 &ids.reg_id, &ids.ver_id, &ids.res_id));
284 EXPECT_EQ(101, ids.reg_id); 292 EXPECT_EQ(101, ids.reg_id);
285 EXPECT_EQ(201, ids.ver_id); 293 EXPECT_EQ(201, ids.ver_id);
286 EXPECT_EQ(21, ids.res_id); 294 EXPECT_EQ(21, ids.res_id);
287 } 295 }
288 296
289 TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) { 297 TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) {
290 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 298 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
291 299
292 std::set<GURL> origins; 300 std::set<GURL> origins;
293 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 301 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
294 database->GetOriginsWithRegistrations(&origins)); 302 database->GetOriginsWithRegistrations(&origins));
295 EXPECT_TRUE(origins.empty()); 303 EXPECT_TRUE(origins.empty());
296 304
297 std::vector<Resource> resources;
298 ServiceWorkerDatabase::RegistrationData deleted_version; 305 ServiceWorkerDatabase::RegistrationData deleted_version;
299 std::vector<int64> newly_purgeable_resources; 306 std::vector<int64> newly_purgeable_resources;
300 307
301 GURL origin1("http://example.com"); 308 GURL origin1("http://example.com");
302 RegistrationData data1; 309 RegistrationData data1;
303 data1.registration_id = 123; 310 data1.registration_id = 123;
304 data1.scope = URL(origin1, "/foo"); 311 data1.scope = URL(origin1, "/foo");
305 data1.script = URL(origin1, "/script1.js"); 312 data1.script = URL(origin1, "/script1.js");
306 data1.version_id = 456; 313 data1.version_id = 456;
307 ASSERT_EQ( 314 data1.resources_total_size_bytes = 100;
308 ServiceWorkerDatabase::STATUS_OK, 315 std::vector<Resource> resources1;
309 database->WriteRegistration( 316 resources1.push_back(CreateResource(1, data1.script, 100));
310 data1, resources, &deleted_version, &newly_purgeable_resources)); 317 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
318 database->WriteRegistration(data1, resources1, &deleted_version,
319 &newly_purgeable_resources));
311 320
312 GURL origin2("https://www.example.com"); 321 GURL origin2("https://www.example.com");
313 RegistrationData data2; 322 RegistrationData data2;
314 data2.registration_id = 234; 323 data2.registration_id = 234;
315 data2.scope = URL(origin2, "/bar"); 324 data2.scope = URL(origin2, "/bar");
316 data2.script = URL(origin2, "/script2.js"); 325 data2.script = URL(origin2, "/script2.js");
317 data2.version_id = 567; 326 data2.version_id = 567;
318 ASSERT_EQ( 327 data2.resources_total_size_bytes = 200;
319 ServiceWorkerDatabase::STATUS_OK, 328 std::vector<Resource> resources2;
320 database->WriteRegistration( 329 resources2.push_back(CreateResource(2, data2.script, 200));
321 data2, resources, &deleted_version, &newly_purgeable_resources)); 330 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
331 database->WriteRegistration(data2, resources2, &deleted_version,
332 &newly_purgeable_resources));
322 333
323 GURL origin3("https://example.org"); 334 GURL origin3("https://example.org");
324 RegistrationData data3; 335 RegistrationData data3;
325 data3.registration_id = 345; 336 data3.registration_id = 345;
326 data3.scope = URL(origin3, "/hoge"); 337 data3.scope = URL(origin3, "/hoge");
327 data3.script = URL(origin3, "/script3.js"); 338 data3.script = URL(origin3, "/script3.js");
328 data3.version_id = 678; 339 data3.version_id = 678;
329 ASSERT_EQ( 340 data3.resources_total_size_bytes = 300;
330 ServiceWorkerDatabase::STATUS_OK, 341 std::vector<Resource> resources3;
331 database->WriteRegistration( 342 resources3.push_back(CreateResource(3, data3.script, 300));
332 data3, resources, &deleted_version, &newly_purgeable_resources)); 343 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
344 database->WriteRegistration(data3, resources3, &deleted_version,
345 &newly_purgeable_resources));
333 346
334 // |origin3| has two registrations. 347 // |origin3| has two registrations.
335 RegistrationData data4; 348 RegistrationData data4;
336 data4.registration_id = 456; 349 data4.registration_id = 456;
337 data4.scope = URL(origin3, "/fuga"); 350 data4.scope = URL(origin3, "/fuga");
338 data4.script = URL(origin3, "/script4.js"); 351 data4.script = URL(origin3, "/script4.js");
339 data4.version_id = 789; 352 data4.version_id = 789;
340 ASSERT_EQ( 353 data4.resources_total_size_bytes = 400;
341 ServiceWorkerDatabase::STATUS_OK, 354 std::vector<Resource> resources4;
342 database->WriteRegistration( 355 resources4.push_back(CreateResource(4, data4.script, 400));
343 data4, resources, &deleted_version, &newly_purgeable_resources)); 356 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
357 database->WriteRegistration(data4, resources4, &deleted_version,
358 &newly_purgeable_resources));
344 359
345 origins.clear(); 360 origins.clear();
346 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 361 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
347 database->GetOriginsWithRegistrations(&origins)); 362 database->GetOriginsWithRegistrations(&origins));
348 EXPECT_EQ(3U, origins.size()); 363 EXPECT_EQ(3U, origins.size());
349 EXPECT_TRUE(ContainsKey(origins, origin1)); 364 EXPECT_TRUE(ContainsKey(origins, origin1));
350 EXPECT_TRUE(ContainsKey(origins, origin2)); 365 EXPECT_TRUE(ContainsKey(origins, origin2));
351 EXPECT_TRUE(ContainsKey(origins, origin3)); 366 EXPECT_TRUE(ContainsKey(origins, origin3));
352 367
353 // |origin3| has another registration, so should not remove it from the 368 // |origin3| has another registration, so should not remove it from the
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 403
389 GURL origin1("http://example.com"); 404 GURL origin1("http://example.com");
390 GURL origin2("https://www.example.com"); 405 GURL origin2("https://www.example.com");
391 GURL origin3("https://example.org"); 406 GURL origin3("https://example.org");
392 407
393 std::vector<RegistrationData> registrations; 408 std::vector<RegistrationData> registrations;
394 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 409 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
395 database->GetRegistrationsForOrigin(origin1, &registrations)); 410 database->GetRegistrationsForOrigin(origin1, &registrations));
396 EXPECT_TRUE(registrations.empty()); 411 EXPECT_TRUE(registrations.empty());
397 412
398 std::vector<Resource> resources;
399 ServiceWorkerDatabase::RegistrationData deleted_version; 413 ServiceWorkerDatabase::RegistrationData deleted_version;
400 std::vector<int64> newly_purgeable_resources; 414 std::vector<int64> newly_purgeable_resources;
401 415
402 RegistrationData data1; 416 RegistrationData data1;
403 data1.registration_id = 100; 417 data1.registration_id = 100;
404 data1.scope = URL(origin1, "/foo"); 418 data1.scope = URL(origin1, "/foo");
405 data1.script = URL(origin1, "/script1.js"); 419 data1.script = URL(origin1, "/script1.js");
406 data1.version_id = 1000; 420 data1.version_id = 1000;
407 ASSERT_EQ( 421 data1.resources_total_size_bytes = 100;
408 ServiceWorkerDatabase::STATUS_OK, 422 std::vector<Resource> resources1;
409 database->WriteRegistration( 423 resources1.push_back(CreateResource(1, data1.script, 100));
410 data1, resources, &deleted_version, &newly_purgeable_resources)); 424 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
425 database->WriteRegistration(data1, resources1, &deleted_version,
426 &newly_purgeable_resources));
411 427
412 RegistrationData data2; 428 RegistrationData data2;
413 data2.registration_id = 200; 429 data2.registration_id = 200;
414 data2.scope = URL(origin2, "/bar"); 430 data2.scope = URL(origin2, "/bar");
415 data2.script = URL(origin2, "/script2.js"); 431 data2.script = URL(origin2, "/script2.js");
416 data2.version_id = 2000; 432 data2.version_id = 2000;
417 ASSERT_EQ( 433 data2.resources_total_size_bytes = 200;
418 ServiceWorkerDatabase::STATUS_OK, 434 std::vector<Resource> resources2;
419 database->WriteRegistration( 435 resources2.push_back(CreateResource(2, data2.script, 200));
420 data2, resources, &deleted_version, &newly_purgeable_resources)); 436 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
437 database->WriteRegistration(data2, resources2, &deleted_version,
438 &newly_purgeable_resources));
421 439
422 RegistrationData data3; 440 RegistrationData data3;
423 data3.registration_id = 300; 441 data3.registration_id = 300;
424 data3.scope = URL(origin3, "/hoge"); 442 data3.scope = URL(origin3, "/hoge");
425 data3.script = URL(origin3, "/script3.js"); 443 data3.script = URL(origin3, "/script3.js");
426 data3.version_id = 3000; 444 data3.version_id = 3000;
427 ASSERT_EQ( 445 data3.resources_total_size_bytes = 300;
428 ServiceWorkerDatabase::STATUS_OK, 446 std::vector<Resource> resources3;
429 database->WriteRegistration( 447 resources3.push_back(CreateResource(3, data3.script, 300));
430 data3, resources, &deleted_version, &newly_purgeable_resources)); 448 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
449 database->WriteRegistration(data3, resources3, &deleted_version,
450 &newly_purgeable_resources));
431 451
432 // |origin3| has two registrations. 452 // |origin3| has two registrations.
433 RegistrationData data4; 453 RegistrationData data4;
434 data4.registration_id = 400; 454 data4.registration_id = 400;
435 data4.scope = URL(origin3, "/fuga"); 455 data4.scope = URL(origin3, "/fuga");
436 data4.script = URL(origin3, "/script4.js"); 456 data4.script = URL(origin3, "/script4.js");
437 data4.version_id = 4000; 457 data4.version_id = 4000;
438 ASSERT_EQ( 458 data4.resources_total_size_bytes = 400;
439 ServiceWorkerDatabase::STATUS_OK, 459 std::vector<Resource> resources4;
440 database->WriteRegistration( 460 resources4.push_back(CreateResource(4, data4.script, 400));
441 data4, resources, &deleted_version, &newly_purgeable_resources)); 461 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
462 database->WriteRegistration(data4, resources4, &deleted_version,
463 &newly_purgeable_resources));
442 464
443 registrations.clear(); 465 registrations.clear();
444 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 466 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
445 database->GetRegistrationsForOrigin(origin3, &registrations)); 467 database->GetRegistrationsForOrigin(origin3, &registrations));
446 EXPECT_EQ(2U, registrations.size()); 468 EXPECT_EQ(2U, registrations.size());
447 VerifyRegistrationData(data3, registrations[0]); 469 VerifyRegistrationData(data3, registrations[0]);
448 VerifyRegistrationData(data4, registrations[1]); 470 VerifyRegistrationData(data4, registrations[1]);
449 } 471 }
450 472
451 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) { 473 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) {
452 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 474 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
453 475
454 std::vector<RegistrationData> registrations; 476 std::vector<RegistrationData> registrations;
455 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 477 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
456 database->GetAllRegistrations(&registrations)); 478 database->GetAllRegistrations(&registrations));
457 EXPECT_TRUE(registrations.empty()); 479 EXPECT_TRUE(registrations.empty());
458 480
459 std::vector<Resource> resources;
460 ServiceWorkerDatabase::RegistrationData deleted_version; 481 ServiceWorkerDatabase::RegistrationData deleted_version;
461 std::vector<int64> newly_purgeable_resources; 482 std::vector<int64> newly_purgeable_resources;
462 483
463 GURL origin1("http://www1.example.com"); 484 GURL origin1("http://www1.example.com");
464 RegistrationData data1; 485 RegistrationData data1;
465 data1.registration_id = 100; 486 data1.registration_id = 100;
466 data1.scope = URL(origin1, "/foo"); 487 data1.scope = URL(origin1, "/foo");
467 data1.script = URL(origin1, "/script1.js"); 488 data1.script = URL(origin1, "/script1.js");
468 data1.version_id = 1000; 489 data1.version_id = 1000;
469 ASSERT_EQ( 490 data1.resources_total_size_bytes = 100;
470 ServiceWorkerDatabase::STATUS_OK, 491 std::vector<Resource> resources1;
471 database->WriteRegistration( 492 resources1.push_back(CreateResource(1, data1.script, 100));
472 data1, resources, &deleted_version, &newly_purgeable_resources)); 493 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
494 database->WriteRegistration(data1, resources1, &deleted_version,
495 &newly_purgeable_resources));
473 496
474 GURL origin2("http://www2.example.com"); 497 GURL origin2("http://www2.example.com");
475 RegistrationData data2; 498 RegistrationData data2;
476 data2.registration_id = 200; 499 data2.registration_id = 200;
477 data2.scope = URL(origin2, "/bar"); 500 data2.scope = URL(origin2, "/bar");
478 data2.script = URL(origin2, "/script2.js"); 501 data2.script = URL(origin2, "/script2.js");
479 data2.version_id = 2000; 502 data2.version_id = 2000;
480 ASSERT_EQ( 503 data2.resources_total_size_bytes = 200;
481 ServiceWorkerDatabase::STATUS_OK, 504 std::vector<Resource> resources2;
482 database->WriteRegistration( 505 resources2.push_back(CreateResource(2, data2.script, 200));
483 data2, resources, &deleted_version, &newly_purgeable_resources)); 506 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
507 database->WriteRegistration(data2, resources2, &deleted_version,
508 &newly_purgeable_resources));
484 509
485 GURL origin3("http://www3.example.com"); 510 GURL origin3("http://www3.example.com");
486 RegistrationData data3; 511 RegistrationData data3;
487 data3.registration_id = 300; 512 data3.registration_id = 300;
488 data3.scope = URL(origin3, "/hoge"); 513 data3.scope = URL(origin3, "/hoge");
489 data3.script = URL(origin3, "/script3.js"); 514 data3.script = URL(origin3, "/script3.js");
490 data3.version_id = 3000; 515 data3.version_id = 3000;
491 ASSERT_EQ( 516 data3.resources_total_size_bytes = 300;
492 ServiceWorkerDatabase::STATUS_OK, 517 std::vector<Resource> resources3;
493 database->WriteRegistration( 518 resources3.push_back(CreateResource(3, data3.script, 300));
494 data3, resources, &deleted_version, &newly_purgeable_resources)); 519 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
520 database->WriteRegistration(data3, resources3, &deleted_version,
521 &newly_purgeable_resources));
495 522
496 // |origin3| has two registrations. 523 // |origin3| has two registrations.
497 RegistrationData data4; 524 RegistrationData data4;
498 data4.registration_id = 400; 525 data4.registration_id = 400;
499 data4.scope = URL(origin3, "/fuga"); 526 data4.scope = URL(origin3, "/fuga");
500 data4.script = URL(origin3, "/script4.js"); 527 data4.script = URL(origin3, "/script4.js");
501 data4.version_id = 4000; 528 data4.version_id = 4000;
502 ASSERT_EQ( 529 data4.resources_total_size_bytes = 400;
503 ServiceWorkerDatabase::STATUS_OK, 530 std::vector<Resource> resources4;
504 database->WriteRegistration( 531 resources4.push_back(CreateResource(4, data4.script, 400));
505 data4, resources, &deleted_version, &newly_purgeable_resources)); 532 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
533 database->WriteRegistration(data4, resources4, &deleted_version,
534 &newly_purgeable_resources));
506 535
507 registrations.clear(); 536 registrations.clear();
508 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 537 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
509 database->GetAllRegistrations(&registrations)); 538 database->GetAllRegistrations(&registrations));
510 EXPECT_EQ(4U, registrations.size()); 539 EXPECT_EQ(4U, registrations.size());
511 VerifyRegistrationData(data1, registrations[0]); 540 VerifyRegistrationData(data1, registrations[0]);
512 VerifyRegistrationData(data2, registrations[1]); 541 VerifyRegistrationData(data2, registrations[1]);
513 VerifyRegistrationData(data3, registrations[2]); 542 VerifyRegistrationData(data3, registrations[2]);
514 VerifyRegistrationData(data4, registrations[3]); 543 VerifyRegistrationData(data4, registrations[3]);
515 } 544 }
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 TEST(ServiceWorkerDatabaseTest, UserData_Basic) { 901 TEST(ServiceWorkerDatabaseTest, UserData_Basic) {
873 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 902 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
874 const GURL kOrigin("http://example.com"); 903 const GURL kOrigin("http://example.com");
875 904
876 // Add a registration. 905 // Add a registration.
877 RegistrationData data; 906 RegistrationData data;
878 data.registration_id = 100; 907 data.registration_id = 100;
879 data.scope = URL(kOrigin, "/foo"); 908 data.scope = URL(kOrigin, "/foo");
880 data.script = URL(kOrigin, "/script.js"); 909 data.script = URL(kOrigin, "/script.js");
881 data.version_id = 200; 910 data.version_id = 200;
882 911 data.resources_total_size_bytes = 100;
883 std::vector<Resource> resources; 912 std::vector<Resource> resources;
913 resources.push_back(CreateResource(1, data.script, 100));
884 ServiceWorkerDatabase::RegistrationData deleted_version; 914 ServiceWorkerDatabase::RegistrationData deleted_version;
885 std::vector<int64> newly_purgeable_resources; 915 std::vector<int64> newly_purgeable_resources;
886 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 916 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
887 database->WriteRegistration( 917 database->WriteRegistration(
888 data, resources, &deleted_version, &newly_purgeable_resources)); 918 data, resources, &deleted_version, &newly_purgeable_resources));
889 919
890 // Write user data associated with the stored registration. 920 // Write user data associated with the stored registration.
891 std::string user_data_out; 921 std::string user_data_out;
892 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 922 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
893 database->WriteUserData( 923 database->WriteUserData(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 TEST(ServiceWorkerDatabaseTest, UserData_DataIsolation) { 969 TEST(ServiceWorkerDatabaseTest, UserData_DataIsolation) {
940 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 970 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
941 const GURL kOrigin("http://example.com"); 971 const GURL kOrigin("http://example.com");
942 972
943 // Add registration 1. 973 // Add registration 1.
944 RegistrationData data1; 974 RegistrationData data1;
945 data1.registration_id = 100; 975 data1.registration_id = 100;
946 data1.scope = URL(kOrigin, "/foo"); 976 data1.scope = URL(kOrigin, "/foo");
947 data1.script = URL(kOrigin, "/script1.js"); 977 data1.script = URL(kOrigin, "/script1.js");
948 data1.version_id = 200; 978 data1.version_id = 200;
979 data1.resources_total_size_bytes = 100;
980 std::vector<Resource> resources1;
981 resources1.push_back(CreateResource(1, data1.script, 100));
949 982
950 // Add registration 2. 983 // Add registration 2.
951 RegistrationData data2; 984 RegistrationData data2;
952 data2.registration_id = 101; 985 data2.registration_id = 101;
953 data2.scope = URL(kOrigin, "/bar"); 986 data2.scope = URL(kOrigin, "/bar");
954 data2.script = URL(kOrigin, "/script2.js"); 987 data2.script = URL(kOrigin, "/script2.js");
955 data2.version_id = 201; 988 data2.version_id = 201;
989 data2.resources_total_size_bytes = 200;
990 std::vector<Resource> resources2;
991 resources2.push_back(CreateResource(2, data2.script, 200));
956 992
957 std::vector<Resource> resources;
958 ServiceWorkerDatabase::RegistrationData deleted_version; 993 ServiceWorkerDatabase::RegistrationData deleted_version;
959 std::vector<int64> newly_purgeable_resources; 994 std::vector<int64> newly_purgeable_resources;
960 ASSERT_EQ( 995 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
961 ServiceWorkerDatabase::STATUS_OK, 996 database->WriteRegistration(data1, resources1, &deleted_version,
962 database->WriteRegistration( 997 &newly_purgeable_resources));
963 data1, resources, &deleted_version, &newly_purgeable_resources)); 998 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
964 ASSERT_EQ( 999 database->WriteRegistration(data2, resources2, &deleted_version,
965 ServiceWorkerDatabase::STATUS_OK, 1000 &newly_purgeable_resources));
966 database->WriteRegistration(
967 data2, resources, &deleted_version, &newly_purgeable_resources));
968 1001
969 // Write user data associated with the registration1. 1002 // Write user data associated with the registration1.
970 std::string user_data_out; 1003 std::string user_data_out;
971 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 1004 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
972 database->WriteUserData( 1005 database->WriteUserData(
973 data1.registration_id, kOrigin, "key", "data1")); 1006 data1.registration_id, kOrigin, "key", "data1"));
974 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1007 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
975 database->ReadUserData( 1008 database->ReadUserData(
976 data1.registration_id, "key", &user_data_out)); 1009 data1.registration_id, "key", &user_data_out));
977 EXPECT_EQ("data1", user_data_out); 1010 EXPECT_EQ("data1", user_data_out);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 TEST(ServiceWorkerDatabaseTest, UserData_DeleteRegistration) { 1060 TEST(ServiceWorkerDatabaseTest, UserData_DeleteRegistration) {
1028 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 1061 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
1029 const GURL kOrigin("http://example.com"); 1062 const GURL kOrigin("http://example.com");
1030 1063
1031 // Add registration 1. 1064 // Add registration 1.
1032 RegistrationData data1; 1065 RegistrationData data1;
1033 data1.registration_id = 100; 1066 data1.registration_id = 100;
1034 data1.scope = URL(kOrigin, "/foo"); 1067 data1.scope = URL(kOrigin, "/foo");
1035 data1.script = URL(kOrigin, "/script1.js"); 1068 data1.script = URL(kOrigin, "/script1.js");
1036 data1.version_id = 200; 1069 data1.version_id = 200;
1070 data1.resources_total_size_bytes = 100;
1071 std::vector<Resource> resources1;
1072 resources1.push_back(CreateResource(1, data1.script, 100));
1037 1073
1038 // Add registration 2. 1074 // Add registration 2.
1039 RegistrationData data2; 1075 RegistrationData data2;
1040 data2.registration_id = 101; 1076 data2.registration_id = 101;
1041 data2.scope = URL(kOrigin, "/bar"); 1077 data2.scope = URL(kOrigin, "/bar");
1042 data2.script = URL(kOrigin, "/script2.js"); 1078 data2.script = URL(kOrigin, "/script2.js");
1043 data2.version_id = 201; 1079 data2.version_id = 201;
1080 data2.resources_total_size_bytes = 200;
1081 std::vector<Resource> resources2;
1082 resources2.push_back(CreateResource(2, data2.script, 200));
1044 1083
1045 std::vector<Resource> resources;
1046 ServiceWorkerDatabase::RegistrationData deleted_version; 1084 ServiceWorkerDatabase::RegistrationData deleted_version;
1047 std::vector<int64> newly_purgeable_resources; 1085 std::vector<int64> newly_purgeable_resources;
1048 ASSERT_EQ( 1086 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1049 ServiceWorkerDatabase::STATUS_OK, 1087 database->WriteRegistration(data1, resources1, &deleted_version,
1050 database->WriteRegistration( 1088 &newly_purgeable_resources));
1051 data1, resources, &deleted_version, &newly_purgeable_resources)); 1089 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1052 ASSERT_EQ( 1090 database->WriteRegistration(data2, resources2, &deleted_version,
1053 ServiceWorkerDatabase::STATUS_OK, 1091 &newly_purgeable_resources));
1054 database->WriteRegistration(
1055 data2, resources, &deleted_version, &newly_purgeable_resources));
1056 1092
1057 // Write user data associated with the registration1. 1093 // Write user data associated with the registration1.
1058 std::string user_data_out; 1094 std::string user_data_out;
1059 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 1095 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1060 database->WriteUserData( 1096 database->WriteUserData(
1061 data1.registration_id, kOrigin, "key1", "data1")); 1097 data1.registration_id, kOrigin, "key1", "data1"));
1062 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 1098 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1063 database->WriteUserData( 1099 database->WriteUserData(
1064 data1.registration_id, kOrigin, "key2", "data2")); 1100 data1.registration_id, kOrigin, "key2", "data2"));
1065 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 1101 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1141 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, 1177 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND,
1142 database->UpdateVersionToActive(0, origin)); 1178 database->UpdateVersionToActive(0, origin));
1143 1179
1144 // Add a registration. 1180 // Add a registration.
1145 RegistrationData data; 1181 RegistrationData data;
1146 data.registration_id = 100; 1182 data.registration_id = 100;
1147 data.scope = URL(origin, "/foo"); 1183 data.scope = URL(origin, "/foo");
1148 data.script = URL(origin, "/script.js"); 1184 data.script = URL(origin, "/script.js");
1149 data.version_id = 200; 1185 data.version_id = 200;
1150 data.is_active = false; 1186 data.is_active = false;
1187 data.resources_total_size_bytes = 100;
1188 std::vector<Resource> resources;
1189 resources.push_back(CreateResource(1, data.script, 100));
1151 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1190 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1152 database->WriteRegistration(data, 1191 database->WriteRegistration(data, resources, &deleted_version,
1153 std::vector<Resource>(),
1154 &deleted_version,
1155 &newly_purgeable_resources)); 1192 &newly_purgeable_resources));
1156 1193
1157 // Make sure that the registration is stored. 1194 // Make sure that the registration is stored.
1158 RegistrationData data_out; 1195 RegistrationData data_out;
1159 std::vector<Resource> resources_out; 1196 std::vector<Resource> resources_out;
1160 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1197 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1161 database->ReadRegistration( 1198 database->ReadRegistration(
1162 data.registration_id, origin, &data_out, &resources_out)); 1199 data.registration_id, origin, &data_out, &resources_out));
1163 VerifyRegistrationData(data, data_out); 1200 VerifyRegistrationData(data, data_out);
1164 EXPECT_TRUE(resources_out.empty()); 1201 EXPECT_EQ(1u, resources_out.size());
1165 1202
1166 // Activate the registration. 1203 // Activate the registration.
1167 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1204 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1168 database->UpdateVersionToActive(data.registration_id, origin)); 1205 database->UpdateVersionToActive(data.registration_id, origin));
1169 1206
1170 // Make sure that the registration is activated. 1207 // Make sure that the registration is activated.
1171 resources_out.clear(); 1208 resources_out.clear();
1172 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1209 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1173 database->ReadRegistration( 1210 database->ReadRegistration(
1174 data.registration_id, origin, &data_out, &resources_out)); 1211 data.registration_id, origin, &data_out, &resources_out));
1175 RegistrationData expected_data = data; 1212 RegistrationData expected_data = data;
1176 expected_data.is_active = true; 1213 expected_data.is_active = true;
1177 VerifyRegistrationData(expected_data, data_out); 1214 VerifyRegistrationData(expected_data, data_out);
1178 EXPECT_TRUE(resources_out.empty()); 1215 EXPECT_EQ(1u, resources_out.size());
1179 1216
1180 // Delete the registration. 1217 // Delete the registration.
1181 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1218 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1182 database->DeleteRegistration(data.registration_id, 1219 database->DeleteRegistration(data.registration_id,
1183 origin, 1220 origin,
1184 &deleted_version, 1221 &deleted_version,
1185 &newly_purgeable_resources)); 1222 &newly_purgeable_resources));
1186 EXPECT_EQ(data.registration_id, deleted_version.registration_id); 1223 EXPECT_EQ(data.registration_id, deleted_version.registration_id);
1187 1224
1188 // Should be false because the registration is gone. 1225 // Should be false because the registration is gone.
(...skipping 11 matching lines...) Expand all
1200 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, 1237 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND,
1201 database->UpdateLastCheckTime(0, origin, base::Time::Now())); 1238 database->UpdateLastCheckTime(0, origin, base::Time::Now()));
1202 1239
1203 // Add a registration. 1240 // Add a registration.
1204 RegistrationData data; 1241 RegistrationData data;
1205 data.registration_id = 100; 1242 data.registration_id = 100;
1206 data.scope = URL(origin, "/foo"); 1243 data.scope = URL(origin, "/foo");
1207 data.script = URL(origin, "/script.js"); 1244 data.script = URL(origin, "/script.js");
1208 data.version_id = 200; 1245 data.version_id = 200;
1209 data.last_update_check = base::Time::Now(); 1246 data.last_update_check = base::Time::Now();
1247 data.resources_total_size_bytes = 100;
1248 std::vector<Resource> resources;
1249 resources.push_back(CreateResource(1, data.script, 100));
1210 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1250 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1211 database->WriteRegistration(data, 1251 database->WriteRegistration(data, resources, &deleted_version,
1212 std::vector<Resource>(),
1213 &deleted_version,
1214 &newly_purgeable_resources)); 1252 &newly_purgeable_resources));
1215 1253
1216 // Make sure that the registration is stored. 1254 // Make sure that the registration is stored.
1217 RegistrationData data_out; 1255 RegistrationData data_out;
1218 std::vector<Resource> resources_out; 1256 std::vector<Resource> resources_out;
1219 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1257 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1220 database->ReadRegistration( 1258 database->ReadRegistration(
1221 data.registration_id, origin, &data_out, &resources_out)); 1259 data.registration_id, origin, &data_out, &resources_out));
1222 VerifyRegistrationData(data, data_out); 1260 VerifyRegistrationData(data, data_out);
1223 EXPECT_TRUE(resources_out.empty()); 1261 EXPECT_EQ(1u, resources_out.size());
1224 1262
1225 // Update the last check time. 1263 // Update the last check time.
1226 base::Time updated_time = base::Time::Now(); 1264 base::Time updated_time = base::Time::Now();
1227 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1265 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1228 database->UpdateLastCheckTime( 1266 database->UpdateLastCheckTime(
1229 data.registration_id, origin, updated_time)); 1267 data.registration_id, origin, updated_time));
1230 1268
1231 // Make sure that the registration is updated. 1269 // Make sure that the registration is updated.
1232 resources_out.clear(); 1270 resources_out.clear();
1233 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1271 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1234 database->ReadRegistration( 1272 database->ReadRegistration(
1235 data.registration_id, origin, &data_out, &resources_out)); 1273 data.registration_id, origin, &data_out, &resources_out));
1236 RegistrationData expected_data = data; 1274 RegistrationData expected_data = data;
1237 expected_data.last_update_check = updated_time; 1275 expected_data.last_update_check = updated_time;
1238 VerifyRegistrationData(expected_data, data_out); 1276 VerifyRegistrationData(expected_data, data_out);
1239 EXPECT_TRUE(resources_out.empty()); 1277 EXPECT_EQ(1u, resources_out.size());
1240 1278
1241 // Delete the registration. 1279 // Delete the registration.
1242 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1280 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1243 database->DeleteRegistration(data.registration_id, 1281 database->DeleteRegistration(data.registration_id,
1244 origin, 1282 origin,
1245 &deleted_version, 1283 &deleted_version,
1246 &newly_purgeable_resources)); 1284 &newly_purgeable_resources));
1247 EXPECT_EQ(data.registration_id, deleted_version.registration_id); 1285 EXPECT_EQ(data.registration_id, deleted_version.registration_id);
1248 1286
1249 // Should be false because the registration is gone. 1287 // Should be false because the registration is gone.
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1496 CreateDatabase(database_dir.path())); 1534 CreateDatabase(database_dir.path()));
1497 1535
1498 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 1536 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
1499 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); 1537 ASSERT_TRUE(base::DirectoryExists(database_dir.path()));
1500 1538
1501 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); 1539 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase());
1502 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); 1540 ASSERT_FALSE(base::DirectoryExists(database_dir.path()));
1503 } 1541 }
1504 1542
1505 } // namespace content 1543 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698