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

Unified Diff: chrome/browser/ui/views/payments/payment_request_can_make_payment_browsertest.cc

Issue 2866623003: PaymentRequest.canMakePayment() query quota on desktop. (Closed)
Patch Set: frame Created 3 years, 7 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: 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

Powered by Google App Engine
This is Rietveld 408576698