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

Side by Side Diff: components/autofill/browser/credit_card_unittest.cc

Issue 16034018: [Autofill] Support "importing" verified profiles and credit cards. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix up comments Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698