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

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

Issue 2490623005: Remove InterfaceRegistry/Provider from service workers (Closed)
Patch Set: rebase/fix comment Created 4 years 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
« no previous file with comments | « content/browser/service_worker/service_worker_version.cc ('k') | content/common/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 ServiceWorkerStallInStoppingTest() : ServiceWorkerVersionTestP() {} 401 ServiceWorkerStallInStoppingTest() : ServiceWorkerVersionTestP() {}
402 402
403 std::unique_ptr<MessageReceiver> GetMessageReceiver() override { 403 std::unique_ptr<MessageReceiver> GetMessageReceiver() override {
404 return base::MakeUnique<MessageReceiverDisallowStop>(); 404 return base::MakeUnique<MessageReceiverDisallowStop>();
405 } 405 }
406 406
407 private: 407 private:
408 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStallInStoppingTest); 408 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStallInStoppingTest);
409 }; 409 };
410 410
411 class MessageReceiverMojoTestService : public MessageReceiver {
412 public:
413 MessageReceiverMojoTestService() : MessageReceiver() {}
414 ~MessageReceiverMojoTestService() override {}
415
416 void OnSetupMojo(int thread_id,
417 service_manager::InterfaceRegistry* registry) override {
418 registry->AddInterface(base::Bind(&TestServiceImpl::Create));
419 }
420
421 private:
422 DISALLOW_COPY_AND_ASSIGN(MessageReceiverMojoTestService);
423 };
424
425 class ServiceWorkerVersionWithMojoTest : public ServiceWorkerVersionTestP {
426 protected:
427 ServiceWorkerVersionWithMojoTest() : ServiceWorkerVersionTestP() {}
428
429 std::unique_ptr<MessageReceiver> GetMessageReceiver() override {
430 return base::MakeUnique<MessageReceiverMojoTestService>();
431 }
432
433 private:
434 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerVersionWithMojoTest);
435 };
436
437 TEST_P(ServiceWorkerVersionTestP, ConcurrentStartAndStop) { 411 TEST_P(ServiceWorkerVersionTestP, ConcurrentStartAndStop) {
438 // Call StartWorker() multiple times. 412 // Call StartWorker() multiple times.
439 ServiceWorkerStatusCode status1 = SERVICE_WORKER_ERROR_FAILED; 413 ServiceWorkerStatusCode status1 = SERVICE_WORKER_ERROR_FAILED;
440 ServiceWorkerStatusCode status2 = SERVICE_WORKER_ERROR_FAILED; 414 ServiceWorkerStatusCode status2 = SERVICE_WORKER_ERROR_FAILED;
441 ServiceWorkerStatusCode status3 = SERVICE_WORKER_ERROR_FAILED; 415 ServiceWorkerStatusCode status3 = SERVICE_WORKER_ERROR_FAILED;
442 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, 416 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN,
443 CreateReceiverOnCurrentThread(&status1)); 417 CreateReceiverOnCurrentThread(&status1));
444 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, 418 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN,
445 CreateReceiverOnCurrentThread(&status2)); 419 CreateReceiverOnCurrentThread(&status2));
446 420
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 1197
1224 // Callback completed. 1198 // Callback completed.
1225 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status); 1199 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status);
1226 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); 1200 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status());
1227 1201
1228 // Request already failed, calling finsh should return false. 1202 // Request already failed, calling finsh should return false.
1229 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */, 1203 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */,
1230 base::Time::Now())); 1204 base::Time::Now()));
1231 } 1205 }
1232 1206
1233 TEST_P(ServiceWorkerVersionWithMojoTest, MojoService) {
1234 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1235
1236 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1237 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC,
1238 CreateReceiverOnCurrentThread(&status));
1239 base::RunLoop().RunUntilIdle();
1240 EXPECT_EQ(SERVICE_WORKER_OK, status);
1241 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
1242
1243 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner);
1244 int request_id = version_->StartRequest(
1245 ServiceWorkerMetrics::EventType::SYNC,
1246 CreateReceiverOnCurrentThread(&status, runner->QuitClosure()));
1247 base::WeakPtr<mojom::TestService> service =
1248 version_->GetMojoServiceForRequest<mojom::TestService>(request_id);
1249 service->DoSomething(runner->QuitClosure());
1250 runner->Run();
1251
1252 // Mojo service does exist in worker, so error callback should not have been
1253 // called and FinishRequest should return true.
1254 EXPECT_EQ(SERVICE_WORKER_OK, status);
1255 EXPECT_TRUE(version_->FinishRequest(request_id, true /* was_handled */,
1256 base::Time::Now()));
1257 }
1258
1259 TEST_P(ServiceWorkerVersionTestP, NonExistentMojoService) {
1260 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1261
1262 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1263 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC,
1264 CreateReceiverOnCurrentThread(&status));
1265 base::RunLoop().RunUntilIdle();
1266 EXPECT_EQ(SERVICE_WORKER_OK, status);
1267 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
1268
1269 scoped_refptr<MessageLoopRunner> runner(new MessageLoopRunner);
1270 int request_id = version_->StartRequest(
1271 ServiceWorkerMetrics::EventType::SYNC,
1272 CreateReceiverOnCurrentThread(&status, runner->QuitClosure()));
1273 base::WeakPtr<mojom::TestService> service =
1274 version_->GetMojoServiceForRequest<mojom::TestService>(request_id);
1275 service->DoSomething(runner->QuitClosure());
1276 runner->Run();
1277
1278 // Mojo service doesn't exist in worker, so error callback should have been
1279 // called and FinishRequest should return false.
1280 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status);
1281 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */,
1282 base::Time::Now()));
1283 }
1284
1285 TEST_P(ServiceWorkerVersionTestP, DispatchEvent) { 1207 TEST_P(ServiceWorkerVersionTestP, DispatchEvent) {
1286 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value 1208 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1287 1209
1288 // Activate and start worker. 1210 // Activate and start worker.
1289 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 1211 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1290 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC, 1212 version_->StartWorker(ServiceWorkerMetrics::EventType::SYNC,
1291 CreateReceiverOnCurrentThread(&status)); 1213 CreateReceiverOnCurrentThread(&status));
1292 base::RunLoop().RunUntilIdle(); 1214 base::RunLoop().RunUntilIdle();
1293 EXPECT_EQ(SERVICE_WORKER_OK, status); 1215 EXPECT_EQ(SERVICE_WORKER_OK, status);
1294 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); 1216 EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1790 testing::Bool()); 1712 testing::Bool());
1791 INSTANTIATE_TEST_CASE_P(ServiceWorkerFailToStartTest, 1713 INSTANTIATE_TEST_CASE_P(ServiceWorkerFailToStartTest,
1792 ServiceWorkerFailToStartTest, 1714 ServiceWorkerFailToStartTest,
1793 testing::Bool()); 1715 testing::Bool());
1794 INSTANTIATE_TEST_CASE_P(ServiceWorkerNavigationHintUMATest, 1716 INSTANTIATE_TEST_CASE_P(ServiceWorkerNavigationHintUMATest,
1795 ServiceWorkerNavigationHintUMATest, 1717 ServiceWorkerNavigationHintUMATest,
1796 testing::Bool()); 1718 testing::Bool());
1797 INSTANTIATE_TEST_CASE_P(ServiceWorkerStallInStoppingTest, 1719 INSTANTIATE_TEST_CASE_P(ServiceWorkerStallInStoppingTest,
1798 ServiceWorkerStallInStoppingTest, 1720 ServiceWorkerStallInStoppingTest,
1799 testing::Bool()); 1721 testing::Bool());
1800 INSTANTIATE_TEST_CASE_P(ServiceWorkerVersionWithMojoTest,
1801 ServiceWorkerVersionWithMojoTest,
1802 testing::Bool());
1803
1804 } // namespace content 1722 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_version.cc ('k') | content/common/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698