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..5145ff9eca41b106999ff6b08d8ad0807a2c0976 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,46 @@ 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)); |
+ |
+ 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 +1521,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( |