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

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

Issue 1146913004: Service Worker: Add ServiceWorkerContainer.getRegistrations() method. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update tools/metrics/histograms/histograms.xml. 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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 } 399 }
400 400
401 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) { 401 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) {
402 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 402 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
403 403
404 GURL origin1("http://example.com"); 404 GURL origin1("http://example.com");
405 GURL origin2("https://www.example.com"); 405 GURL origin2("https://www.example.com");
406 GURL origin3("https://example.org"); 406 GURL origin3("https://example.org");
407 407
408 std::vector<RegistrationData> registrations; 408 std::vector<RegistrationData> registrations;
409 std::vector<std::vector<Resource>> resources_list;
409 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 410 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
410 database->GetRegistrationsForOrigin(origin1, &registrations)); 411 database->GetRegistrationsForOrigin(origin1, &registrations,
412 &resources_list));
411 EXPECT_TRUE(registrations.empty()); 413 EXPECT_TRUE(registrations.empty());
414 EXPECT_TRUE(resources_list.empty());
412 415
413 ServiceWorkerDatabase::RegistrationData deleted_version; 416 ServiceWorkerDatabase::RegistrationData deleted_version;
414 std::vector<int64> newly_purgeable_resources; 417 std::vector<int64> newly_purgeable_resources;
415 418
416 RegistrationData data1; 419 RegistrationData data1;
417 data1.registration_id = 100; 420 data1.registration_id = 100;
418 data1.scope = URL(origin1, "/foo"); 421 data1.scope = URL(origin1, "/foo");
419 data1.script = URL(origin1, "/script1.js"); 422 data1.script = URL(origin1, "/script1.js");
420 data1.version_id = 1000; 423 data1.version_id = 1000;
421 data1.resources_total_size_bytes = 100; 424 data1.resources_total_size_bytes = 100;
422 std::vector<Resource> resources1; 425 std::vector<Resource> resources1;
423 resources1.push_back(CreateResource(1, data1.script, 100)); 426 resources1.push_back(CreateResource(1, data1.script, 100));
424 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 427 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
425 database->WriteRegistration(data1, resources1, &deleted_version, 428 database->WriteRegistration(data1, resources1, &deleted_version,
426 &newly_purgeable_resources)); 429 &newly_purgeable_resources));
427 430
431 registrations.clear();
432 resources_list.clear();
433 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
434 database->GetRegistrationsForOrigin(origin1, &registrations,
435 &resources_list));
436 EXPECT_EQ(1U, registrations.size());
437 VerifyRegistrationData(data1, registrations[0]);
438 EXPECT_EQ(1U, resources_list.size());
439 VerifyResourceRecords(resources1, resources_list[0]);
440
428 RegistrationData data2; 441 RegistrationData data2;
429 data2.registration_id = 200; 442 data2.registration_id = 200;
430 data2.scope = URL(origin2, "/bar"); 443 data2.scope = URL(origin2, "/bar");
431 data2.script = URL(origin2, "/script2.js"); 444 data2.script = URL(origin2, "/script2.js");
432 data2.version_id = 2000; 445 data2.version_id = 2000;
433 data2.resources_total_size_bytes = 200; 446 data2.resources_total_size_bytes = 200;
434 std::vector<Resource> resources2; 447 std::vector<Resource> resources2;
435 resources2.push_back(CreateResource(2, data2.script, 200)); 448 resources2.push_back(CreateResource(2, data2.script, 200));
436 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 449 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
437 database->WriteRegistration(data2, resources2, &deleted_version, 450 database->WriteRegistration(data2, resources2, &deleted_version,
438 &newly_purgeable_resources)); 451 &newly_purgeable_resources));
439 452
453 registrations.clear();
454 resources_list.clear();
455 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
456 database->GetRegistrationsForOrigin(origin2, &registrations,
457 &resources_list));
458 EXPECT_EQ(1U, registrations.size());
459 VerifyRegistrationData(data2, registrations[0]);
460 EXPECT_EQ(1U, resources_list.size());
461 VerifyResourceRecords(resources2, resources_list[0]);
462
440 RegistrationData data3; 463 RegistrationData data3;
441 data3.registration_id = 300; 464 data3.registration_id = 300;
442 data3.scope = URL(origin3, "/hoge"); 465 data3.scope = URL(origin3, "/hoge");
443 data3.script = URL(origin3, "/script3.js"); 466 data3.script = URL(origin3, "/script3.js");
444 data3.version_id = 3000; 467 data3.version_id = 3000;
445 data3.resources_total_size_bytes = 300; 468 data3.resources_total_size_bytes = 300;
446 std::vector<Resource> resources3; 469 std::vector<Resource> resources3;
447 resources3.push_back(CreateResource(3, data3.script, 300)); 470 resources3.push_back(CreateResource(3, data3.script, 300));
448 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 471 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
449 database->WriteRegistration(data3, resources3, &deleted_version, 472 database->WriteRegistration(data3, resources3, &deleted_version,
450 &newly_purgeable_resources)); 473 &newly_purgeable_resources));
451 474
452 // |origin3| has two registrations. 475 // |origin3| has two registrations.
453 RegistrationData data4; 476 RegistrationData data4;
454 data4.registration_id = 400; 477 data4.registration_id = 400;
455 data4.scope = URL(origin3, "/fuga"); 478 data4.scope = URL(origin3, "/fuga");
456 data4.script = URL(origin3, "/script4.js"); 479 data4.script = URL(origin3, "/script4.js");
457 data4.version_id = 4000; 480 data4.version_id = 4000;
458 data4.resources_total_size_bytes = 400; 481 data4.resources_total_size_bytes = 400;
459 std::vector<Resource> resources4; 482 std::vector<Resource> resources4;
460 resources4.push_back(CreateResource(4, data4.script, 400)); 483 resources4.push_back(CreateResource(4, data4.script, 400));
461 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, 484 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
462 database->WriteRegistration(data4, resources4, &deleted_version, 485 database->WriteRegistration(data4, resources4, &deleted_version,
463 &newly_purgeable_resources)); 486 &newly_purgeable_resources));
464 487
465 registrations.clear(); 488 registrations.clear();
489 resources_list.clear();
466 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 490 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
467 database->GetRegistrationsForOrigin(origin3, &registrations)); 491 database->GetRegistrationsForOrigin(origin3, &registrations,
492 &resources_list));
468 EXPECT_EQ(2U, registrations.size()); 493 EXPECT_EQ(2U, registrations.size());
469 VerifyRegistrationData(data3, registrations[0]); 494 VerifyRegistrationData(data3, registrations[0]);
470 VerifyRegistrationData(data4, registrations[1]); 495 VerifyRegistrationData(data4, registrations[1]);
496 EXPECT_EQ(2U, resources_list.size());
497 VerifyResourceRecords(resources3, resources_list[0]);
498 VerifyResourceRecords(resources4, resources_list[1]);
499
500 // The third parameter |opt_resources_list| to GetRegistrationsForOrigin()
501 // is optional. So, nullptr should be acceptable.
502 registrations.clear();
503 EXPECT_EQ(
504 ServiceWorkerDatabase::STATUS_OK,
505 database->GetRegistrationsForOrigin(origin1, &registrations, nullptr));
506 EXPECT_EQ(1U, registrations.size());
507 VerifyRegistrationData(data1, registrations[0]);
471 } 508 }
472 509
473 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) { 510 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) {
474 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 511 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
475 512
476 std::vector<RegistrationData> registrations; 513 std::vector<RegistrationData> registrations;
477 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 514 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
478 database->GetAllRegistrations(&registrations)); 515 database->GetAllRegistrations(&registrations));
479 EXPECT_TRUE(registrations.empty()); 516 EXPECT_TRUE(registrations.empty());
480 517
(...skipping 983 matching lines...) Expand 10 before | Expand all | Expand 10 after
1464 1501
1465 // |origin1| should be removed from the unique origin list. 1502 // |origin1| should be removed from the unique origin list.
1466 std::set<GURL> unique_origins; 1503 std::set<GURL> unique_origins;
1467 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1504 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1468 database->GetOriginsWithRegistrations(&unique_origins)); 1505 database->GetOriginsWithRegistrations(&unique_origins));
1469 EXPECT_EQ(1u, unique_origins.size()); 1506 EXPECT_EQ(1u, unique_origins.size());
1470 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); 1507 EXPECT_TRUE(ContainsKey(unique_origins, origin2));
1471 1508
1472 // The registrations for |origin1| should be removed. 1509 // The registrations for |origin1| should be removed.
1473 std::vector<RegistrationData> registrations; 1510 std::vector<RegistrationData> registrations;
1474 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1511 EXPECT_EQ(
1475 database->GetRegistrationsForOrigin(origin1, &registrations)); 1512 ServiceWorkerDatabase::STATUS_OK,
1513 database->GetRegistrationsForOrigin(origin1, &registrations, nullptr));
1476 EXPECT_TRUE(registrations.empty()); 1514 EXPECT_TRUE(registrations.empty());
1477 GURL origin_out; 1515 GURL origin_out;
1478 EXPECT_EQ( 1516 EXPECT_EQ(
1479 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, 1517 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND,
1480 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); 1518 database->ReadRegistrationOrigin(data1.registration_id, &origin_out));
1481 1519
1482 // The registration for |origin2| should not be removed. 1520 // The registration for |origin2| should not be removed.
1483 RegistrationData data_out; 1521 RegistrationData data_out;
1484 std::vector<Resource> resources_out; 1522 std::vector<Resource> resources_out;
1485 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( 1523 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 CreateDatabase(database_dir.path())); 1572 CreateDatabase(database_dir.path()));
1535 1573
1536 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 1574 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
1537 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); 1575 ASSERT_TRUE(base::DirectoryExists(database_dir.path()));
1538 1576
1539 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); 1577 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase());
1540 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); 1578 ASSERT_FALSE(base::DirectoryExists(database_dir.path()));
1541 } 1579 }
1542 1580
1543 } // namespace content 1581 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698