Commit 4e2ec4a3 authored by Kenichi Ishibashi's avatar Kenichi Ishibashi Committed by Commit Bot

service worker: Move DeleteAndStartOver unittests

Before this CL, DeleteAndStartOver related tests are defined in
ServiceWorkerResourceStorageDiskTest class. The class depends on
in-memory representation of ServiceWorkerRegistration, but these
tests don't necessary depend on ServiceWorkerRegistration.

This CL (re)introduces ServiceWorkerStorageDiskTest class to host
these tests. The class stores a service worker registration to
perform DeleteAndStartOver related checks.

This is a preparation to remove in-memory representations from
service_worker_storage_unittest.cc

Bug: 1016064
Change-Id: I53e094c97e761bf0fa6ea1efbda19edc3dd0daaa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2464516Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#816056}
parent d837ccbf
...@@ -42,13 +42,14 @@ class ServiceWorkerStorageControlImplTest; ...@@ -42,13 +42,14 @@ class ServiceWorkerStorageControlImplTest;
namespace service_worker_storage_unittest { namespace service_worker_storage_unittest {
class ServiceWorkerStorageTest; class ServiceWorkerStorageTest;
class ServiceWorkerStorageDiskTest;
class ServiceWorkerResourceStorageTest; class ServiceWorkerResourceStorageTest;
class ServiceWorkerResourceStorageDiskTest; class ServiceWorkerResourceStorageDiskTest;
FORWARD_DECLARE_TEST(ServiceWorkerResourceStorageDiskTest, CleanupOnRestart); FORWARD_DECLARE_TEST(ServiceWorkerResourceStorageDiskTest, CleanupOnRestart);
FORWARD_DECLARE_TEST(ServiceWorkerResourceStorageDiskTest, DeleteAndStartOver); FORWARD_DECLARE_TEST(ServiceWorkerStorageDiskTest, DeleteAndStartOver);
FORWARD_DECLARE_TEST(ServiceWorkerResourceStorageDiskTest, FORWARD_DECLARE_TEST(ServiceWorkerStorageDiskTest,
DeleteAndStartOver_UnrelatedFileExists); DeleteAndStartOver_UnrelatedFileExists);
FORWARD_DECLARE_TEST(ServiceWorkerResourceStorageDiskTest, FORWARD_DECLARE_TEST(ServiceWorkerStorageDiskTest,
DeleteAndStartOver_OpenedFileExists); DeleteAndStartOver_OpenedFileExists);
FORWARD_DECLARE_TEST(ServiceWorkerStorageTest, DisabledStorage); FORWARD_DECLARE_TEST(ServiceWorkerStorageTest, DisabledStorage);
} // namespace service_worker_storage_unittest } // namespace service_worker_storage_unittest
...@@ -303,13 +304,13 @@ class CONTENT_EXPORT ServiceWorkerStorage { ...@@ -303,13 +304,13 @@ class CONTENT_EXPORT ServiceWorkerStorage {
service_worker_storage_unittest::ServiceWorkerResourceStorageDiskTest, service_worker_storage_unittest::ServiceWorkerResourceStorageDiskTest,
CleanupOnRestart); CleanupOnRestart);
FRIEND_TEST_ALL_PREFIXES( FRIEND_TEST_ALL_PREFIXES(
service_worker_storage_unittest::ServiceWorkerResourceStorageDiskTest, service_worker_storage_unittest::ServiceWorkerStorageDiskTest,
DeleteAndStartOver); DeleteAndStartOver);
FRIEND_TEST_ALL_PREFIXES( FRIEND_TEST_ALL_PREFIXES(
service_worker_storage_unittest::ServiceWorkerResourceStorageDiskTest, service_worker_storage_unittest::ServiceWorkerStorageDiskTest,
DeleteAndStartOver_UnrelatedFileExists); DeleteAndStartOver_UnrelatedFileExists);
FRIEND_TEST_ALL_PREFIXES( FRIEND_TEST_ALL_PREFIXES(
service_worker_storage_unittest::ServiceWorkerResourceStorageDiskTest, service_worker_storage_unittest::ServiceWorkerStorageDiskTest,
DeleteAndStartOver_OpenedFileExists); DeleteAndStartOver_OpenedFileExists);
FRIEND_TEST_ALL_PREFIXES( FRIEND_TEST_ALL_PREFIXES(
service_worker_storage_unittest::ServiceWorkerStorageTest, service_worker_storage_unittest::ServiceWorkerStorageTest,
......
...@@ -1610,7 +1610,48 @@ TEST_F(ServiceWorkerResourceStorageDiskTest, CleanupOnRestart) { ...@@ -1610,7 +1610,48 @@ TEST_F(ServiceWorkerResourceStorageDiskTest, CleanupOnRestart) {
EXPECT_TRUE(VerifyBasicResponse(storage_control(), kNewResourceId, true)); EXPECT_TRUE(VerifyBasicResponse(storage_control(), kNewResourceId, true));
} }
TEST_F(ServiceWorkerResourceStorageDiskTest, DeleteAndStartOver) { // Test fixture that uses disk storage, rather than memory. Useful for tests
// that test persistence by simulating browser shutdown and restart.
class ServiceWorkerStorageDiskTest : public ServiceWorkerStorageTest {
public:
void SetUp() override {
ASSERT_TRUE(InitUserDataDirectory());
ServiceWorkerStorageTest::SetUp();
LazyInitialize();
// Store a registration with a resource to make sure disk cache and
// database directories are created.
const GURL kScope("http://www.example.com/scope/");
const GURL kScript("http://www.example.com/script.js");
const int64_t kScriptSize = 5;
auto data = storage::mojom::ServiceWorkerRegistrationData::New();
data->registration_id = 1;
data->version_id = 1;
data->scope = kScope;
data->script = kScript;
data->navigation_preload_state =
blink::mojom::NavigationPreloadState::New();
data->resources_total_size_bytes = kScriptSize;
std::vector<ResourceRecord> resources;
resources.push_back(CreateResourceRecord(1, kScript, kScriptSize));
base::RunLoop loop;
storage_control()->StoreRegistration(
std::move(data), std::move(resources),
base::BindLambdaForTesting(
[&](storage::mojom::ServiceWorkerDatabaseStatus status) {
DCHECK_EQ(storage::mojom::ServiceWorkerDatabaseStatus::kOk,
status);
loop.Quit();
}));
loop.Run();
WriteBasicResponse(storage_control(), 1);
}
};
TEST_F(ServiceWorkerStorageDiskTest, DeleteAndStartOver) {
EXPECT_FALSE(storage()->IsDisabled()); EXPECT_FALSE(storage()->IsDisabled());
ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath()));
ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath()));
...@@ -1627,8 +1668,7 @@ TEST_F(ServiceWorkerResourceStorageDiskTest, DeleteAndStartOver) { ...@@ -1627,8 +1668,7 @@ TEST_F(ServiceWorkerResourceStorageDiskTest, DeleteAndStartOver) {
EXPECT_FALSE(base::DirectoryExists(storage()->GetDatabasePath())); EXPECT_FALSE(base::DirectoryExists(storage()->GetDatabasePath()));
} }
TEST_F(ServiceWorkerResourceStorageDiskTest, TEST_F(ServiceWorkerStorageDiskTest, DeleteAndStartOver_UnrelatedFileExists) {
DeleteAndStartOver_UnrelatedFileExists) {
EXPECT_FALSE(storage()->IsDisabled()); EXPECT_FALSE(storage()->IsDisabled());
ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath()));
ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath()));
...@@ -1652,8 +1692,7 @@ TEST_F(ServiceWorkerResourceStorageDiskTest, ...@@ -1652,8 +1692,7 @@ TEST_F(ServiceWorkerResourceStorageDiskTest,
EXPECT_FALSE(base::DirectoryExists(storage()->GetDatabasePath())); EXPECT_FALSE(base::DirectoryExists(storage()->GetDatabasePath()));
} }
TEST_F(ServiceWorkerResourceStorageDiskTest, TEST_F(ServiceWorkerStorageDiskTest, DeleteAndStartOver_OpenedFileExists) {
DeleteAndStartOver_OpenedFileExists) {
EXPECT_FALSE(storage()->IsDisabled()); EXPECT_FALSE(storage()->IsDisabled());
ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDiskCachePath()));
ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath())); ASSERT_TRUE(base::DirectoryExists(storage()->GetDatabasePath()));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment