| 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(
|
|
|