Chromium Code Reviews| Index: content/browser/payments/payment_app_provider_impl_unittest.cc |
| diff --git a/content/browser/payments/payment_app_provider_impl_unittest.cc b/content/browser/payments/payment_app_provider_impl_unittest.cc |
| index 8fde6670496bc23830b328de26bdf07a586cb990..0d4e71e009fc11fb5d0a1027acbed4608f1b7c31 100644 |
| --- a/content/browser/payments/payment_app_provider_impl_unittest.cc |
| +++ b/content/browser/payments/payment_app_provider_impl_unittest.cc |
| @@ -50,6 +50,13 @@ class PaymentAppProviderTest : public PaymentAppContentUnitTestBase { |
| base::RunLoop().RunUntilIdle(); |
| } |
| + void InvokePaymentApp(int64_t registration_id, |
| + payments::mojom::PaymentAppRequestDataPtr data) { |
| + PaymentAppProviderImpl::GetInstance()->InvokePaymentApp( |
| + browser_context(), registration_id, std::move(data)); |
| + base::RunLoop().RunUntilIdle(); |
| + } |
| + |
| void CreatePaymentApp(const GURL& scope_url, const GURL& sw_script_url) { |
| PaymentAppManager* manager = |
| CreatePaymentAppManager(scope_url, sw_script_url); |
| @@ -62,13 +69,14 @@ class PaymentAppProviderTest : public PaymentAppContentUnitTestBase { |
| ASSERT_TRUE(called); |
| ASSERT_EQ(PaymentAppManifestError::NONE, error); |
| + base::RunLoop().RunUntilIdle(); |
|
please use gerrit instead
2017/01/12 19:04:00
Which call in here is asynchronous?
zino
2017/01/13 16:41:11
It's unnecessary. It's my mistake.
Done.
|
| } |
| private: |
| DISALLOW_COPY_AND_ASSIGN(PaymentAppProviderTest); |
| }; |
| -TEST_F(PaymentAppProviderTest, Test) { |
| +TEST_F(PaymentAppProviderTest, GetAllManifestsTest) { |
| static const struct { |
| const char* scopeUrl; |
| const char* scriptUrl; |
| @@ -101,4 +109,39 @@ TEST_F(PaymentAppProviderTest, Test) { |
| } |
| } |
| +TEST_F(PaymentAppProviderTest, InvokePaymentAppTest) { |
| + static const struct { |
| + const char* scopeUrl; |
| + const char* scriptUrl; |
| + } kPaymentAppInfo[] = { |
| + {"https://example.com/a", "https://example.com/a/script.js"}, |
| + {"https://example.com/b", "https://example.com/b/script.js"}, |
| + {"https://example.com/c", "https://example.com/c/script.js"}}; |
| + |
| + for (size_t i = 0; i < arraysize(kPaymentAppInfo); i++) { |
| + CreatePaymentApp(GURL(kPaymentAppInfo[i].scopeUrl), |
| + GURL(kPaymentAppInfo[i].scriptUrl)); |
| + } |
| + |
| + PaymentAppProvider::Manifests manifests; |
| + bool called = false; |
| + GetAllManifests(base::Bind(&GetAllManifestsCallback, &called, &manifests)); |
| + ASSERT_TRUE(called); |
| + ASSERT_EQ(3U, manifests.size()); |
| + |
| + payments::mojom::PaymentAppRequestDataPtr data = |
| + payments::mojom::PaymentAppRequestData::New(); |
| + data->methodData.push_back(payments::mojom::PaymentMethodData::New()); |
| + data->total = payments::mojom::PaymentItem::New(); |
| + data->total->amount = payments::mojom::PaymentCurrencyAmount::New(); |
| + |
| + init_payment_app_invoked(); |
| + EXPECT_FALSE(payment_app_invoked()); |
| + InvokePaymentApp(manifests[1].first, std::move(data)); |
| + |
| + ASSERT_TRUE(payment_app_invoked()); |
| + EXPECT_EQ(manifests[1].first, last_sw_registration_id()); |
| + EXPECT_EQ(GURL(kPaymentAppInfo[1].scopeUrl), last_sw_scope_url()); |
| +} |
| + |
| } // namespace content |