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

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

Issue 2387263002: Rename MojoShellContext -> ServiceManagerContext. (Closed)
Patch Set: . Created 4 years, 2 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 "content/browser/service_worker/service_worker_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <tuple> 8 #include <tuple>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/test/histogram_tester.h" 13 #include "base/test/histogram_tester.h"
14 #include "base/time/time.h" 14 #include "base/time/time.h"
15 #include "content/browser/service_worker/embedded_worker_registry.h" 15 #include "content/browser/service_worker/embedded_worker_registry.h"
16 #include "content/browser/service_worker/embedded_worker_status.h" 16 #include "content/browser/service_worker/embedded_worker_status.h"
17 #include "content/browser/service_worker/embedded_worker_test_helper.h" 17 #include "content/browser/service_worker/embedded_worker_test_helper.h"
18 #include "content/browser/service_worker/service_worker_context_core.h" 18 #include "content/browser/service_worker/service_worker_context_core.h"
19 #include "content/browser/service_worker/service_worker_registration.h" 19 #include "content/browser/service_worker/service_worker_registration.h"
20 #include "content/browser/service_worker/service_worker_test_utils.h" 20 #include "content/browser/service_worker/service_worker_test_utils.h"
21 #include "content/common/service_worker/service_worker_utils.h" 21 #include "content/common/service_worker/service_worker_utils.h"
22 #include "content/public/test/mock_render_process_host.h" 22 #include "content/public/test/mock_render_process_host.h"
23 #include "content/public/test/test_browser_thread_bundle.h" 23 #include "content/public/test/test_browser_thread_bundle.h"
24 #include "content/public/test/test_mojo_service.mojom.h" 24 #include "content/public/test/test_service.mojom.h"
25 #include "content/public/test/test_utils.h" 25 #include "content/public/test/test_utils.h"
26 #include "mojo/public/cpp/bindings/strong_binding.h" 26 #include "mojo/public/cpp/bindings/strong_binding.h"
27 #include "services/shell/public/cpp/interface_registry.h" 27 #include "services/shell/public/cpp/interface_registry.h"
28 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
29 29
30 // IPC messages for testing --------------------------------------------------- 30 // IPC messages for testing ---------------------------------------------------
31 31
32 #define IPC_MESSAGE_IMPL 32 #define IPC_MESSAGE_IMPL
33 #include "ipc/ipc_message_macros.h" 33 #include "ipc/ipc_message_macros.h"
34 34
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 EmbeddedWorkerInstance* instance_; 153 EmbeddedWorkerInstance* instance_;
154 std::vector<int> received_values_; 154 std::vector<int> received_values_;
155 DISALLOW_COPY_AND_ASSIGN(MessageReceiverFromWorker); 155 DISALLOW_COPY_AND_ASSIGN(MessageReceiverFromWorker);
156 }; 156 };
157 157
158 base::Time GetYesterday() { 158 base::Time GetYesterday() {
159 return base::Time::Now() - base::TimeDelta::FromDays(1) - 159 return base::Time::Now() - base::TimeDelta::FromDays(1) -
160 base::TimeDelta::FromSeconds(1); 160 base::TimeDelta::FromSeconds(1);
161 } 161 }
162 162
163 class TestMojoServiceImpl : public mojom::TestMojoService { 163 class TestServiceImpl : public mojom::TestService {
164 public: 164 public:
165 static void Create(mojo::InterfaceRequest<mojom::TestMojoService> request) { 165 static void Create(mojo::InterfaceRequest<mojom::TestService> request) {
166 mojo::MakeStrongBinding(base::WrapUnique(new TestMojoServiceImpl), 166 mojo::MakeStrongBinding(base::WrapUnique(new TestServiceImpl),
167 std::move(request)); 167 std::move(request));
168 } 168 }
169 169
170 void DoSomething(const DoSomethingCallback& callback) override { 170 void DoSomething(const DoSomethingCallback& callback) override {
171 callback.Run(); 171 callback.Run();
172 } 172 }
173 173
174 void DoTerminateProcess(const DoTerminateProcessCallback& callback) override { 174 void DoTerminateProcess(const DoTerminateProcessCallback& callback) override {
175 NOTREACHED(); 175 NOTREACHED();
176 } 176 }
177 177
178 void CreateFolder(const CreateFolderCallback& callback) override { 178 void CreateFolder(const CreateFolderCallback& callback) override {
179 NOTREACHED(); 179 NOTREACHED();
180 } 180 }
181 181
182 void GetRequestorName(const GetRequestorNameCallback& callback) override { 182 void GetRequestorName(const GetRequestorNameCallback& callback) override {
183 callback.Run(mojo::String("")); 183 callback.Run(mojo::String(""));
184 } 184 }
185 185
186 void CreateSharedBuffer(const std::string& message, 186 void CreateSharedBuffer(const std::string& message,
187 const CreateSharedBufferCallback& callback) override { 187 const CreateSharedBufferCallback& callback) override {
188 NOTREACHED(); 188 NOTREACHED();
189 } 189 }
190 190
191 private: 191 private:
192 explicit TestMojoServiceImpl() {} 192 explicit TestServiceImpl() {}
193 }; 193 };
194 194
195 } // namespace 195 } // namespace
196 196
197 class ServiceWorkerVersionTest : public testing::Test { 197 class ServiceWorkerVersionTest : public testing::Test {
198 protected: 198 protected:
199 struct RunningStateListener : public ServiceWorkerVersion::Listener { 199 struct RunningStateListener : public ServiceWorkerVersion::Listener {
200 RunningStateListener() : last_status(EmbeddedWorkerStatus::STOPPED) {} 200 RunningStateListener() : last_status(EmbeddedWorkerStatus::STOPPED) {}
201 ~RunningStateListener() override {} 201 ~RunningStateListener() override {}
202 void OnRunningStateChanged(ServiceWorkerVersion* version) override { 202 void OnRunningStateChanged(ServiceWorkerVersion* version) override {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 private: 368 private:
369 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStallInStoppingTest); 369 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStallInStoppingTest);
370 }; 370 };
371 371
372 class MessageReceiverMojoTestService : public MessageReceiver { 372 class MessageReceiverMojoTestService : public MessageReceiver {
373 public: 373 public:
374 MessageReceiverMojoTestService() : MessageReceiver() {} 374 MessageReceiverMojoTestService() : MessageReceiver() {}
375 ~MessageReceiverMojoTestService() override {} 375 ~MessageReceiverMojoTestService() override {}
376 376
377 void OnSetupMojo(int thread_id, shell::InterfaceRegistry* registry) override { 377 void OnSetupMojo(int thread_id, shell::InterfaceRegistry* registry) override {
378 registry->AddInterface(base::Bind(&TestMojoServiceImpl::Create)); 378 registry->AddInterface(base::Bind(&TestServiceImpl::Create));
379 } 379 }
380 380
381 private: 381 private:
382 DISALLOW_COPY_AND_ASSIGN(MessageReceiverMojoTestService); 382 DISALLOW_COPY_AND_ASSIGN(MessageReceiverMojoTestService);
383 }; 383 };
384 384
385 class ServiceWorkerVersionWithMojoTest : public ServiceWorkerVersionTest { 385 class ServiceWorkerVersionWithMojoTest : public ServiceWorkerVersionTest {
386 protected: 386 protected:
387 ServiceWorkerVersionWithMojoTest() : ServiceWorkerVersionTest() {} 387 ServiceWorkerVersionWithMojoTest() : ServiceWorkerVersionTest() {}
388 388
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC, 1197 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC,
1198 CreateReceiverOnCurrentThread(&status)); 1198 CreateReceiverOnCurrentThread(&status));
1199 base::RunLoop().RunUntilIdle(); 1199 base::RunLoop().RunUntilIdle();
1200 EXPECT_EQ(SERVICE_WORKER_OK, status); 1200 EXPECT_EQ(SERVICE_WORKER_OK, status);
1201 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); 1201 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
1202 1202
1203 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner); 1203 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner);
1204 int request_id = version_->StartRequest( 1204 int request_id = version_->StartRequest(
1205 ServiceWorkerMetrics::EventType::SYNC, 1205 ServiceWorkerMetrics::EventType::SYNC,
1206 CreateReceiverOnCurrentThread(&status, runner->QuitClosure())); 1206 CreateReceiverOnCurrentThread(&status, runner->QuitClosure()));
1207 base::WeakPtr<mojom::TestMojoService> service = 1207 base::WeakPtr<mojom::TestService> service =
1208 version_->GetMojoServiceForRequest<mojom::TestMojoService>(request_id); 1208 version_->GetMojoServiceForRequest<mojom::TestService>(request_id);
1209 service->DoSomething(runner->QuitClosure()); 1209 service->DoSomething(runner->QuitClosure());
1210 runner->Run(); 1210 runner->Run();
1211 1211
1212 // Mojo service does exist in worker, so error callback should not have been 1212 // Mojo service does exist in worker, so error callback should not have been
1213 // called and FinishRequest should return true. 1213 // called and FinishRequest should return true.
1214 EXPECT_EQ(SERVICE_WORKER_OK, status); 1214 EXPECT_EQ(SERVICE_WORKER_OK, status);
1215 EXPECT_TRUE(version_->FinishRequest(request_id, true /* was_handled */, 1215 EXPECT_TRUE(version_->FinishRequest(request_id, true /* was_handled */,
1216 base::Time::Now())); 1216 base::Time::Now()));
1217 } 1217 }
1218 1218
1219 TEST_F(ServiceWorkerVersionTest, NonExistentMojoService) { 1219 TEST_F(ServiceWorkerVersionTest, NonExistentMojoService) {
1220 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value 1220 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1221 1221
1222 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 1222 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1223 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC, 1223 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC,
1224 CreateReceiverOnCurrentThread(&status)); 1224 CreateReceiverOnCurrentThread(&status));
1225 base::RunLoop().RunUntilIdle(); 1225 base::RunLoop().RunUntilIdle();
1226 EXPECT_EQ(SERVICE_WORKER_OK, status); 1226 EXPECT_EQ(SERVICE_WORKER_OK, status);
1227 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); 1227 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
1228 1228
1229 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner); 1229 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner);
1230 int request_id = version_->StartRequest( 1230 int request_id = version_->StartRequest(
1231 ServiceWorkerMetrics::EventType::SYNC, 1231 ServiceWorkerMetrics::EventType::SYNC,
1232 CreateReceiverOnCurrentThread(&status, runner->QuitClosure())); 1232 CreateReceiverOnCurrentThread(&status, runner->QuitClosure()));
1233 base::WeakPtr<mojom::TestMojoService> service = 1233 base::WeakPtr<mojom::TestService> service =
1234 version_->GetMojoServiceForRequest<mojom::TestMojoService>(request_id); 1234 version_->GetMojoServiceForRequest<mojom::TestService>(request_id);
1235 service->DoSomething(runner->QuitClosure()); 1235 service->DoSomething(runner->QuitClosure());
1236 runner->Run(); 1236 runner->Run();
1237 1237
1238 // Mojo service doesn't exist in worker, so error callback should have been 1238 // Mojo service doesn't exist in worker, so error callback should have been
1239 // called and FinishRequest should return false. 1239 // called and FinishRequest should return false.
1240 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status); 1240 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status);
1241 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */, 1241 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */,
1242 base::Time::Now())); 1242 base::Time::Now()));
1243 } 1243 }
1244 1244
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
1739 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); 1739 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1);
1740 histogram_tester_.ExpectTotalCount(kLinkTapDown, 0); 1740 histogram_tester_.ExpectTotalCount(kLinkTapDown, 0);
1741 EXPECT_EQ(SERVICE_WORKER_OK, status); 1741 EXPECT_EQ(SERVICE_WORKER_OK, status);
1742 StopWorker(); 1742 StopWorker();
1743 // The UMA for kLinkMouseDown must be recorded when the worker stopped. 1743 // The UMA for kLinkMouseDown must be recorded when the worker stopped.
1744 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); 1744 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1);
1745 histogram_tester_.ExpectTotalCount(kLinkTapDown, 1); 1745 histogram_tester_.ExpectTotalCount(kLinkTapDown, 1);
1746 } 1746 }
1747 1747
1748 } // namespace content 1748 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_manager/service_manager_context.cc ('k') | content/browser/utility_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698