| 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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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, ®istrations)); | 410 database->GetRegistrationsForOrigin(origin1, ®istrations)); |
| 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, ®istrations)); | 467 database->GetRegistrationsForOrigin(origin3, ®istrations)); |
| 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(®istrations)); | 478 database->GetAllRegistrations(®istrations)); |
| 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(®istrations)); | 538 database->GetAllRegistrations(®istrations)); |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |