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

Side by Side Diff: components/autofill/core/browser/autofill_field_unittest.cc

Issue 1639563002: [Autofill] Fill from the last digits when filling a phone number with a maximum length. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/autofill/core/browser/autofill_field.h" 5 #include "components/autofill/core/browser/autofill_field.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 252
253 // Credit card related field. 253 // Credit card related field.
254 field.set_heuristic_type(CREDIT_CARD_NUMBER); 254 field.set_heuristic_type(CREDIT_CARD_NUMBER);
255 AutofillField::FillFormField(field, ASCIIToUTF16("4111111111111111"), "en-US", 255 AutofillField::FillFormField(field, ASCIIToUTF16("4111111111111111"), "en-US",
256 "en-US", &field); 256 "en-US", &field);
257 257
258 // Verify that the field is filled. 258 // Verify that the field is filled.
259 EXPECT_EQ(ASCIIToUTF16("4111111111111111"), field.value); 259 EXPECT_EQ(ASCIIToUTF16("4111111111111111"), field.value);
260 } 260 }
261 261
262 TEST(AutofillFieldTest, FillPhoneNumber) { 262 TEST(AutofillFieldTest, FillPhoneNumber) {
Mathieu 2016/01/26 14:43:02 Maybe I'm spoiled by your other changes, but can w
sebsg 2016/01/26 23:56:26 It's a good habit to take. It's so much easier to
Mathieu 2016/01/27 14:30:49 Thanks!
sebsg 2016/01/27 21:01:21 Acknowledged.
263 AutofillField field; 263 AutofillField field;
264 field.SetHtmlType(HTML_TYPE_TEL_LOCAL_PREFIX, HtmlFieldMode()); 264 field.SetHtmlType(HTML_TYPE_TEL_LOCAL_PREFIX, HtmlFieldMode());
265 265
266 // Fill with a non-phone number; should fill normally. 266 // Fill with a non-phone number; should fill normally.
267 AutofillField::FillFormField( 267 AutofillField::FillFormField(
268 field, ASCIIToUTF16("Oh hai"), "en-US", "en-US", &field); 268 field, ASCIIToUTF16("Oh hai"), "en-US", "en-US", &field);
269 EXPECT_EQ(ASCIIToUTF16("Oh hai"), field.value); 269 EXPECT_EQ(ASCIIToUTF16("Oh hai"), field.value);
270 270
271 // Fill with a phone number; should fill just the prefix. 271 // Fill with a phone number; should fill just the prefix.
272 AutofillField::FillFormField( 272 AutofillField::FillFormField(
273 field, ASCIIToUTF16("5551234"), "en-US", "en-US", &field); 273 field, ASCIIToUTF16("5551234"), "en-US", "en-US", &field);
274 EXPECT_EQ(ASCIIToUTF16("555"), field.value); 274 EXPECT_EQ(ASCIIToUTF16("555"), field.value);
275 275
276 // Now reset the type, and set a max-length instead. 276 // Now reset the type, and set a max-length the size of a suffix.
277 field.SetHtmlType(HTML_TYPE_UNSPECIFIED, HtmlFieldMode()); 277 field.SetHtmlType(HTML_TYPE_UNSPECIFIED, HtmlFieldMode());
278 field.set_heuristic_type(PHONE_HOME_NUMBER); 278 field.set_heuristic_type(PHONE_HOME_NUMBER);
279 field.max_length = 4; 279 field.max_length = 4;
280 280
281 // Fill with a phone-number; should fill just the suffix. 281 // Fill with a phone-number; should fill just the suffix.
282 AutofillField::FillFormField( 282 AutofillField::FillFormField(
283 field, ASCIIToUTF16("5551234"), "en-US", "en-US", &field); 283 field, ASCIIToUTF16("5551234"), "en-US", "en-US", &field);
284 EXPECT_EQ(ASCIIToUTF16("1234"), field.value); 284 EXPECT_EQ(ASCIIToUTF16("1234"), field.value);
285
286 // Now reset the type, and set a max-length of 10.
287 field.SetHtmlType(HTML_TYPE_UNSPECIFIED, HtmlFieldMode());
Mathieu 2016/01/26 14:43:02 HTML_TYPE_TEL? https://code.google.com/p/chromiu
sebsg 2016/01/26 23:56:26 Done.
288 field.set_heuristic_type(PHONE_HOME_WHOLE_NUMBER);
289 field.max_length = 10;
290
291 // Fill with a whole phone number including country code. The number should
292 // fill without the country code.
293 AutofillField::FillFormField(field, ASCIIToUTF16("15141254578"), "en-US",
294 "en-US", &field);
295 EXPECT_EQ(ASCIIToUTF16("5141254578"), field.value);
285 } 296 }
286 297
287 TEST(AutofillFieldTest, FillSelectControlByValue) { 298 TEST(AutofillFieldTest, FillSelectControlByValue) {
288 std::vector<const char*> kOptions = { 299 std::vector<const char*> kOptions = {
289 "Eenie", "Meenie", "Miney", "Mo", 300 "Eenie", "Meenie", "Miney", "Mo",
290 }; 301 };
291 AutofillField field(GenerateSelectFieldWithOptions(kOptions, kOptions.size()), 302 AutofillField field(GenerateSelectFieldWithOptions(kOptions, kOptions.size()),
292 base::string16()); 303 base::string16());
293 304
294 // Set semantically empty contents for each option, so that only the values 305 // Set semantically empty contents for each option, so that only the values
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 index = kBadIndex; 812 index = kBadIndex;
802 ret = AutofillField::FindValueInSelectControl( 813 ret = AutofillField::FindValueInSelectControl(
803 field, UTF8ToUTF16("NoVaScOtIa"), &index); 814 field, UTF8ToUTF16("NoVaScOtIa"), &index);
804 EXPECT_TRUE(ret); 815 EXPECT_TRUE(ret);
805 EXPECT_EQ(2U, index); 816 EXPECT_EQ(2U, index);
806 } 817 }
807 } 818 }
808 819
809 } // namespace 820 } // namespace
810 } // namespace autofill 821 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698