Commit e4760210 authored by nhiroki's avatar nhiroki Committed by Commit bot

ServiceWorker: Run ServiceWorkerContextTest.DeleteAndStartOver on disk

Currently DeleteAndStartOver() is tested in memory storage (MemEnv)
supported by LevelDB for performance, but it seems preferable to test
it on real environment, that is, on disk storage because the recovery
process can be affected by characteristics of lower filesystem.

BUG=468926
TEST=content_unittests --gtest_filter=ServiceWorkerContextTest.DeleteAndStartOver

Review URL: https://codereview.chromium.org/1022363002

Cr-Commit-Position: refs/heads/master@{#322346}
parent 191f6b22
......@@ -123,7 +123,8 @@ class GeofencingManagerTest : public testing::Test {
}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId));
service_ = new TestGeofencingService();
manager_ = new GeofencingManager(helper_->context_wrapper());
manager_->SetServiceForTesting(service_);
......
......@@ -36,7 +36,8 @@ class EmbeddedWorkerInstanceTest : public testing::Test {
: thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId));
}
void TearDown() override { helper_.reset(); }
......
......@@ -18,7 +18,9 @@
namespace content {
EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id)
EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
const base::FilePath& user_data_directory,
int mock_render_process_id)
: wrapper_(new ServiceWorkerContextWrapper(NULL)),
next_thread_id_(0),
mock_render_process_id_(mock_render_process_id),
......@@ -26,11 +28,8 @@ EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id)
scoped_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager(
new MockServiceWorkerDatabaseTaskManager(
base::MessageLoopProxy::current()));
wrapper_->InitInternal(base::FilePath(),
database_task_manager.Pass(),
base::MessageLoopProxy::current(),
NULL,
NULL);
wrapper_->InitInternal(user_data_directory, database_task_manager.Pass(),
base::MessageLoopProxy::current(), NULL, NULL);
wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id);
registry()->AddChildProcessSender(mock_render_process_id, this, nullptr);
}
......
......@@ -44,8 +44,10 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
public IPC::Listener {
public:
// Initialize this helper for |context|, and enable this as an IPC
// sender for |mock_render_process_id|.
explicit EmbeddedWorkerTestHelper(int mock_render_process_id);
// sender for |mock_render_process_id|. If |user_data_directory| is empty,
// the context makes storage stuff in memory.
EmbeddedWorkerTestHelper(const base::FilePath& user_data_directory,
int mock_render_process_id);
~EmbeddedWorkerTestHelper() override;
// Call this to simulate add/associate a process to a pattern.
......
......@@ -35,7 +35,8 @@ class ServiceWorkerContextRequestHandlerTest : public testing::Test {
: browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kMockRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kMockRenderProcessId));
// A new unstored registration/version.
scope_ = GURL("http://host/scope/");
......
......@@ -79,7 +79,7 @@ void ExpectRegisteredWorkers(
class RejectInstallTestHelper : public EmbeddedWorkerTestHelper {
public:
explicit RejectInstallTestHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(mock_render_process_id) {}
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id) {}
void OnInstallEvent(int embedded_worker_id,
int request_id) override {
......@@ -93,7 +93,7 @@ class RejectInstallTestHelper : public EmbeddedWorkerTestHelper {
class RejectActivateTestHelper : public EmbeddedWorkerTestHelper {
public:
explicit RejectActivateTestHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(mock_render_process_id) {}
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id) {}
void OnActivateEvent(int embedded_worker_id, int request_id) override {
SimulateSend(
......@@ -125,7 +125,8 @@ class ServiceWorkerContextTest : public ServiceWorkerContextObserver,
render_process_id_(99) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(render_process_id_));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), render_process_id_));
helper_->context_wrapper()->AddObserver(this);
}
......@@ -519,11 +520,17 @@ TEST_F(ServiceWorkerContextTest, RegisterDuplicateScript) {
EXPECT_EQ(old_registration_id, notifications_[1].registration_id);
}
// TODO(nhiroki): Test this for on-disk storage.
TEST_F(ServiceWorkerContextTest, DeleteAndStartOver) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker.js");
// Reinitialize the helper to test on-disk storage.
base::ScopedTempDir user_data_directory;
ASSERT_TRUE(user_data_directory.CreateUniqueTempDir());
helper_.reset(new EmbeddedWorkerTestHelper(user_data_directory.path(),
render_process_id_));
helper_->context_wrapper()->AddObserver(this);
int64 registration_id = kInvalidServiceWorkerRegistrationId;
bool called = false;
context()->RegisterServiceWorker(
......
......@@ -43,7 +43,8 @@ class ServiceWorkerControlleeRequestHandlerTest : public testing::Test {
: browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kMockRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kMockRenderProcessId));
// A new unstored registration/version.
scope_ = GURL("http://host/scope/");
......
......@@ -69,7 +69,8 @@ class ServiceWorkerDispatcherHostTest : public testing::Test {
: browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId));
dispatcher_host_ = new TestingServiceWorkerDispatcherHost(
kRenderProcessId, context_wrapper(), &resource_context_, helper_.get());
}
......
......@@ -71,7 +71,8 @@ class ServiceWorkerHandleTest : public testing::Test {
: browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId));
dispatcher_host_ = new TestingServiceWorkerDispatcherHost(
kRenderProcessId, helper_->context_wrapper(),
......
......@@ -106,7 +106,8 @@ class ServiceWorkerJobTest : public testing::Test {
render_process_id_(kMockRenderProcessId) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(render_process_id_));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), render_process_id_));
}
void TearDown() override { helper_.reset(); }
......@@ -359,7 +360,7 @@ TEST_F(ServiceWorkerJobTest, RegisterDuplicateScript) {
class FailToStartWorkerTestHelper : public EmbeddedWorkerTestHelper {
public:
explicit FailToStartWorkerTestHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(mock_render_process_id) {}
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id) {}
void OnStartWorker(int embedded_worker_id,
int64 service_worker_version_id,
......@@ -783,7 +784,7 @@ class UpdateJobTestHelper
};
UpdateJobTestHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(mock_render_process_id),
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id),
update_found_(false) {}
~UpdateJobTestHelper() override {
if (registration_.get())
......@@ -1257,7 +1258,7 @@ TEST_F(ServiceWorkerJobTest, RegisterMultipleTimesWhileUninstalling) {
class EventCallbackHelper : public EmbeddedWorkerTestHelper {
public:
explicit EventCallbackHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(mock_render_process_id),
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id),
install_event_result_(blink::WebServiceWorkerEventResultCompleted),
activate_event_result_(blink::WebServiceWorkerEventResultCompleted) {}
......
......@@ -25,7 +25,8 @@ class ServiceWorkerProviderHostTest : public testing::Test {
~ServiceWorkerProviderHostTest() override {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId));
context_ = helper_->context();
script_url_ = GURL("http://www.example.com/service_worker.js");
registration1_ = new ServiceWorkerRegistration(
......
......@@ -38,7 +38,8 @@ class ServiceWorkerRequestHandlerTest : public testing::Test {
: browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP) {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kMockRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kMockRenderProcessId));
// A new unstored registration/version.
registration_ = new ServiceWorkerRegistration(
......
......@@ -113,7 +113,7 @@ class ServiceWorkerURLRequestJobTest : public testing::Test {
void SetUp() override {
browser_context_.reset(new TestBrowserContext);
InitializeResourceContext(browser_context_.get());
SetUpWithHelper(new EmbeddedWorkerTestHelper(kProcessID));
SetUpWithHelper(new EmbeddedWorkerTestHelper(base::FilePath(), kProcessID));
}
void SetUpWithHelper(EmbeddedWorkerTestHelper* helper) {
......@@ -243,7 +243,7 @@ class BlobResponder : public EmbeddedWorkerTestHelper {
BlobResponder(int mock_render_process_id,
const std::string& blob_uuid,
uint64 blob_size)
: EmbeddedWorkerTestHelper(mock_render_process_id),
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id),
blob_uuid_(blob_uuid),
blob_size_(blob_size) {}
~BlobResponder() override {}
......@@ -300,9 +300,8 @@ TEST_F(ServiceWorkerURLRequestJobTest, NonExistentBlobUUIDResponse) {
// Responds to fetch events with a stream.
class StreamResponder : public EmbeddedWorkerTestHelper {
public:
StreamResponder(int mock_render_process_id,
const GURL& stream_url)
: EmbeddedWorkerTestHelper(mock_render_process_id),
StreamResponder(int mock_render_process_id, const GURL& stream_url)
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id),
stream_url_(stream_url) {}
~StreamResponder() override {}
......
......@@ -35,7 +35,7 @@ static const int kRenderProcessId = 1;
class MessageReceiver : public EmbeddedWorkerTestHelper {
public:
MessageReceiver()
: EmbeddedWorkerTestHelper(kRenderProcessId),
: EmbeddedWorkerTestHelper(base::FilePath(), kRenderProcessId),
current_embedded_worker_id_(0) {}
~MessageReceiver() override {}
......
......@@ -174,7 +174,8 @@ class ServiceWorkerWriteToCacheJobTest : public testing::Test {
~ServiceWorkerWriteToCacheJobTest() override {}
void SetUp() override {
helper_.reset(new EmbeddedWorkerTestHelper(kMockRenderProcessId));
helper_.reset(
new EmbeddedWorkerTestHelper(base::FilePath(), kMockRenderProcessId));
// A new unstored registration/version.
scope_ = GURL("https://host/scope/");
......
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