Chromium Code Reviews| Index: content/browser/payments/payment_app_browsertest.cc |
| diff --git a/content/browser/payments/payment_app_browsertest.cc b/content/browser/payments/payment_app_browsertest.cc |
| index f5e732ca7c3f8df4e1a840f2565abb40a83f0b97..70586d7db5302519599321772a453af4acf131c8 100644 |
| --- a/content/browser/payments/payment_app_browsertest.cc |
| +++ b/content/browser/payments/payment_app_browsertest.cc |
| @@ -84,7 +84,7 @@ class PaymentAppBrowserTest : public ContentBrowserTest { |
| ASSERT_EQ("registered", script_result); |
| } |
| - std::vector<int64_t> GetAllPaymentAppIDs() { |
| + std::map<std::string, int64_t> GetAllPaymentInstrumentRegistrationIDs() { |
| base::RunLoop run_loop; |
| PaymentAppProvider::PaymentApps apps; |
| PaymentAppProvider::GetInstance()->GetAllPaymentApps( |
| @@ -93,17 +93,21 @@ class PaymentAppBrowserTest : public ContentBrowserTest { |
| &apps)); |
| run_loop.Run(); |
| - std::vector<int64_t> ids; |
| + std::map<std::string, int64_t> registrationIds; |
| for (const auto& app_info : apps) { |
| for (const auto& instrument : app_info.second) { |
| - ids.push_back(instrument->registration_id); |
| + registrationIds.insert(std::pair<std::string, int64_t>( |
| + instrument->instrument_key, instrument->registration_id)); |
| } |
| } |
| - return ids; |
| + return registrationIds; |
| } |
| - PaymentAppResponsePtr InvokePaymentAppWithTestData(int64_t registration_id) { |
| + PaymentAppResponsePtr InvokePaymentAppWithTestData( |
| + int64_t registration_id, |
| + std::string supported_method, |
| + std::string instrument_key) { |
|
please use gerrit instead
2017/06/02 03:43:16
const-ref?
gogerald1
2017/06/02 13:21:39
Done.
|
| PaymentAppRequestPtr app_request = PaymentAppRequest::New(); |
| app_request->top_level_origin = GURL("https://example.com"); |
| @@ -113,7 +117,7 @@ class PaymentAppBrowserTest : public ContentBrowserTest { |
| app_request->payment_request_id = "payment-request-id"; |
| app_request->method_data.push_back(PaymentMethodData::New()); |
| - app_request->method_data[0]->supported_methods = {"basic-card"}; |
| + app_request->method_data[0]->supported_methods = {supported_method}; |
| app_request->total = PaymentItem::New(); |
| app_request->total->amount = PaymentCurrencyAmount::New(); |
| @@ -124,10 +128,10 @@ class PaymentAppBrowserTest : public ContentBrowserTest { |
| modifier->total->amount = PaymentCurrencyAmount::New(); |
| modifier->total->amount->currency = "USD"; |
| modifier->method_data = PaymentMethodData::New(); |
| - modifier->method_data->supported_methods = {"basic-card"}; |
| + modifier->method_data->supported_methods = {supported_method}; |
| app_request->modifiers.push_back(std::move(modifier)); |
| - app_request->instrument_key = "instrument-key"; |
| + app_request->instrument_key = instrument_key; |
| base::RunLoop run_loop; |
| PaymentAppResponsePtr response; |
| @@ -166,16 +170,19 @@ class PaymentAppBrowserTest : public ContentBrowserTest { |
| IN_PROC_BROWSER_TEST_F(PaymentAppBrowserTest, PaymentAppInvocation) { |
| RegisterPaymentApp(); |
| - std::vector<int64_t> ids = GetAllPaymentAppIDs(); |
| - ASSERT_EQ(1U, ids.size()); |
| + std::map<std::string, int64_t> registrationIds = |
| + GetAllPaymentInstrumentRegistrationIDs(); |
| + ASSERT_EQ(2U, registrationIds.size()); |
| - PaymentAppResponsePtr response(InvokePaymentAppWithTestData(ids[0])); |
| + PaymentAppResponsePtr response(InvokePaymentAppWithTestData( |
| + registrationIds.at("basic-card-payment-app-id"), "basic-card", |
| + "basic-card-payment-app-id")); |
| ASSERT_EQ("test", response->method_name); |
| ClearStoragePartitionData(); |
| - ids = GetAllPaymentAppIDs(); |
| - ASSERT_EQ(0U, ids.size()); |
| + registrationIds = GetAllPaymentInstrumentRegistrationIDs(); |
| + ASSERT_EQ(0U, registrationIds.size()); |
| EXPECT_EQ("https://example.com/", PopConsoleString() /* topLevelOrigin */); |
| EXPECT_EQ("https://example.com/", |
| @@ -192,7 +199,45 @@ IN_PROC_BROWSER_TEST_F(PaymentAppBrowserTest, PaymentAppInvocation) { |
| "\"total\":{\"amount\":{\"currency\":\"USD\",\"currencySystem\":\"urn:" |
| "iso:std:iso:4217\",\"value\":\"\"},\"label\":\"\",\"pending\":false}}]", |
| PopConsoleString() /* modifiers */); |
| - EXPECT_EQ("instrument-key", PopConsoleString() /* instrumentKey */); |
| + EXPECT_EQ("basic-card-payment-app-id", |
| + PopConsoleString() /* instrumentKey */); |
| } |
| +IN_PROC_BROWSER_TEST_F(PaymentAppBrowserTest, PaymentAppOpenWindowFailed) { |
| + RegisterPaymentApp(); |
| + |
| + std::map<std::string, int64_t> registrationIds = |
| + GetAllPaymentInstrumentRegistrationIDs(); |
| + ASSERT_EQ(2U, registrationIds.size()); |
| + |
| + PaymentAppResponsePtr response(InvokePaymentAppWithTestData( |
| + registrationIds.at("bobpay-payment-app-id"), "https://bobpay.com", |
| + "bobpay-payment-app-id")); |
| + // InvokePaymentAppCallback returns empty method_name in case of failure, like |
| + // in PaymentRequestRespondWithObserver::OnResponseRejected. |
| + ASSERT_EQ("", response->method_name); |
| + |
| + ClearStoragePartitionData(); |
| + |
| + registrationIds = GetAllPaymentInstrumentRegistrationIDs(); |
| + ASSERT_EQ(0U, registrationIds.size()); |
| + |
| + EXPECT_EQ("https://example.com/", PopConsoleString() /* topLevelOrigin */); |
| + EXPECT_EQ("https://example.com/", |
| + PopConsoleString() /* paymentRequestOrigin */); |
| + EXPECT_EQ("payment-request-id", PopConsoleString() /* paymentRequestId */); |
| + EXPECT_EQ("[{\"supportedMethods\":[\"https://bobpay.com\"]}]", |
| + PopConsoleString() /* methodData */); |
| + EXPECT_EQ( |
| + "{\"amount\":{\"currency\":\"USD\",\"currencySystem\":\"urn:iso:std:iso:" |
| + "4217\",\"value\":\"\"},\"label\":\"\",\"pending\":false}", |
| + PopConsoleString() /* total */); |
| + EXPECT_EQ( |
| + "[{\"additionalDisplayItems\":[],\"supportedMethods\":[\"https://" |
| + "bobpay.com\"]," |
| + "\"total\":{\"amount\":{\"currency\":\"USD\",\"currencySystem\":\"urn:" |
| + "iso:std:iso:4217\",\"value\":\"\"},\"label\":\"\",\"pending\":false}}]", |
| + PopConsoleString() /* modifiers */); |
| + EXPECT_EQ("bobpay-payment-app-id", PopConsoleString() /* instrumentKey */); |
| +} |
| } // namespace content |