Chromium Code Reviews| Index: content/browser/payments/payment_app_content_unittest_base.cc |
| diff --git a/content/browser/payments/payment_app_content_unittest_base.cc b/content/browser/payments/payment_app_content_unittest_base.cc |
| index 1ce3175e55c712d10a8d155d3607a68ae5aaf137..e852d38dcee9c09ee0448ac9de6360a0674c4826 100644 |
| --- a/content/browser/payments/payment_app_content_unittest_base.cc |
| +++ b/content/browser/payments/payment_app_content_unittest_base.cc |
| @@ -28,11 +28,13 @@ namespace content { |
| namespace { |
| void RegisterServiceWorkerCallback(bool* called, |
| + int64_t* out_registration_id, |
| ServiceWorkerStatusCode status, |
| const std::string& status_message, |
| int64_t registration_id) { |
| EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status); |
| *called = true; |
| + *out_registration_id = registration_id; |
| } |
| void UnregisterServiceWorkerCallback(bool* called, |
| @@ -41,6 +43,11 @@ void UnregisterServiceWorkerCallback(bool* called, |
| *called = true; |
| } |
| +void StopWorkerCallback(bool* called, ServiceWorkerStatusCode status) { |
| + EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status); |
| + *called = true; |
| +} |
| + |
| } // namespace |
| class PaymentAppContentUnitTestBase::PaymentAppForWorkerTestHelper |
| @@ -51,21 +58,23 @@ class PaymentAppContentUnitTestBase::PaymentAppForWorkerTestHelper |
| last_sw_registration_id_(kInvalidServiceWorkerRegistrationId) {} |
| ~PaymentAppForWorkerTestHelper() override {} |
| - void OnStartWorker(int embedded_worker_id, |
| - int64_t service_worker_version_id, |
| - const GURL& scope, |
| - const GURL& script_url, |
| - bool pause_after_download, |
| - mojom::ServiceWorkerEventDispatcherRequest request, |
| - mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo |
| - instance_host) override { |
| + void OnStartWorker( |
| + int embedded_worker_id, |
| + int64_t service_worker_version_id, |
| + const GURL& scope, |
| + const GURL& script_url, |
| + bool pause_after_download, |
| + mojom::ServiceWorkerEventDispatcherRequest request, |
| + mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host, |
| + mojom::ServiceWorkerProviderClientInfoPtr provider_client_info) override { |
| ServiceWorkerVersion* version = |
| context()->GetLiveVersion(service_worker_version_id); |
| last_sw_registration_id_ = version->registration_id(); |
| last_sw_scope_ = scope; |
| EmbeddedWorkerTestHelper::OnStartWorker( |
| embedded_worker_id, service_worker_version_id, scope, script_url, |
| - pause_after_download, std::move(request), std::move(instance_host)); |
| + pause_after_download, std::move(request), std::move(instance_host), |
| + std::move(provider_client_info)); |
| } |
| void OnPaymentRequestEvent( |
| @@ -111,9 +120,23 @@ PaymentManager* PaymentAppContentUnitTestBase::CreatePaymentManager( |
| const GURL& sw_script_url) { |
| // Register service worker for payment manager. |
| bool called = false; |
| + int64_t registration_id; |
| worker_helper_->context()->RegisterServiceWorker( |
| scope_url, sw_script_url, nullptr, |
| - base::Bind(&RegisterServiceWorkerCallback, &called)); |
| + base::Bind(&RegisterServiceWorkerCallback, &called, ®istration_id)); |
| + base::RunLoop().RunUntilIdle(); |
| + EXPECT_TRUE(called); |
| + |
| + // Ensure the worker used for installation has stopped. |
| + called = false; |
| + ServiceWorkerRegistration* registration = |
| + worker_helper_->context()->GetLiveRegistration(registration_id); |
| + EXPECT_TRUE(registration); |
|
falken
2017/06/06 14:06:33
ASSERT, since the other EXPECTs don't make sense i
shimazu
2017/06/12 06:08:12
We seems not to be able to use ASSERT in functions
falken
2017/06/12 07:01:28
Ah didn't know that. I guess we just use EXPECT he
|
| + EXPECT_TRUE(registration->active_version()); |
| + EXPECT_FALSE(registration->waiting_version()); |
| + EXPECT_FALSE(registration->installing_version()); |
| + registration->active_version()->StopWorker( |
| + base::Bind(&StopWorkerCallback, &called)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_TRUE(called); |