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

Unified Diff: content/browser/service_worker/service_worker_job_unittest.cc

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Just delete a useless line Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698