| 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 <map> | 5 #include <map> |
| 6 #include <set> | 6 #include <set> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 &route_id_); | 281 &route_id_); |
| 282 } | 282 } |
| 283 void SendQueueMessages() { | 283 void SendQueueMessages() { |
| 284 EXPECT_TRUE(renderer_host_->OnMessageReceived( | 284 EXPECT_TRUE(renderer_host_->OnMessageReceived( |
| 285 new MessagePortHostMsg_QueueMessages(remote_port_id_))); | 285 new MessagePortHostMsg_QueueMessages(remote_port_id_))); |
| 286 } | 286 } |
| 287 void SendPostMessage(std::string data) { | 287 void SendPostMessage(std::string data) { |
| 288 const std::vector<int> empty_ids; | 288 const std::vector<int> empty_ids; |
| 289 EXPECT_TRUE( | 289 EXPECT_TRUE( |
| 290 renderer_host_->OnMessageReceived(new MessagePortHostMsg_PostMessage( | 290 renderer_host_->OnMessageReceived(new MessagePortHostMsg_PostMessage( |
| 291 local_port_id_, base::ASCIIToUTF16(data), empty_ids))); | 291 local_port_id_, |
| 292 MessagePortMessage(base::ASCIIToUTF16(data)), empty_ids))); |
| 292 } | 293 } |
| 293 void SendConnect() { | 294 void SendConnect() { |
| 294 EXPECT_TRUE( | 295 EXPECT_TRUE( |
| 295 renderer_host_->OnMessageReceived(new ViewHostMsg_ForwardToWorker( | 296 renderer_host_->OnMessageReceived(new ViewHostMsg_ForwardToWorker( |
| 296 WorkerMsg_Connect(route_id_, remote_port_id_, MSG_ROUTING_NONE)))); | 297 WorkerMsg_Connect(route_id_, remote_port_id_, MSG_ROUTING_NONE)))); |
| 297 } | 298 } |
| 298 void SendSendQueuedMessages( | 299 void SendSendQueuedMessages( |
| 299 const std::vector<QueuedMessage>& queued_messages) { | 300 const std::vector<QueuedMessage>& queued_messages) { |
| 300 EXPECT_TRUE(renderer_host_->OnMessageReceived( | 301 EXPECT_TRUE(renderer_host_->OnMessageReceived( |
| 301 new MessagePortHostMsg_SendQueuedMessages(remote_port_id_, | 302 new MessagePortHostMsg_SendQueuedMessages(remote_port_id_, |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 } | 364 } |
| 364 | 365 |
| 365 void CheckMessagePortMsgMessage(MockRendererProcessHost* renderer_host, | 366 void CheckMessagePortMsgMessage(MockRendererProcessHost* renderer_host, |
| 366 int expected_msg_route_id, | 367 int expected_msg_route_id, |
| 367 std::string expected_data) { | 368 std::string expected_data) { |
| 368 scoped_ptr<IPC::Message> msg(renderer_host->PopMessage()); | 369 scoped_ptr<IPC::Message> msg(renderer_host->PopMessage()); |
| 369 EXPECT_EQ(MessagePortMsg_Message::ID, msg->type()); | 370 EXPECT_EQ(MessagePortMsg_Message::ID, msg->type()); |
| 370 EXPECT_EQ(expected_msg_route_id, msg->routing_id()); | 371 EXPECT_EQ(expected_msg_route_id, msg->routing_id()); |
| 371 MessagePortMsg_Message::Param params; | 372 MessagePortMsg_Message::Param params; |
| 372 EXPECT_TRUE(MessagePortMsg_Message::Read(msg.get(), ¶ms)); | 373 EXPECT_TRUE(MessagePortMsg_Message::Read(msg.get(), ¶ms)); |
| 373 base::string16 data = get<0>(params); | 374 base::string16 data = get<0>(params).message_as_string; |
| 374 EXPECT_EQ(base::ASCIIToUTF16(expected_data), data); | 375 EXPECT_EQ(base::ASCIIToUTF16(expected_data), data); |
| 375 } | 376 } |
| 376 | 377 |
| 377 void CheckViewMsgWorkerConnected(MockRendererProcessHost* renderer_host, | 378 void CheckViewMsgWorkerConnected(MockRendererProcessHost* renderer_host, |
| 378 MockSharedWorkerConnector* connector) { | 379 MockSharedWorkerConnector* connector) { |
| 379 scoped_ptr<IPC::Message> msg(renderer_host->PopMessage()); | 380 scoped_ptr<IPC::Message> msg(renderer_host->PopMessage()); |
| 380 EXPECT_EQ(ViewMsg_WorkerConnected::ID, msg->type()); | 381 EXPECT_EQ(ViewMsg_WorkerConnected::ID, msg->type()); |
| 381 EXPECT_EQ(connector->route_id(), msg->routing_id()); | 382 EXPECT_EQ(connector->route_id(), msg->routing_id()); |
| 382 } | 383 } |
| 383 | 384 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, | 461 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, |
| 461 // SharedWorker side shuold receive MessagePortMsg_Message. | 462 // SharedWorker side shuold receive MessagePortMsg_Message. |
| 462 connector->SendPostMessage("test1"); | 463 connector->SendPostMessage("test1"); |
| 463 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); | 464 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); |
| 464 CheckMessagePortMsgMessage( | 465 CheckMessagePortMsgMessage( |
| 465 renderer_host.get(), worker_msg_port_route_id, "test1"); | 466 renderer_host.get(), worker_msg_port_route_id, "test1"); |
| 466 | 467 |
| 467 // When SharedWorker side sends MessagePortHostMsg_PostMessage, | 468 // When SharedWorker side sends MessagePortHostMsg_PostMessage, |
| 468 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. | 469 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. |
| 469 const std::vector<int> empty_ids; | 470 const std::vector<int> empty_ids; |
| 470 EXPECT_TRUE(renderer_host->OnMessageReceived( | 471 EXPECT_TRUE( |
| 471 new MessagePortHostMsg_PostMessage(connector->remote_port_id(), | 472 renderer_host->OnMessageReceived(new MessagePortHostMsg_PostMessage( |
| 472 base::ASCIIToUTF16("test2"), | 473 connector->remote_port_id(), |
| 473 empty_ids))); | 474 MessagePortMessage(base::ASCIIToUTF16("test2")), empty_ids))); |
| 474 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); | 475 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); |
| 475 CheckMessagePortMsgMessage( | 476 CheckMessagePortMsgMessage( |
| 476 renderer_host.get(), connector->local_port_route_id(), "test2"); | 477 renderer_host.get(), connector->local_port_route_id(), "test2"); |
| 477 | 478 |
| 478 // UpdateWorkerDependency should not be called. | 479 // UpdateWorkerDependency should not be called. |
| 479 EXPECT_EQ(0, s_update_worker_dependency_call_count_); | 480 EXPECT_EQ(0, s_update_worker_dependency_call_count_); |
| 480 } | 481 } |
| 481 | 482 |
| 482 TEST_F(SharedWorkerServiceImplTest, TwoRendererTest) { | 483 TEST_F(SharedWorkerServiceImplTest, TwoRendererTest) { |
| 483 // The first renderer host. | 484 // The first renderer host. |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, | 558 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, |
| 558 // SharedWorker side shuold receive MessagePortMsg_Message. | 559 // SharedWorker side shuold receive MessagePortMsg_Message. |
| 559 connector0->SendPostMessage("test1"); | 560 connector0->SendPostMessage("test1"); |
| 560 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); | 561 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); |
| 561 CheckMessagePortMsgMessage( | 562 CheckMessagePortMsgMessage( |
| 562 renderer_host0.get(), worker_msg_port_route_id1, "test1"); | 563 renderer_host0.get(), worker_msg_port_route_id1, "test1"); |
| 563 | 564 |
| 564 // When SharedWorker side sends MessagePortHostMsg_PostMessage, | 565 // When SharedWorker side sends MessagePortHostMsg_PostMessage, |
| 565 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. | 566 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. |
| 566 const std::vector<int> empty_ids; | 567 const std::vector<int> empty_ids; |
| 567 EXPECT_TRUE(renderer_host0->OnMessageReceived( | 568 EXPECT_TRUE( |
| 568 new MessagePortHostMsg_PostMessage(connector0->remote_port_id(), | 569 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage( |
| 569 base::ASCIIToUTF16("test2"), | 570 connector0->remote_port_id(), |
| 570 empty_ids))); | 571 MessagePortMessage(base::ASCIIToUTF16("test2")), empty_ids))); |
| 571 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); | 572 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); |
| 572 CheckMessagePortMsgMessage( | 573 CheckMessagePortMsgMessage( |
| 573 renderer_host0.get(), connector0->local_port_route_id(), "test2"); | 574 renderer_host0.get(), connector0->local_port_route_id(), "test2"); |
| 574 | 575 |
| 575 // The second renderer host. | 576 // The second renderer host. |
| 576 scoped_ptr<MockRendererProcessHost> renderer_host1( | 577 scoped_ptr<MockRendererProcessHost> renderer_host1( |
| 577 new MockRendererProcessHost(kProcessIDs[1], | 578 new MockRendererProcessHost(kProcessIDs[1], |
| 578 browser_context_->GetResourceContext(), | 579 browser_context_->GetResourceContext(), |
| 579 *partition_.get())); | 580 *partition_.get())); |
| 580 scoped_ptr<MockSharedWorkerConnector> connector1( | 581 scoped_ptr<MockSharedWorkerConnector> connector1( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 | 637 |
| 637 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, | 638 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, |
| 638 // SharedWorker side shuold receive MessagePortMsg_Message. | 639 // SharedWorker side shuold receive MessagePortMsg_Message. |
| 639 connector1->SendPostMessage("test3"); | 640 connector1->SendPostMessage("test3"); |
| 640 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); | 641 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); |
| 641 CheckMessagePortMsgMessage( | 642 CheckMessagePortMsgMessage( |
| 642 renderer_host0.get(), worker_msg_port_route_id2, "test3"); | 643 renderer_host0.get(), worker_msg_port_route_id2, "test3"); |
| 643 | 644 |
| 644 // When SharedWorker side sends MessagePortHostMsg_PostMessage, | 645 // When SharedWorker side sends MessagePortHostMsg_PostMessage, |
| 645 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. | 646 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. |
| 646 EXPECT_TRUE(renderer_host0->OnMessageReceived( | 647 EXPECT_TRUE( |
| 647 new MessagePortHostMsg_PostMessage(connector1->remote_port_id(), | 648 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage( |
| 648 base::ASCIIToUTF16("test4"), | 649 connector1->remote_port_id(), |
| 649 empty_ids))); | 650 MessagePortMessage(base::ASCIIToUTF16("test4")), empty_ids))); |
| 650 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount()); | 651 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount()); |
| 651 CheckMessagePortMsgMessage( | 652 CheckMessagePortMsgMessage( |
| 652 renderer_host1.get(), connector1->local_port_route_id(), "test4"); | 653 renderer_host1.get(), connector1->local_port_route_id(), "test4"); |
| 653 | 654 |
| 654 EXPECT_EQ(1, s_update_worker_dependency_call_count_); | 655 EXPECT_EQ(1, s_update_worker_dependency_call_count_); |
| 655 renderer_host1.reset(); | 656 renderer_host1.reset(); |
| 656 // UpdateWorkerDependency should be called. | 657 // UpdateWorkerDependency should be called. |
| 657 EXPECT_EQ(2, s_update_worker_dependency_call_count_); | 658 EXPECT_EQ(2, s_update_worker_dependency_call_count_); |
| 658 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size()); | 659 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size()); |
| 659 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size()); | 660 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size()); |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 kDocumentIDs[2], | 909 kDocumentIDs[2], |
| 909 kRenderFrameRouteIDs[2]); | 910 kRenderFrameRouteIDs[2]); |
| 910 EXPECT_NE(MSG_ROUTING_NONE, connector2->route_id()); | 911 EXPECT_NE(MSG_ROUTING_NONE, connector2->route_id()); |
| 911 EXPECT_EQ(0U, renderer_host2->QueuedMessageCount()); | 912 EXPECT_EQ(0U, renderer_host2->QueuedMessageCount()); |
| 912 RunAllPendingInMessageLoop(); | 913 RunAllPendingInMessageLoop(); |
| 913 EXPECT_EQ(1U, renderer_host2->QueuedMessageCount()); | 914 EXPECT_EQ(1U, renderer_host2->QueuedMessageCount()); |
| 914 CheckViewMsgWorkerCreated(renderer_host2.get(), connector2.get()); | 915 CheckViewMsgWorkerCreated(renderer_host2.get(), connector2.get()); |
| 915 } | 916 } |
| 916 | 917 |
| 917 } // namespace content | 918 } // namespace content |
| OLD | NEW |