Chromium Code Reviews| Index: content/browser/service_worker/service_worker_job_unittest.cc |
| diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc |
| index 78e892880dab4a5370f0c83522de85b3dcfe4040..06830782c09509034117a52791b7158597c6ad92 100644 |
| --- a/content/browser/service_worker/service_worker_job_unittest.cc |
| +++ b/content/browser/service_worker/service_worker_job_unittest.cc |
| @@ -118,6 +118,25 @@ ServiceWorkerStatusCode EventResultToStatus( |
| return SERVICE_WORKER_ERROR_FAILED; |
| } |
| +// This is for the test of mojom::ServiceWorkerInstallEventMethods. |
| +void RegisterForeignFetchScopes( |
| + mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client) { |
| + GURL valid_scope_1("http://www.example.com/test/subscope"); |
| + GURL valid_scope_2("http://www.example.com/test/othersubscope"); |
| + std::vector<GURL> valid_scopes; |
| + valid_scopes.push_back(valid_scope_1); |
| + valid_scopes.push_back(valid_scope_2); |
| + |
| + std::vector<url::Origin> all_origins; |
| + url::Origin valid_origin(GURL("https://chromium.org/")); |
| + std::vector<url::Origin> valid_origin_list(1, valid_origin); |
| + |
| + mojom::ServiceWorkerInstallEventMethodsAssociatedPtr install_event_methods; |
| + install_event_methods.Bind(std::move(client)); |
| + install_event_methods->RegisterForeignFetchScopes(valid_scopes, |
| + valid_origin_list); |
| +} |
| + |
| } // namespace |
| class ServiceWorkerJobTest : public testing::Test { |
| @@ -288,15 +307,47 @@ TEST_F(ServiceWorkerJobTest, DifferentMatchDifferentRegistration) { |
| ASSERT_NE(registration1, registration2); |
| } |
| +class RegisterForeignFetchTestHelper : public EmbeddedWorkerTestHelper { |
| + public: |
| + RegisterForeignFetchTestHelper() |
| + : EmbeddedWorkerTestHelper(base::FilePath()) {} |
| + |
| + void OnInstallEvent( |
| + mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client, |
| + mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback |
| + callback) override { |
| + RegisterForeignFetchScopes(std::move(client)); |
| + dispatched_events()->push_back(Event::Install); |
| + std::move(callback).Run(SERVICE_WORKER_OK, true /* has_fetch_handler */, |
| + base::Time::Now()); |
| + } |
| +}; |
| + |
| // Make sure basic registration is working. |
| TEST_F(ServiceWorkerJobTest, Register) { |
| + helper_.reset(new RegisterForeignFetchTestHelper); |
| + |
| scoped_refptr<ServiceWorkerRegistration> registration = |
| RunRegisterJob(GURL("http://www.example.com/"), |
| GURL("http://www.example.com/service_worker.js")); |
| ASSERT_NE(scoped_refptr<ServiceWorkerRegistration>(NULL), registration); |
| - EXPECT_TRUE(helper_->inner_ipc_sink()->GetUniqueMessageMatching( |
| - ServiceWorkerMsg_InstallEvent::ID)); |
| + EXPECT_EQ(EmbeddedWorkerTestHelper::Event::Install, |
| + helper_->dispatched_events()->at(0)); |
| + EXPECT_EQ(EmbeddedWorkerTestHelper::Event::Activate, |
| + helper_->dispatched_events()->at(1)); |
| + |
| + // Must be the same with the defination in embedded_worker_test_helper.cc. |
|
xiaofengzhang
2017/04/28 08:20:17
This line will be deleted
|
| + GURL valid_scope_1("http://www.example.com/test/subscope"); |
| + GURL valid_scope_2("http://www.example.com/test/othersubscope"); |
| + url::Origin valid_origin(GURL("https://chromium.org/")); |
| + |
| + ServiceWorkerVersion* version_ = registration->active_version(); |
| + EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size()); |
| + EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); |
| + EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]); |
| + EXPECT_EQ(1u, version_->foreign_fetch_origins_.size()); |
| + EXPECT_EQ(valid_origin, version_->foreign_fetch_origins_[0]); |
| } |
| // Make sure registrations are cleaned up when they are unregistered. |
| @@ -1471,13 +1522,14 @@ class EventCallbackHelper : public EmbeddedWorkerTestHelper { |
| install_event_result_(blink::kWebServiceWorkerEventResultCompleted), |
| activate_event_result_(blink::kWebServiceWorkerEventResultCompleted) {} |
| - void OnInstallEvent(int embedded_worker_id, |
| - int request_id) override { |
| + void OnInstallEvent( |
| + mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client, |
| + mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback |
| + callback) override { |
| if (!install_callback_.is_null()) |
| install_callback_.Run(); |
| - SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( |
| - embedded_worker_id, request_id, install_event_result_, |
| - has_fetch_handler_, base::Time::Now())); |
| + std::move(callback).Run(EventResultToStatus(install_event_result_), |
| + has_fetch_handler_, base::Time::Now()); |
| } |
| void OnActivateEvent( |