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

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

Issue 535753002: ServiceWorker: Implement navigator.serviceWorker.getRegistration [2/3] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: patch for review Created 6 years, 3 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_context_unittest.cc
diff --git a/content/browser/service_worker/service_worker_context_unittest.cc b/content/browser/service_worker/service_worker_context_unittest.cc
index ad550f87d8a9c9fdf4bf4558ad1a1c509d172c7d..01c2858724c49fa10d5f60fbd0e5503cd6b45b2d 100644
--- a/content/browser/service_worker/service_worker_context_unittest.cc
+++ b/content/browser/service_worker/service_worker_context_unittest.cc
@@ -53,6 +53,21 @@ ServiceWorkerContextCore::UnregistrationCallback MakeUnregisteredCallback(
return base::Bind(&CallCompletedCallback, called);
}
+void SaveRegistrationIdCallback(bool* called,
+ int64* store_registration_id,
+ ServiceWorkerStatusCode status,
+ int64 registration_id) {
+ EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status);
+ *called = true;
+ *store_registration_id = registration_id;
+}
+
+ServiceWorkerContextCore::GetRegistrationCallback MakeGetRegistrationCallback(
+ bool* called,
+ int64* store_registration_id) {
+ return base::Bind(&SaveRegistrationIdCallback, called, store_registration_id);
nhiroki 2014/09/10 04:07:22 nit: This indirection doesn't seem very helpful, o
Kunihiko Sakamoto 2014/09/10 08:22:44 Agreed - inlined it.
+}
+
void ExpectRegisteredWorkers(
ServiceWorkerStatusCode expect_status,
int64 expect_version_id,
@@ -455,4 +470,36 @@ TEST_F(ServiceWorkerContextTest, DeleteAndStartOver) {
base::RunLoop().RunUntilIdle();
}
+TEST_F(ServiceWorkerContextTest, GetRegistration) {
+ GURL pattern("http://www.example.com/");
+ GURL document_url("http://www.example.com/foo");
+
+ bool called = false;
+ int64 registration_id = kInvalidServiceWorkerRegistrationId;
+ int64 version_id = kInvalidServiceWorkerVersionId;
+ context()->RegisterServiceWorker(
+ pattern,
+ GURL("http://www.example.com/service_worker.js"),
+ render_process_id_,
+ NULL,
+ MakeRegisteredCallback(&called, &registration_id, &version_id));
+
+ ASSERT_FALSE(called);
+ base::RunLoop().RunUntilIdle();
+ ASSERT_TRUE(called);
+ EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id);
+ EXPECT_NE(kInvalidServiceWorkerVersionId, version_id);
+
+ called = false;
+ int64 result_registration_id;
+ context()->GetRegistration(
+ document_url,
+ MakeGetRegistrationCallback(&called, &result_registration_id));
+
+ ASSERT_FALSE(called);
+ base::RunLoop().RunUntilIdle();
+ ASSERT_TRUE(called);
+ EXPECT_EQ(registration_id, result_registration_id);
nhiroki 2014/09/10 04:07:22 Can you test a case that there is no registration
Kunihiko Sakamoto 2014/09/10 08:22:44 Done.
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698