OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/guid.h" | 6 #include "base/guid.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "components/autofill/browser/autofill_common_test.h" | 8 #include "components/autofill/browser/autofill_common_test.h" |
9 #include "components/autofill/browser/credit_card.h" | 9 #include "components/autofill/browser/credit_card.h" |
10 #include "components/autofill/common/form_field_data.h" | 10 #include "components/autofill/common/form_field_data.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 b.set_origin("banana"); | 148 b.set_origin("banana"); |
149 EXPECT_EQ(0, a.Compare(b)); | 149 EXPECT_EQ(0, a.Compare(b)); |
150 | 150 |
151 // Different values produce non-zero results. | 151 // Different values produce non-zero results. |
152 test::SetCreditCardInfo(&a, "Jimmy", NULL, NULL, NULL); | 152 test::SetCreditCardInfo(&a, "Jimmy", NULL, NULL, NULL); |
153 test::SetCreditCardInfo(&b, "Ringo", NULL, NULL, NULL); | 153 test::SetCreditCardInfo(&b, "Ringo", NULL, NULL, NULL); |
154 EXPECT_GT(0, a.Compare(b)); | 154 EXPECT_GT(0, a.Compare(b)); |
155 EXPECT_LT(0, b.Compare(a)); | 155 EXPECT_LT(0, b.Compare(a)); |
156 } | 156 } |
157 | 157 |
| 158 TEST(CreditCardTest, UpdateFromImportedCard) { |
| 159 CreditCard original_card(base::GenerateGUID(), "https://www.example.com"); |
| 160 test::SetCreditCardInfo( |
| 161 &original_card, "John Dillinger", "123456789012", "09", "2017"); |
| 162 |
| 163 CreditCard a = original_card; |
| 164 |
| 165 // The new card has a different name, expiration date, and origin. |
| 166 CreditCard b = a; |
| 167 b.set_guid(base::GenerateGUID()); |
| 168 b.set_origin("https://www.example.org"); |
| 169 b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger")); |
| 170 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08")); |
| 171 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019")); |
| 172 |
| 173 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
| 174 EXPECT_EQ("https://www.example.org", a.origin()); |
| 175 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); |
| 176 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
| 177 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 178 |
| 179 // Try again, but with no name set for |b|. |
| 180 a = original_card; |
| 181 b.SetRawInfo(CREDIT_CARD_NAME, base::string16()); |
| 182 |
| 183 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
| 184 EXPECT_EQ("https://www.example.org", a.origin()); |
| 185 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); |
| 186 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
| 187 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 188 |
| 189 // Try again, but with only the original card having a verified origin. |
| 190 // |a| should be unchanged. |
| 191 a = original_card; |
| 192 a.set_origin("Chrome settings"); |
| 193 b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger")); |
| 194 |
| 195 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
| 196 EXPECT_EQ("Chrome settings", a.origin()); |
| 197 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); |
| 198 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
| 199 EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 200 |
| 201 // Try again, but with only the new card having a verified origin. |
| 202 a = original_card; |
| 203 b.set_origin("Chrome settings"); |
| 204 |
| 205 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
| 206 EXPECT_EQ("Chrome settings", a.origin()); |
| 207 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); |
| 208 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
| 209 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 210 |
| 211 // Try again, with both cards having a verified origin. |
| 212 a = original_card; |
| 213 a.set_origin("Chrome Autofill dialog"); |
| 214 b.set_origin("Chrome settings"); |
| 215 |
| 216 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
| 217 EXPECT_EQ("Chrome settings", a.origin()); |
| 218 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); |
| 219 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
| 220 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
| 221 |
| 222 // Try again, but with |b| having a different card number. |
| 223 // |a| should be unchanged. |
| 224 a = original_card; |
| 225 b.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111")); |
| 226 |
| 227 EXPECT_FALSE(a.UpdateFromImportedCard(b, "en-US")); |
| 228 EXPECT_EQ(original_card, a); |
| 229 } |
| 230 |
158 TEST(CreditCardTest, IsComplete) { | 231 TEST(CreditCardTest, IsComplete) { |
159 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); | 232 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); |
160 EXPECT_FALSE(card.IsComplete()); | 233 EXPECT_FALSE(card.IsComplete()); |
161 card.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("Wally T. Walrus")); | 234 card.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("Wally T. Walrus")); |
162 EXPECT_FALSE(card.IsComplete()); | 235 EXPECT_FALSE(card.IsComplete()); |
163 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); | 236 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); |
164 EXPECT_FALSE(card.IsComplete()); | 237 EXPECT_FALSE(card.IsComplete()); |
165 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2014")); | 238 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2014")); |
166 | 239 |
167 for (size_t i = 0; i < arraysize(kValidNumbers); ++i) { | 240 for (size_t i = 0; i < arraysize(kValidNumbers); ++i) { |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 // Case insensitivity: | 465 // Case insensitivity: |
393 CreditCard credit_card(base::GenerateGUID(), "https://www.example.com/"); | 466 CreditCard credit_card(base::GenerateGUID(), "https://www.example.com/"); |
394 credit_card.SetRawInfo(CREDIT_CARD_NUMBER, | 467 credit_card.SetRawInfo(CREDIT_CARD_NUMBER, |
395 ASCIIToUTF16("6011111111111117")); | 468 ASCIIToUTF16("6011111111111117")); |
396 credit_card.FillSelectControl(CREDIT_CARD_TYPE, "en-US", &field); | 469 credit_card.FillSelectControl(CREDIT_CARD_TYPE, "en-US", &field); |
397 EXPECT_EQ(ASCIIToUTF16("discover"), field.value); | 470 EXPECT_EQ(ASCIIToUTF16("discover"), field.value); |
398 } | 471 } |
399 } | 472 } |
400 | 473 |
401 } // namespace autofill | 474 } // namespace autofill |
OLD | NEW |