Index: content/browser/service_worker/service_worker_version_unittest.cc |
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc |
index 53a36271e64207d1f5c38c87bac50849c95951ea..b5b1d67dc6e99e19ee106b583ec87b9d0593edd0 100644 |
--- a/content/browser/service_worker/service_worker_version_unittest.cc |
+++ b/content/browser/service_worker/service_worker_version_unittest.cc |
@@ -38,8 +38,6 @@ |
IPC_MESSAGE_CONTROL0(TestMsg_Message) |
IPC_MESSAGE_ROUTED1(TestMsg_MessageFromWorker, int) |
-IPC_MESSAGE_CONTROL1(TestMsg_TestEvent, int) |
-IPC_MESSAGE_CONTROL2(TestMsg_TestEvent_Multiple, int, int) |
IPC_MESSAGE_ROUTED2(TestMsg_TestEventResult, int, std::string) |
// --------------------------------------------------------------------------- |
@@ -50,27 +48,9 @@ namespace { |
class MessageReceiver : public EmbeddedWorkerTestHelper { |
public: |
- MessageReceiver() |
- : EmbeddedWorkerTestHelper(base::FilePath()), |
- current_embedded_worker_id_(0) {} |
+ MessageReceiver() : EmbeddedWorkerTestHelper(base::FilePath()) {} |
~MessageReceiver() override {} |
- bool OnMessageToWorker(int thread_id, |
- int embedded_worker_id, |
- const IPC::Message& message) override { |
- if (EmbeddedWorkerTestHelper::OnMessageToWorker( |
- thread_id, embedded_worker_id, message)) { |
- return true; |
- } |
- current_embedded_worker_id_ = embedded_worker_id; |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(MessageReceiver, message) |
- IPC_MESSAGE_HANDLER(TestMsg_Message, OnMessage) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- return handled; |
- } |
- |
void SimulateSendValueToBrowser(int embedded_worker_id, int value) { |
SimulateSend(new TestMsg_MessageFromWorker(embedded_worker_id, value)); |
} |
@@ -87,7 +67,6 @@ class MessageReceiver : public EmbeddedWorkerTestHelper { |
// Do nothing. |
} |
- int current_embedded_worker_id_; |
DISALLOW_COPY_AND_ASSIGN(MessageReceiver); |
}; |
@@ -1263,15 +1242,15 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
// Invalid subscope, should kill worker (but in tests will only increase bad |
// message count). |
- version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL()), |
- valid_origin_list); |
+ version_->RegisterForeignFetchScopes(std::vector<GURL>(1, GURL()), |
+ valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); |
EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Subscope outside the scope of the worker. |
- version_->OnRegisterForeignFetchScopes( |
+ version_->RegisterForeignFetchScopes( |
std::vector<GURL>(1, GURL("http://www.example.com/wrong")), |
valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
@@ -1280,7 +1259,7 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Subscope on wrong origin. |
- version_->OnRegisterForeignFetchScopes( |
+ version_->RegisterForeignFetchScopes( |
std::vector<GURL>(1, GURL("http://example.com/test/")), |
valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
@@ -1289,7 +1268,7 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Invalid origin. |
- version_->OnRegisterForeignFetchScopes( |
+ version_->RegisterForeignFetchScopes( |
valid_scopes, std::vector<url::Origin>(1, url::Origin())); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
@@ -1297,8 +1276,8 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Valid subscope, no origins. |
- version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1), |
- all_origins); |
+ version_->RegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1), |
+ all_origins); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size()); |
@@ -1306,7 +1285,7 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Valid subscope, explicit origins. |
- version_->OnRegisterForeignFetchScopes(valid_scopes, valid_origin_list); |
+ version_->RegisterForeignFetchScopes(valid_scopes, valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size()); |
@@ -1348,7 +1327,7 @@ TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) { |
base::Time::Now())); |
} |
-TEST_F(ServiceWorkerVersionTest, DispatchEvent) { |
+TEST_F(ServiceWorkerVersionTest, RegisterRequestCallback) { |
ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value |
// Activate and start worker. |
@@ -1369,13 +1348,6 @@ TEST_F(ServiceWorkerVersionTest, DispatchEvent) { |
version_->RegisterRequestCallback<TestMsg_TestEventResult>( |
request_id, base::Bind(&ReceiveTestEventResult, &received_request_id, |
&received_data, runner->QuitClosure())); |
- version_->DispatchEvent({request_id}, TestMsg_TestEvent(request_id)); |
- |
- // Verify event got dispatched to worker. |
- base::RunLoop().RunUntilIdle(); |
- ASSERT_EQ(1u, helper_->inner_ipc_sink()->message_count()); |
- const IPC::Message* msg = helper_->inner_ipc_sink()->GetMessageAt(0); |
- EXPECT_EQ(TestMsg_TestEvent::ID, msg->type()); |
// Simulate sending reply to event. |
std::string reply("foobar"); |
@@ -1476,152 +1448,4 @@ TEST_F(ServiceWorkerFailToStartTest, RestartStalledWorker) { |
EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); |
} |
-TEST_F(ServiceWorkerVersionTest, DispatchConcurrentEvent) { |
- ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value |
- |
- // Activate and start worker. |
- version_->SetStatus(ServiceWorkerVersion::ACTIVATED); |
- version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC, |
- CreateReceiverOnCurrentThread(&status)); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(SERVICE_WORKER_OK, status); |
- EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); |
- |
- // Start first request and dispatch test event. |
- scoped_refptr<MessageLoopRunner> runner1(new MessageLoopRunner); |
- ServiceWorkerStatusCode status1 = SERVICE_WORKER_OK; // dummy value |
- int request_id1 = version_->StartRequest( |
- ServiceWorkerMetrics::EventType::SYNC, |
- CreateReceiverOnCurrentThread(&status1, runner1->QuitClosure())); |
- int received_request_id1 = 0; |
- std::string received_data1; |
- version_->RegisterRequestCallback<TestMsg_TestEventResult>( |
- request_id1, base::Bind(&ReceiveTestEventResult, &received_request_id1, |
- &received_data1, runner1->QuitClosure())); |
- version_->DispatchEvent({request_id1}, TestMsg_TestEvent(request_id1)); |
- |
- // Start second request and dispatch test event. |
- scoped_refptr<MessageLoopRunner> runner2(new MessageLoopRunner); |
- ServiceWorkerStatusCode status2 = SERVICE_WORKER_OK; // dummy value |
- int request_id2 = version_->StartRequest( |
- ServiceWorkerMetrics::EventType::SYNC, |
- CreateReceiverOnCurrentThread(&status2, runner2->QuitClosure())); |
- int received_request_id2 = 0; |
- std::string received_data2; |
- version_->RegisterRequestCallback<TestMsg_TestEventResult>( |
- request_id2, base::Bind(&ReceiveTestEventResult, &received_request_id2, |
- &received_data2, runner2->QuitClosure())); |
- version_->DispatchEvent({request_id2}, TestMsg_TestEvent(request_id2)); |
- |
- // Make sure events got dispatched in same order. |
- base::RunLoop().RunUntilIdle(); |
- ASSERT_EQ(2u, helper_->inner_ipc_sink()->message_count()); |
- const IPC::Message* msg = helper_->inner_ipc_sink()->GetMessageAt(0); |
- ASSERT_EQ(TestMsg_TestEvent::ID, msg->type()); |
- TestMsg_TestEvent::Param params; |
- TestMsg_TestEvent::Read(msg, ¶ms); |
- EXPECT_EQ(request_id1, std::get<0>(params)); |
- msg = helper_->inner_ipc_sink()->GetMessageAt(1); |
- ASSERT_EQ(TestMsg_TestEvent::ID, msg->type()); |
- TestMsg_TestEvent::Read(msg, ¶ms); |
- EXPECT_EQ(request_id2, std::get<0>(params)); |
- |
- // Reply to second event. |
- std::string reply2("foobar"); |
- helper_->SimulateSendEventResult( |
- version_->embedded_worker()->embedded_worker_id(), request_id2, reply2); |
- runner2->Run(); |
- |
- // Verify correct message callback got called with correct reply. |
- EXPECT_EQ(0, received_request_id1); |
- EXPECT_EQ(request_id2, received_request_id2); |
- EXPECT_EQ(reply2, received_data2); |
- EXPECT_EQ(SERVICE_WORKER_OK, status2); |
- EXPECT_TRUE(version_->FinishRequest(request_id2, true /* was_handled */, |
- base::Time::Now())); |
- |
- // Reply to first event. |
- std::string reply1("hello world"); |
- helper_->SimulateSendEventResult( |
- version_->embedded_worker()->embedded_worker_id(), request_id1, reply1); |
- runner1->Run(); |
- |
- // Verify correct response was received. |
- EXPECT_EQ(request_id1, received_request_id1); |
- EXPECT_EQ(request_id2, received_request_id2); |
- EXPECT_EQ(reply1, received_data1); |
- EXPECT_EQ(SERVICE_WORKER_OK, status1); |
- EXPECT_TRUE(version_->FinishRequest(request_id1, true /* was_handled */, |
- base::Time::Now())); |
-} |
- |
-TEST_F(ServiceWorkerVersionTest, DispatchEvent_MultipleResponse) { |
- ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
- |
- // Activate and start worker. |
- version_->SetStatus(ServiceWorkerVersion::ACTIVATED); |
- version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
- CreateReceiverOnCurrentThread(&status)); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(SERVICE_WORKER_OK, status); |
- EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); |
- |
- // Start request and dispatch test event. |
- scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner); |
- int request_id1 = version_->StartRequest( |
- ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, |
- CreateReceiverOnCurrentThread(&status, runner->QuitClosure())); |
- int request_id2 = version_->StartRequest( |
- ServiceWorkerMetrics::EventType::FETCH_WAITUNTIL, |
- CreateReceiverOnCurrentThread(&status, runner->QuitClosure())); |
- int received_request_id1 = 0; |
- int received_request_id2 = 0; |
- std::string received_data1; |
- std::string received_data2; |
- version_->RegisterRequestCallback<TestMsg_TestEventResult>( |
- request_id1, base::Bind(&ReceiveTestEventResult, &received_request_id1, |
- &received_data1, runner->QuitClosure())); |
- version_->RegisterRequestCallback<TestMsg_TestEventResult>( |
- request_id2, base::Bind(&ReceiveTestEventResult, &received_request_id2, |
- &received_data2, runner->QuitClosure())); |
- version_->DispatchEvent({request_id1, request_id2}, |
- TestMsg_TestEvent_Multiple(request_id1, request_id2)); |
- |
- // Verify event got dispatched to worker. |
- base::RunLoop().RunUntilIdle(); |
- ASSERT_EQ(1u, helper_->inner_ipc_sink()->message_count()); |
- const IPC::Message* msg = helper_->inner_ipc_sink()->GetMessageAt(0); |
- EXPECT_EQ(TestMsg_TestEvent_Multiple::ID, msg->type()); |
- |
- // Simulate sending reply to event. |
- std::string reply1("foobar1"); |
- std::string reply2("foobar2"); |
- helper_->SimulateSendEventResult( |
- version_->embedded_worker()->embedded_worker_id(), request_id1, reply1); |
- runner->Run(); |
- |
- // Verify message callback got called with correct reply. |
- EXPECT_EQ(request_id1, received_request_id1); |
- EXPECT_EQ(reply1, received_data1); |
- EXPECT_NE(request_id2, received_request_id2); |
- EXPECT_NE(reply2, received_data2); |
- |
- // Simulate sending reply to event. |
- helper_->SimulateSendEventResult( |
- version_->embedded_worker()->embedded_worker_id(), request_id2, reply2); |
- runner->Run(); |
- |
- // Verify message callback got called with correct reply. |
- EXPECT_EQ(request_id2, received_request_id2); |
- EXPECT_EQ(reply2, received_data2); |
- |
- // Should not have timed out, so error callback should not have been |
- // called and FinishRequest should return true. |
- EXPECT_EQ(SERVICE_WORKER_OK, status); |
- EXPECT_TRUE(version_->FinishRequest(request_id1, true /* was_handled */, |
- base::Time::Now())); |
- EXPECT_TRUE(version_->FinishRequest(request_id2, true /* was_handled */, |
- base::Time::Now())); |
-} |
- |
} // namespace content |