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

Unified Diff: components/payments/core/autofill_payment_instrument_unittest.cc

Issue 2805263003: [Payments] Selecting incomplete items will open editors (Closed)
Patch Set: fix ios test for realz Created 3 years, 8 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: components/payments/core/autofill_payment_instrument_unittest.cc
diff --git a/components/payments/core/autofill_payment_instrument_unittest.cc b/components/payments/core/autofill_payment_instrument_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7b9db0be6a96b1a828190e7f22a80fa3dcd7c1a8
--- /dev/null
+++ b/components/payments/core/autofill_payment_instrument_unittest.cc
@@ -0,0 +1,127 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/payments/core/autofill_payment_instrument.h"
+
+#include "base/macros.h"
+#include "base/strings/utf_string_conversions.h"
+#include "components/autofill/core/browser/autofill_profile.h"
+#include "components/autofill/core/browser/autofill_test_utils.h"
+#include "components/autofill/core/browser/credit_card.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace payments {
+
+class AutofillPaymentInstrumentTest : public testing::Test {
+ protected:
+ AutofillPaymentInstrumentTest()
+ : address_(autofill::test::GetFullProfile()),
+ local_card_(autofill::test::GetCreditCard()),
+ billing_profiles_({&address_}) {
+ local_card_.set_billing_address_id(address_.guid());
+ }
+
+ autofill::CreditCard& local_credit_card() { return local_card_; }
+ const std::vector<autofill::AutofillProfile*>& billing_profiles() {
+ return billing_profiles_;
+ }
+
+ private:
+ autofill::AutofillProfile address_;
+ autofill::CreditCard local_card_;
+ std::vector<autofill::AutofillProfile*> billing_profiles_;
+
+ DISALLOW_COPY_AND_ASSIGN(AutofillPaymentInstrumentTest);
+};
+
+// A valid local credit card is a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment) {
+ AutofillPaymentInstrument instrument("visa", local_credit_card(),
+ billing_profiles(), "en-US", nullptr);
+ EXPECT_TRUE(instrument.IsCompleteForPayment());
+}
+
+// An expired local card is not a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment_Expired) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetExpirationYear(2016); // Expired.
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsCompleteForPayment());
+}
+
+// A local card with no name is not a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment_NoName) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetInfo(autofill::AutofillType(autofill::CREDIT_CARD_NAME_FULL),
+ base::ASCIIToUTF16(""), "en-US");
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsCompleteForPayment());
+}
+
+// A local card with no name is not a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment_NoNumber) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetNumber(base::ASCIIToUTF16(""));
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsCompleteForPayment());
+}
+
+// A Masked (server) card is a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment_MaskedCard) {
+ autofill::CreditCard card = autofill::test::GetMaskedServerCard();
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_TRUE(instrument.IsCompleteForPayment());
+}
+
+// An expired masked (server) card is not a valid instrument for payment.
+TEST_F(AutofillPaymentInstrumentTest, IsCompleteForPayment_ExpiredMaskedCard) {
+ autofill::CreditCard card = autofill::test::GetMaskedServerCard();
+ card.SetExpirationYear(2016); // Expired.
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsCompleteForPayment());
+}
+
+// An expired card is a valid instrument for canMakePayment.
+TEST_F(AutofillPaymentInstrumentTest, IsValidForCanMakePayment_Minimal) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetExpirationYear(2016); // Expired.
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_TRUE(instrument.IsValidForCanMakePayment());
+}
+
+// An expired Masked (server) card is a valid instrument for canMakePayment.
+TEST_F(AutofillPaymentInstrumentTest, IsValidForCanMakePayment_MaskedCard) {
+ autofill::CreditCard card = autofill::test::GetMaskedServerCard();
+ card.SetExpirationYear(2016); // Expired.
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_TRUE(instrument.IsValidForCanMakePayment());
+}
+
+// A card with no name is not a valid instrument for canMakePayment.
+TEST_F(AutofillPaymentInstrumentTest, IsValidForCanMakePayment_NoName) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetInfo(autofill::AutofillType(autofill::CREDIT_CARD_NAME_FULL),
+ base::ASCIIToUTF16(""), "en-US");
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsValidForCanMakePayment());
+}
+
+// A card with no number is not a valid instrument for canMakePayment.
+TEST_F(AutofillPaymentInstrumentTest, IsValidForCanMakePayment_NoNumber) {
+ autofill::CreditCard& card = local_credit_card();
+ card.SetNumber(base::ASCIIToUTF16(""));
+ AutofillPaymentInstrument instrument("visa", card, billing_profiles(),
+ "en-US", nullptr);
+ EXPECT_FALSE(instrument.IsValidForCanMakePayment());
+}
+
+} // namespace payments
« no previous file with comments | « components/payments/core/autofill_payment_instrument.cc ('k') | components/payments/core/payment_instrument.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698