Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: content/browser/service_worker/service_worker_handle_unittest.cc

Issue 855383006: ServiceWorker: Enqueue state change events until the worker thread gets ready (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address falken@'s comments Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "content/browser/service_worker/embedded_worker_registry.h" 7 #include "content/browser/service_worker/embedded_worker_registry.h"
8 #include "content/browser/service_worker/embedded_worker_test_helper.h" 8 #include "content/browser/service_worker/embedded_worker_test_helper.h"
9 #include "content/browser/service_worker/service_worker_context_core.h" 9 #include "content/browser/service_worker/service_worker_context_core.h"
10 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 10 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
11 #include "content/browser/service_worker/service_worker_handle.h" 11 #include "content/browser/service_worker/service_worker_handle.h"
12 #include "content/browser/service_worker/service_worker_registration.h" 12 #include "content/browser/service_worker/service_worker_registration.h"
13 #include "content/browser/service_worker/service_worker_test_utils.h" 13 #include "content/browser/service_worker/service_worker_test_utils.h"
14 #include "content/browser/service_worker/service_worker_version.h" 14 #include "content/browser/service_worker/service_worker_version.h"
15 #include "content/common/service_worker/embedded_worker_messages.h" 15 #include "content/common/service_worker/embedded_worker_messages.h"
16 #include "content/common/service_worker/service_worker_messages.h" 16 #include "content/common/service_worker/service_worker_messages.h"
17 #include "content/public/test/mock_resource_context.h" 17 #include "content/public/test/mock_resource_context.h"
18 #include "content/public/test/test_browser_thread_bundle.h" 18 #include "content/public/test/test_browser_thread_bundle.h"
19 #include "ipc/ipc_message.h" 19 #include "ipc/ipc_message.h"
20 #include "ipc/ipc_test_sink.h" 20 #include "ipc/ipc_test_sink.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "third_party/WebKit/public/platform/WebServiceWorkerState.h" 22 #include "third_party/WebKit/public/platform/WebServiceWorkerState.h"
23 23
24 namespace content { 24 namespace content {
25 25
26 namespace { 26 namespace {
27 27
28 const int kRenderProcessId = 88; // A dummy ID for testing. 28 const int kRenderProcessId = 88; // A dummy ID for testing.
29 const int kRenderFrameId = 44; // A dummy ID for testing.
29 30
30 void VerifyStateChangedMessage(int expected_handle_id, 31 void VerifyStateChangedMessage(int expected_handle_id,
31 blink::WebServiceWorkerState expected_state, 32 blink::WebServiceWorkerState expected_state,
32 const IPC::Message* message) { 33 const IPC::Message* message) {
33 ASSERT_TRUE(message != NULL); 34 ASSERT_TRUE(message != NULL);
34 ServiceWorkerMsg_ServiceWorkerStateChanged::Param param; 35 ServiceWorkerMsg_ServiceWorkerStateChanged::Param param;
35 ASSERT_TRUE(ServiceWorkerMsg_ServiceWorkerStateChanged::Read( 36 ASSERT_TRUE(ServiceWorkerMsg_ServiceWorkerStateChanged::Read(
36 message, &param)); 37 message, &param));
37 EXPECT_EQ(expected_handle_id, get<1>(param)); 38 EXPECT_EQ(expected_handle_id, get<1>(param));
38 EXPECT_EQ(expected_state, get<2>(param)); 39 EXPECT_EQ(expected_state, get<2>(param));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 pattern, 82 pattern,
82 1L, 83 1L,
83 helper_->context()->AsWeakPtr()); 84 helper_->context()->AsWeakPtr());
84 version_ = new ServiceWorkerVersion( 85 version_ = new ServiceWorkerVersion(
85 registration_.get(), 86 registration_.get(),
86 GURL("http://www.example.com/service_worker.js"), 87 GURL("http://www.example.com/service_worker.js"),
87 1L, 88 1L,
88 helper_->context()->AsWeakPtr()); 89 helper_->context()->AsWeakPtr());
89 90
90 provider_host_.reset(new ServiceWorkerProviderHost( 91 provider_host_.reset(new ServiceWorkerProviderHost(
91 kRenderProcessId, MSG_ROUTING_NONE, 1, 92 kRenderProcessId, kRenderFrameId, 1,
92 helper_->context()->AsWeakPtr(), dispatcher_host_.get())); 93 helper_->context()->AsWeakPtr(), dispatcher_host_.get()));
93 94
94 helper_->SimulateAddProcessToPattern(pattern, kRenderProcessId); 95 helper_->SimulateAddProcessToPattern(pattern, kRenderProcessId);
95 } 96 }
96 97
97 void TearDown() override { 98 void TearDown() override {
98 dispatcher_host_ = NULL; 99 dispatcher_host_ = NULL;
99 registration_ = NULL; 100 registration_ = NULL;
100 version_ = NULL; 101 version_ = NULL;
101 provider_host_.reset(); 102 provider_host_.reset();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 // 3. SendMessageToWorker (to send InstallEvent), and 152 // 3. SendMessageToWorker (to send InstallEvent), and
152 EXPECT_EQ(EmbeddedWorkerContextMsg_MessageToWorker::ID, 153 EXPECT_EQ(EmbeddedWorkerContextMsg_MessageToWorker::ID,
153 ipc_sink()->GetMessageAt(2)->type()); 154 ipc_sink()->GetMessageAt(2)->type());
154 // 4. StateChanged (state == Installed). 155 // 4. StateChanged (state == Installed).
155 VerifyStateChangedMessage(handle->handle_id(), 156 VerifyStateChangedMessage(handle->handle_id(),
156 blink::WebServiceWorkerStateInstalled, 157 blink::WebServiceWorkerStateInstalled,
157 ipc_sink()->GetMessageAt(3)); 158 ipc_sink()->GetMessageAt(3));
158 } 159 }
159 160
160 } // namespace content 161 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698