Chromium Code Reviews| 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 8ec9bca7ebc974d5da1d5031793983b183565cd9..ec3d900a7bd14b6abb9a7de9c4f806c2a0643abe 100644 |
| --- a/content/browser/service_worker/service_worker_version_unittest.cc |
| +++ b/content/browser/service_worker/service_worker_version_unittest.cc |
| @@ -4,6 +4,7 @@ |
| #include "base/basictypes.h" |
| #include "base/run_loop.h" |
| +#include "content/browser/message_port_service.h" |
| #include "content/browser/service_worker/embedded_worker_registry.h" |
| #include "content/browser/service_worker/embedded_worker_test_helper.h" |
| #include "content/browser/service_worker/service_worker_context_core.h" |
| @@ -117,6 +118,14 @@ class MessageReceiverFromWorker : public EmbeddedWorkerInstance::Listener { |
| DISALLOW_COPY_AND_ASSIGN(MessageReceiverFromWorker); |
| }; |
| +void SetUpDummyMessagePort(std::vector<TransferredMessagePort>* ports) { |
| + int port_id = -1; |
| + MessagePortService::GetInstance()->Create(MSG_ROUTING_NONE, NULL, &port_id); |
|
nhiroki
2015/06/10 08:00:24
nit: nullptr
kinuko
2015/06/10 14:33:30
Done.
|
| + TransferredMessagePort dummy_port; |
| + dummy_port.id = port_id; |
| + ports->push_back(dummy_port); |
| +} |
| + |
| } // namespace |
| class ServiceWorkerVersionTest : public testing::Test { |
| @@ -478,6 +487,20 @@ TEST_F(ServiceWorkerVersionTest, IdleTimeout) { |
| EXPECT_EQ(SERVICE_WORKER_OK, status); |
| EXPECT_LT(idle_time, version_->idle_time_); |
| + |
| + // Dispatching a message event resets the idle time. |
| + std::vector<TransferredMessagePort> ports; |
| + SetUpDummyMessagePort(&ports); |
| + status = SERVICE_WORKER_ERROR_FAILED; |
| + version_->idle_time_ -= kOneSecond; |
| + idle_time = version_->idle_time_; |
| + version_->DispatchMessageEvent(base::string16(), ports, |
| + CreateReceiverOnCurrentThread(&status)); |
| + base::RunLoop().RunUntilIdle(); |
| + MessagePortService::GetInstance()->Destroy(ports[0].id); |
| + |
| + EXPECT_EQ(SERVICE_WORKER_OK, status); |
| + EXPECT_LT(idle_time, version_->idle_time_); |
| } |
| TEST_F(ServiceWorkerVersionTest, SetDevToolsAttached) { |