Index: content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
diff --git a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
index 8d5b39d40e1284b26845c23dbaa96b7cee210ae1..b678c55348ac12603d914119b54107d4231a8d93 100644 |
--- a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
+++ b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc |
@@ -8,8 +8,12 @@ |
#include "base/files/file_path.h" |
#include "base/run_loop.h" |
#include "content/browser/browser_thread_impl.h" |
+#include "content/browser/service_worker/embedded_worker_instance.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" |
#include "content/browser/service_worker/service_worker_context_wrapper.h" |
+#include "content/common/service_worker/embedded_worker_messages.h" |
#include "content/common/service_worker/service_worker_messages.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/test/test_browser_thread_bundle.h" |
@@ -17,6 +21,8 @@ |
namespace content { |
+static const int kRenderProcessId = 1; |
+ |
class ServiceWorkerDispatcherHostTest : public testing::Test { |
protected: |
ServiceWorkerDispatcherHostTest() |
@@ -25,9 +31,17 @@ class ServiceWorkerDispatcherHostTest : public testing::Test { |
virtual void SetUp() { |
context_wrapper_ = new ServiceWorkerContextWrapper; |
context_wrapper_->Init(base::FilePath(), NULL); |
+ helper_.reset(new EmbeddedWorkerTestHelper(context())); |
+ scoped_ptr<EmbeddedWorkerInstance> worker = |
+ context()->embedded_worker_registry()->CreateWorker(); |
+ |
+ int render_process_id = kRenderProcessId; |
+ int embedded_worker_id = worker->embedded_worker_id(); |
+ helper_->SimulateAddProcess(embedded_worker_id, render_process_id); |
kinuko
2014/02/04 11:41:31
Ditto. You can remove line 35-40 and add:
con
alecflett
2014/02/04 20:09:04
Done.
|
} |
virtual void TearDown() { |
+ helper_.reset(); |
if (context_wrapper_) { |
context_wrapper_->Shutdown(); |
context_wrapper_ = NULL; |
@@ -38,33 +52,36 @@ class ServiceWorkerDispatcherHostTest : public testing::Test { |
TestBrowserThreadBundle browser_thread_bundle_; |
scoped_refptr<ServiceWorkerContextWrapper> context_wrapper_; |
+ scoped_ptr<EmbeddedWorkerTestHelper> helper_; |
}; |
-static const int kRenderProcessId = 1; |
class TestingServiceWorkerDispatcherHost : public ServiceWorkerDispatcherHost { |
public: |
TestingServiceWorkerDispatcherHost( |
int process_id, |
- ServiceWorkerContextWrapper* context_wrapper) |
+ ServiceWorkerContextWrapper* context_wrapper, |
+ EmbeddedWorkerTestHelper* helper) |
: ServiceWorkerDispatcherHost(process_id), |
- bad_messages_received_count_(0) { |
+ bad_messages_received_count_(0), |
+ helper_(helper) { |
Init(context_wrapper); |
} |
virtual bool Send(IPC::Message* message) OVERRIDE { |
- sent_messages_.push_back(message); |
- return true; |
+ return helper_->Send(message); |
} |
+ IPC::TestSink* ipc_sink() { return helper_->ipc_sink(); } |
+ |
virtual void BadMessageReceived() OVERRIDE { |
++bad_messages_received_count_; |
} |
- ScopedVector<IPC::Message> sent_messages_; |
int bad_messages_received_count_; |
protected: |
+ EmbeddedWorkerTestHelper* helper_; |
virtual ~TestingServiceWorkerDispatcherHost() {} |
}; |
@@ -73,8 +90,8 @@ TEST_F(ServiceWorkerDispatcherHostTest, DisabledCausesError) { |
switches::kEnableServiceWorker)); |
scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host = |
- new TestingServiceWorkerDispatcherHost(kRenderProcessId, |
- context_wrapper_.get()); |
+ new TestingServiceWorkerDispatcherHost( |
+ kRenderProcessId, context_wrapper_.get(), helper_.get()); |
bool handled; |
dispatcher_host->OnMessageReceived( |
@@ -83,10 +100,9 @@ TEST_F(ServiceWorkerDispatcherHostTest, DisabledCausesError) { |
EXPECT_TRUE(handled); |
// TODO(alecflett): Pump the message loop when this becomes async. |
- ASSERT_EQ(1UL, dispatcher_host->sent_messages_.size()); |
- EXPECT_EQ( |
- static_cast<uint32>(ServiceWorkerMsg_ServiceWorkerRegistrationError::ID), |
- dispatcher_host->sent_messages_[0]->type()); |
+ ASSERT_EQ(1UL, dispatcher_host->ipc_sink()->message_count()); |
+ EXPECT_TRUE(dispatcher_host->ipc_sink()->GetUniqueMessageMatching( |
+ ServiceWorkerMsg_ServiceWorkerRegistrationError::ID)); |
} |
TEST_F(ServiceWorkerDispatcherHostTest, Enabled) { |
@@ -96,8 +112,8 @@ TEST_F(ServiceWorkerDispatcherHostTest, Enabled) { |
switches::kEnableServiceWorker); |
scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host = |
- new TestingServiceWorkerDispatcherHost(kRenderProcessId, |
- context_wrapper_.get()); |
+ new TestingServiceWorkerDispatcherHost( |
+ kRenderProcessId, context_wrapper_.get(), helper_.get()); |
bool handled; |
dispatcher_host->OnMessageReceived( |
@@ -107,9 +123,9 @@ TEST_F(ServiceWorkerDispatcherHostTest, Enabled) { |
base::RunLoop().RunUntilIdle(); |
// TODO(alecflett): Pump the message loop when this becomes async. |
- ASSERT_EQ(1UL, dispatcher_host->sent_messages_.size()); |
- EXPECT_EQ(static_cast<uint32>(ServiceWorkerMsg_ServiceWorkerRegistered::ID), |
- dispatcher_host->sent_messages_[0]->type()); |
+ ASSERT_EQ(2UL, dispatcher_host->ipc_sink()->message_count()); |
+ EXPECT_TRUE(dispatcher_host->ipc_sink()->GetUniqueMessageMatching( |
+ EmbeddedWorkerMsg_StartWorker::ID)); |
kinuko
2014/02/04 03:37:53
Could we have one more GetUniqueMessageMatching fo
alecflett
2014/02/04 20:09:04
Done.
|
} |
TEST_F(ServiceWorkerDispatcherHostTest, EarlyContextDeletion) { |
@@ -119,8 +135,8 @@ TEST_F(ServiceWorkerDispatcherHostTest, EarlyContextDeletion) { |
switches::kEnableServiceWorker); |
scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host = |
- new TestingServiceWorkerDispatcherHost(kRenderProcessId, |
- context_wrapper_.get()); |
+ new TestingServiceWorkerDispatcherHost( |
+ kRenderProcessId, context_wrapper_.get(), helper_.get()); |
context_wrapper_->Shutdown(); |
context_wrapper_ = NULL; |
@@ -132,16 +148,15 @@ TEST_F(ServiceWorkerDispatcherHostTest, EarlyContextDeletion) { |
EXPECT_TRUE(handled); |
// TODO(alecflett): Pump the message loop when this becomes async. |
- ASSERT_EQ(1UL, dispatcher_host->sent_messages_.size()); |
- EXPECT_EQ( |
- static_cast<uint32>(ServiceWorkerMsg_ServiceWorkerRegistrationError::ID), |
- dispatcher_host->sent_messages_[0]->type()); |
+ ASSERT_EQ(1UL, dispatcher_host->ipc_sink()->message_count()); |
+ EXPECT_TRUE(dispatcher_host->ipc_sink()->GetUniqueMessageMatching( |
+ ServiceWorkerMsg_ServiceWorkerRegistrationError::ID)); |
} |
TEST_F(ServiceWorkerDispatcherHostTest, ProviderCreatedAndDestroyed) { |
scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host = |
- new TestingServiceWorkerDispatcherHost(kRenderProcessId, |
- context_wrapper_.get()); |
+ new TestingServiceWorkerDispatcherHost( |
+ kRenderProcessId, context_wrapper_.get(), helper_.get()); |
const int kProviderId = 1001; // Test with a value != kRenderProcessId. |