| Index: chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc
|
| index cb4e07299d5955c077d89a0a446acf1f64efd3bf..75757996973df493faf955ecdee23e391f554d63 100644
|
| --- a/chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc
|
| +++ b/chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc
|
| @@ -96,4 +96,102 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryTest,
|
| ExpectBodyContains({"true"});
|
| }
|
|
|
| +class PaymentRequestCanMakePaymentQueryCCTest
|
| + : public PaymentRequestBrowserTestBase {
|
| + protected:
|
| + PaymentRequestCanMakePaymentQueryCCTest()
|
| + : PaymentRequestBrowserTestBase(
|
| + "/payment_request_can_make_payment_query_cc_test.html") {}
|
| +
|
| + void CallCanMakePayment(bool visa) {
|
| + ResetEventObserver(DialogEvent::CAN_MAKE_PAYMENT_CALLED);
|
| + ASSERT_TRUE(content::ExecuteScript(GetActiveWebContents(),
|
| + visa ? "buy();" : "other_buy();"));
|
| + WaitForObservedEvent();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(PaymentRequestCanMakePaymentQueryCCTest);
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryCCTest, QueryQuota) {
|
| + // Query "visa" payment method.
|
| + CallCanMakePayment(/*visa=*/true);
|
| +
|
| + // User does not have a visa card.
|
| + ExpectBodyContains({"false"});
|
| +
|
| + // Query "mastercard" payment method.
|
| + CallCanMakePayment(/*visa=*/false);
|
| +
|
| + // Query quota exceeded.
|
| + ExpectBodyContains({"NotAllowedError"});
|
| +
|
| + AddCreditCard(autofill::test::GetCreditCard()); // visa
|
| +
|
| + // Query "visa" payment method.
|
| + CallCanMakePayment(/*visa=*/true);
|
| +
|
| + // User now has a visa card. The query is cached, but the result is always
|
| + // fresh.
|
| + ExpectBodyContains({"true"});
|
| +
|
| + // Query "mastercard" payment method.
|
| + CallCanMakePayment(/*visa=*/false);
|
| +
|
| + // Query quota exceeded.
|
| + ExpectBodyContains({"NotAllowedError"});
|
| +}
|
| +
|
| +class PaymentRequestCanMakePaymentQueryBasicCardTest
|
| + : public PaymentRequestBrowserTestBase {
|
| + protected:
|
| + PaymentRequestCanMakePaymentQueryBasicCardTest()
|
| + : PaymentRequestBrowserTestBase("/payment_request_basic_card_test.html") {
|
| + }
|
| +
|
| + void CallCanMakePayment(bool visa) {
|
| + ResetEventObserver(DialogEvent::CAN_MAKE_PAYMENT_CALLED);
|
| + ASSERT_TRUE(content::ExecuteScript(
|
| + GetActiveWebContents(),
|
| + visa ? "checkBasicVisa();" : "checkBasicCard();"));
|
| + WaitForObservedEvent();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(PaymentRequestCanMakePaymentQueryBasicCardTest);
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryBasicCardTest,
|
| + QueryQuota) {
|
| + // Query "basic-card" payment method with "supportedNetworks": ["visa"] in the
|
| + // payment method specific data.
|
| + CallCanMakePayment(/*visa=*/true);
|
| +
|
| + // User does not have a visa card.
|
| + ExpectBodyContains({"false"});
|
| +
|
| + // Query "basic-card" payment method without "supportedNetworks" parameter.
|
| + CallCanMakePayment(/*visa=*/false);
|
| +
|
| + // Query quota exceeded.
|
| + ExpectBodyContains({"NotAllowedError"});
|
| +
|
| + AddCreditCard(autofill::test::GetCreditCard()); // visa
|
| +
|
| + // Query "basic-card" payment method with "supportedNetworks": ["visa"] in the
|
| + // payment method specific data.
|
| + CallCanMakePayment(/*visa=*/true);
|
| +
|
| + // User now has a visa card. The query is cached, but the result is always
|
| + // fresh.
|
| + ExpectBodyContains({"true"});
|
| +
|
| + // Query "basic-card" payment method without "supportedNetworks" parameter.
|
| + CallCanMakePayment(/*visa=*/false);
|
| +
|
| + // Query quota exceeded.
|
| + ExpectBodyContains({"NotAllowedError"});
|
| +}
|
| +
|
| } // namespace payments
|
|
|