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

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

Issue 2640783002: [Password Generation] Send id attribute to server for HTML based form classifier (Closed)
Patch Set: Fixed failed test Created 3 years, 11 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/form_structure.h" 5 #include "components/autofill/core/browser/form_structure.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 2173 matching lines...) Expand 10 before | Expand all | Expand 10 after
2184 // Prepare the expected proto string. 2184 // Prepare the expected proto string.
2185 AutofillUploadContents upload; 2185 AutofillUploadContents upload;
2186 upload.set_submission(true); 2186 upload.set_submission(true);
2187 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2187 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2188 upload.set_form_signature(8736493185895608956U); 2188 upload.set_form_signature(8736493185895608956U);
2189 upload.set_autofill_used(false); 2189 upload.set_autofill_used(false);
2190 upload.set_data_present("144200030e"); 2190 upload.set_data_present("144200030e");
2191 upload.set_action_signature(15724779818122431245U); 2191 upload.set_action_signature(15724779818122431245U);
2192 2192
2193 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", 2193 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text",
2194 nullptr, 3U, nullptr); 2194 nullptr, 3U);
2195 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", 2195 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text",
2196 nullptr, 5U, nullptr); 2196 nullptr, 5U);
2197 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", 2197 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email",
2198 nullptr, 9U, nullptr); 2198 nullptr, 9U);
2199 test::FillUploadField(upload.add_field(), 466116101U, "phone", "number", 2199 test::FillUploadField(upload.add_field(), 466116101U, "phone", "number",
2200 nullptr, 14U, nullptr); 2200 nullptr, 14U);
2201 test::FillUploadField(upload.add_field(), 2799270304U, "country", 2201 test::FillUploadField(upload.add_field(), 2799270304U, "country",
2202 "select-one", nullptr, 36U, nullptr); 2202 "select-one", nullptr, 36U);
2203 2203
2204 std::string expected_upload_string; 2204 std::string expected_upload_string;
2205 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2205 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2206 2206
2207 AutofillUploadContents encoded_upload; 2207 AutofillUploadContents encoded_upload;
2208 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2208 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2209 available_field_types, false, std::string(), true, &encoded_upload)); 2209 available_field_types, false, std::string(), true, &encoded_upload));
2210 2210
2211 std::string encoded_upload_string; 2211 std::string encoded_upload_string;
2212 encoded_upload.SerializeToString(&encoded_upload_string); 2212 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 27 matching lines...) Expand all
2240 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); 2240 ASSERT_EQ(form_structure->field_count(), possible_field_types.size());
2241 for (size_t i = 0; i < form_structure->field_count(); ++i) 2241 for (size_t i = 0; i < form_structure->field_count(); ++i)
2242 form_structure->field(i)->set_possible_types(possible_field_types[i]); 2242 form_structure->field(i)->set_possible_types(possible_field_types[i]);
2243 2243
2244 // Adjust the expected proto string. 2244 // Adjust the expected proto string.
2245 upload.set_form_signature(7816485729218079147U); 2245 upload.set_form_signature(7816485729218079147U);
2246 upload.set_autofill_used(false); 2246 upload.set_autofill_used(false);
2247 // Create an additonal 8 fields (total of 13). 2247 // Create an additonal 8 fields (total of 13).
2248 for (int i = 0; i < 8; ++i) { 2248 for (int i = 0; i < 8; ++i) {
2249 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", 2249 test::FillUploadField(upload.add_field(), 509334676U, "address", "text",
2250 nullptr, 30U, nullptr); 2250 nullptr, 30U);
2251 } 2251 }
2252 // Put the appropriate autofill type on the different address fields. 2252 // Put the appropriate autofill type on the different address fields.
2253 upload.mutable_field(6)->set_autofill_type(31U); 2253 upload.mutable_field(6)->set_autofill_type(31U);
2254 upload.mutable_field(7)->set_autofill_type(37U); 2254 upload.mutable_field(7)->set_autofill_type(37U);
2255 upload.mutable_field(8)->set_autofill_type(38U); 2255 upload.mutable_field(8)->set_autofill_type(38U);
2256 upload.mutable_field(10)->set_autofill_type(31U); 2256 upload.mutable_field(10)->set_autofill_type(31U);
2257 upload.mutable_field(11)->set_autofill_type(37U); 2257 upload.mutable_field(11)->set_autofill_type(37U);
2258 upload.mutable_field(12)->set_autofill_type(38U); 2258 upload.mutable_field(12)->set_autofill_type(38U);
2259 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2259 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2260 2260
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2368 upload.set_submission(true); 2368 upload.set_submission(true);
2369 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2369 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2370 upload.set_form_signature(5810032074788446513U); 2370 upload.set_form_signature(5810032074788446513U);
2371 upload.set_autofill_used(true); 2371 upload.set_autofill_used(true);
2372 upload.set_data_present("1440000000000000000802"); 2372 upload.set_data_present("1440000000000000000802");
2373 upload.set_action_signature(15724779818122431245U); 2373 upload.set_action_signature(15724779818122431245U);
2374 upload.set_login_form_signature(42); 2374 upload.set_login_form_signature(42);
2375 2375
2376 AutofillUploadContents::Field* upload_firstname_field = upload.add_field(); 2376 AutofillUploadContents::Field* upload_firstname_field = upload.add_field();
2377 test::FillUploadField(upload_firstname_field, 4224610201U, "firstname", "", 2377 test::FillUploadField(upload_firstname_field, 4224610201U, "firstname", "",
2378 "given-name", 3U, nullptr); 2378 "given-name", 3U);
2379 upload_firstname_field->set_form_classifier_outcome( 2379 upload_firstname_field->set_form_classifier_outcome(
2380 AutofillUploadContents::Field::NON_GENERATION_ELEMENT); 2380 AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
2381 upload_firstname_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS); 2381 upload_firstname_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS);
2382 2382
2383 AutofillUploadContents::Field* upload_lastname_field = upload.add_field(); 2383 AutofillUploadContents::Field* upload_lastname_field = upload.add_field();
2384 test::FillUploadField(upload_lastname_field, 2786066110U, "lastname", "", 2384 test::FillUploadField(upload_lastname_field, 2786066110U, "lastname", "",
2385 "family-name", 5U, nullptr); 2385 "family-name", 5U);
2386 upload_lastname_field->set_form_classifier_outcome( 2386 upload_lastname_field->set_form_classifier_outcome(
2387 AutofillUploadContents::Field::NON_GENERATION_ELEMENT); 2387 AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
2388 upload_lastname_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS | 2388 upload_lastname_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS |
2389 FieldPropertiesFlags::USER_TYPED); 2389 FieldPropertiesFlags::USER_TYPED);
2390 2390
2391 AutofillUploadContents::Field* upload_email_field = upload.add_field(); 2391 AutofillUploadContents::Field* upload_email_field = upload.add_field();
2392 test::FillUploadField(upload_email_field, 1029417091U, "email", "email", 2392 test::FillUploadField(upload_email_field, 1029417091U, "email", "email",
2393 "email", 9U, nullptr); 2393 "email", 9U);
2394 upload_email_field->set_form_classifier_outcome( 2394 upload_email_field->set_form_classifier_outcome(
2395 AutofillUploadContents::Field::NON_GENERATION_ELEMENT); 2395 AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
2396 upload_email_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS | 2396 upload_email_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS |
2397 FieldPropertiesFlags::USER_TYPED); 2397 FieldPropertiesFlags::USER_TYPED);
2398 2398
2399 AutofillUploadContents::Field* upload_username_field = upload.add_field(); 2399 AutofillUploadContents::Field* upload_username_field = upload.add_field();
2400 test::FillUploadField(upload_username_field, 239111655U, "username", "text", 2400 test::FillUploadField(upload_username_field, 239111655U, "username", "text",
2401 "email", 86U, nullptr); 2401 "email", 86U);
2402 upload_username_field->set_form_classifier_outcome( 2402 upload_username_field->set_form_classifier_outcome(
2403 AutofillUploadContents::Field::NON_GENERATION_ELEMENT); 2403 AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
2404 upload_username_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS | 2404 upload_username_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS |
2405 FieldPropertiesFlags::USER_TYPED); 2405 FieldPropertiesFlags::USER_TYPED);
2406 2406
2407 AutofillUploadContents::Field* upload_password_field = upload.add_field(); 2407 AutofillUploadContents::Field* upload_password_field = upload.add_field();
2408 test::FillUploadField(upload_password_field, 2051817934U, "password", 2408 test::FillUploadField(upload_password_field, 2051817934U, "password",
2409 "password", "email", 76U, nullptr); 2409 "password", "email", 76U);
2410 upload_password_field->set_form_classifier_outcome( 2410 upload_password_field->set_form_classifier_outcome(
2411 AutofillUploadContents::Field::GENERATION_ELEMENT); 2411 AutofillUploadContents::Field::GENERATION_ELEMENT);
2412 upload_password_field->set_generation_type( 2412 upload_password_field->set_generation_type(
2413 AutofillUploadContents::Field:: 2413 AutofillUploadContents::Field::
2414 MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM); 2414 MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM);
2415 upload_password_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS | 2415 upload_password_field->set_properties_mask(FieldPropertiesFlags::HAD_FOCUS |
2416 FieldPropertiesFlags::USER_TYPED); 2416 FieldPropertiesFlags::USER_TYPED);
2417 2417
2418 std::string expected_upload_string; 2418 std::string expected_upload_string;
2419 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2419 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2473 // Prepare the expected proto string. 2473 // Prepare the expected proto string.
2474 AutofillUploadContents upload; 2474 AutofillUploadContents upload;
2475 upload.set_submission(true); 2475 upload.set_submission(true);
2476 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2476 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2477 upload.set_form_signature(14746822798145140279U); 2477 upload.set_form_signature(14746822798145140279U);
2478 upload.set_autofill_used(true); 2478 upload.set_autofill_used(true);
2479 upload.set_data_present("1440"); 2479 upload.set_data_present("1440");
2480 upload.set_action_signature(15724779818122431245U); 2480 upload.set_action_signature(15724779818122431245U);
2481 2481
2482 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", 2482 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text",
2483 "given-name", 3U, nullptr); 2483 "given-name", 3U);
2484 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", 2484 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text",
2485 "family-name", 5U, nullptr); 2485 "family-name", 5U);
2486 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", 2486 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email",
2487 "email", 9U, nullptr); 2487 "email", 9U);
2488 2488
2489 std::string expected_upload_string; 2489 std::string expected_upload_string;
2490 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2490 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2491 2491
2492 AutofillUploadContents encoded_upload; 2492 AutofillUploadContents encoded_upload;
2493 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2493 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2494 available_field_types, true, std::string(), true, &encoded_upload)); 2494 available_field_types, true, std::string(), true, &encoded_upload));
2495 2495
2496 std::string encoded_upload_string; 2496 std::string encoded_upload_string;
2497 encoded_upload.SerializeToString(&encoded_upload_string); 2497 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
2541 // Prepare the expected proto string. 2541 // Prepare the expected proto string.
2542 AutofillUploadContents upload; 2542 AutofillUploadContents upload;
2543 upload.set_submission(false); 2543 upload.set_submission(false);
2544 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2544 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2545 upload.set_form_signature(14746822798145140279U); 2545 upload.set_form_signature(14746822798145140279U);
2546 upload.set_autofill_used(true); 2546 upload.set_autofill_used(true);
2547 upload.set_data_present("1440"); 2547 upload.set_data_present("1440");
2548 upload.set_action_signature(15724779818122431245U); 2548 upload.set_action_signature(15724779818122431245U);
2549 2549
2550 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", 2550 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text",
2551 nullptr, 3U, nullptr); 2551 nullptr, 3U);
2552 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", 2552 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text",
2553 nullptr, 5U, nullptr); 2553 nullptr, 5U);
2554 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", 2554 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email",
2555 nullptr, 9U, nullptr); 2555 nullptr, 9U);
2556 2556
2557 std::string expected_upload_string; 2557 std::string expected_upload_string;
2558 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2558 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2559 2559
2560 AutofillUploadContents encoded_upload; 2560 AutofillUploadContents encoded_upload;
2561 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2561 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2562 available_field_types, true, std::string(), 2562 available_field_types, true, std::string(),
2563 /* observed_submission= */ false, &encoded_upload)); 2563 /* observed_submission= */ false, &encoded_upload));
2564 2564
2565 std::string encoded_upload_string; 2565 std::string encoded_upload_string;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2606 // Prepare the expected proto string. 2606 // Prepare the expected proto string.
2607 AutofillUploadContents upload; 2607 AutofillUploadContents upload;
2608 upload.set_submission(true); 2608 upload.set_submission(true);
2609 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2609 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2610 upload.set_form_signature(6949133589768631292U); 2610 upload.set_form_signature(6949133589768631292U);
2611 upload.set_autofill_used(true); 2611 upload.set_autofill_used(true);
2612 upload.set_data_present("1440"); 2612 upload.set_data_present("1440");
2613 upload.set_action_signature(15724779818122431245U); 2613 upload.set_action_signature(15724779818122431245U);
2614 2614
2615 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2615 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2616 nullptr, 3U, nullptr); 2616 nullptr, 3U);
2617 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2617 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2618 nullptr, 5U, nullptr); 2618 nullptr, 5U);
2619 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2619 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2620 nullptr, 9U, nullptr); 2620 nullptr, 9U);
2621 2621
2622 std::string expected_upload_string; 2622 std::string expected_upload_string;
2623 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2623 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2624 2624
2625 AutofillUploadContents encoded_upload; 2625 AutofillUploadContents encoded_upload;
2626 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2626 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2627 available_field_types, true, std::string(), true, &encoded_upload)); 2627 available_field_types, true, std::string(), true, &encoded_upload));
2628 2628
2629 std::string encoded_upload_string; 2629 std::string encoded_upload_string;
2630 encoded_upload.SerializeToString(&encoded_upload_string); 2630 encoded_upload.SerializeToString(&encoded_upload_string);
2631 EXPECT_EQ(expected_upload_string, encoded_upload_string); 2631 EXPECT_EQ(expected_upload_string, encoded_upload_string);
2632 } 2632 }
2633 2633
2634 TEST_F(FormStructureTest, EncodeUploadRequest_WithCssClasses) { 2634 TEST_F(FormStructureTest, EncodeUploadRequest_WithCssClassesAndIds) {
2635 std::vector<ServerFieldTypeSet> possible_field_types; 2635 std::vector<ServerFieldTypeSet> possible_field_types;
2636 FormData form; 2636 FormData form;
2637 2637
2638 FormFieldData field; 2638 FormFieldData field;
2639 field.form_control_type = "text"; 2639 field.form_control_type = "text";
2640 2640
2641 form.fields.push_back(field); 2641 form.fields.push_back(field);
2642 possible_field_types.push_back(ServerFieldTypeSet()); 2642 possible_field_types.push_back(ServerFieldTypeSet());
2643 possible_field_types.back().insert(NAME_FIRST); 2643 possible_field_types.back().insert(NAME_FIRST);
2644 2644
2645 field.css_classes = ASCIIToUTF16("last_name_field"); 2645 field.css_classes = ASCIIToUTF16("last_name_field");
2646 field.id = ASCIIToUTF16("lastname_id");
2646 form.fields.push_back(field); 2647 form.fields.push_back(field);
2647 possible_field_types.push_back(ServerFieldTypeSet()); 2648 possible_field_types.push_back(ServerFieldTypeSet());
2648 possible_field_types.back().insert(NAME_LAST); 2649 possible_field_types.back().insert(NAME_LAST);
2649 2650
2650 field.css_classes = ASCIIToUTF16("email_field required_field"); 2651 field.css_classes = ASCIIToUTF16("email_field required_field");
2652 field.id = ASCIIToUTF16("email_id");
2651 form.fields.push_back(field); 2653 form.fields.push_back(field);
2652 possible_field_types.push_back(ServerFieldTypeSet()); 2654 possible_field_types.push_back(ServerFieldTypeSet());
2653 possible_field_types.back().insert(EMAIL_ADDRESS); 2655 possible_field_types.back().insert(EMAIL_ADDRESS);
2654 2656
2655 std::unique_ptr<FormStructure> form_structure(new FormStructure(form)); 2657 std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
2656 2658
2657 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); 2659 ASSERT_EQ(form_structure->field_count(), possible_field_types.size());
2658 for (size_t i = 0; i < form_structure->field_count(); ++i) 2660 for (size_t i = 0; i < form_structure->field_count(); ++i)
2659 form_structure->field(i)->set_possible_types(possible_field_types[i]); 2661 form_structure->field(i)->set_possible_types(possible_field_types[i]);
2660 2662
2661 ServerFieldTypeSet available_field_types; 2663 ServerFieldTypeSet available_field_types;
2662 available_field_types.insert(NAME_FIRST); 2664 available_field_types.insert(NAME_FIRST);
2663 available_field_types.insert(NAME_LAST); 2665 available_field_types.insert(NAME_LAST);
2664 available_field_types.insert(EMAIL_ADDRESS); 2666 available_field_types.insert(EMAIL_ADDRESS);
2665 2667
2666 // Prepare the expected proto string. 2668 // Prepare the expected proto string.
2667 AutofillUploadContents upload; 2669 AutofillUploadContents upload;
2668 upload.set_submission(true); 2670 upload.set_submission(true);
2669 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2671 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2670 upload.set_form_signature(6949133589768631292U); 2672 upload.set_form_signature(6949133589768631292U);
2671 upload.set_autofill_used(true); 2673 upload.set_autofill_used(true);
2672 upload.set_data_present("1440"); 2674 upload.set_data_present("1440");
2673 upload.set_action_signature(15724779818122431245U); 2675 upload.set_action_signature(15724779818122431245U);
2674 2676
2675 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2677 AutofillUploadContents::Field* firstname_field = upload.add_field();
2676 nullptr, 3U, nullptr); 2678 test::FillUploadField(firstname_field, 1318412689U, nullptr, "text", nullptr,
2677 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2679 3U);
2678 nullptr, 5U, "last_name_field"); 2680
2679 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2681 AutofillUploadContents::Field* lastname_field = upload.add_field();
2680 nullptr, 9U, "email_field required_field"); 2682 test::FillUploadField(lastname_field, 1318412689U, nullptr, "text", nullptr,
2683 5U);
2684 lastname_field->set_id("lastname_id");
2685 lastname_field->set_css_classes("last_name_field");
2686
2687 AutofillUploadContents::Field* email_field = upload.add_field();
2688 test::FillUploadField(email_field, 1318412689U, nullptr, "text", nullptr, 9U);
2689 email_field->set_id("email_id");
2690 email_field->set_css_classes("email_field required_field");
2681 2691
2682 std::string expected_upload_string; 2692 std::string expected_upload_string;
2683 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2693 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2684 2694
2685 AutofillUploadContents encoded_upload; 2695 AutofillUploadContents encoded_upload;
2686 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2696 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2687 available_field_types, true, std::string(), true, &encoded_upload)); 2697 available_field_types, true, std::string(), true, &encoded_upload));
2688 2698
2689 std::string encoded_upload_string; 2699 std::string encoded_upload_string;
2690 encoded_upload.SerializeToString(&encoded_upload_string); 2700 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2731 AutofillUploadContents upload; 2741 AutofillUploadContents upload;
2732 upload.set_submission(true); 2742 upload.set_submission(true);
2733 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2743 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2734 upload.set_form_signature(2345951786066580868U); 2744 upload.set_form_signature(2345951786066580868U);
2735 upload.set_autofill_used(true); 2745 upload.set_autofill_used(true);
2736 upload.set_data_present("1440"); 2746 upload.set_data_present("1440");
2737 upload.set_action_signature(15724779818122431245U); 2747 upload.set_action_signature(15724779818122431245U);
2738 upload.set_form_name("myform"); 2748 upload.set_form_name("myform");
2739 2749
2740 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2750 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2741 nullptr, 3U, nullptr); 2751 nullptr, 3U);
2742 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2752 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2743 nullptr, 5U, nullptr); 2753 nullptr, 5U);
2744 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2754 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2745 nullptr, 9U, nullptr); 2755 nullptr, 9U);
2746 2756
2747 std::string expected_upload_string; 2757 std::string expected_upload_string;
2748 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2758 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2749 2759
2750 AutofillUploadContents encoded_upload; 2760 AutofillUploadContents encoded_upload;
2751 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2761 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2752 available_field_types, true, std::string(), true, &encoded_upload)); 2762 available_field_types, true, std::string(), true, &encoded_upload));
2753 2763
2754 std::string encoded_upload_string; 2764 std::string encoded_upload_string;
2755 encoded_upload.SerializeToString(&encoded_upload_string); 2765 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2801 // Prepare the expected proto string. 2811 // Prepare the expected proto string.
2802 AutofillUploadContents upload; 2812 AutofillUploadContents upload;
2803 upload.set_submission(true); 2813 upload.set_submission(true);
2804 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2814 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2805 upload.set_form_signature(13043654279838250996U); 2815 upload.set_form_signature(13043654279838250996U);
2806 upload.set_autofill_used(true); 2816 upload.set_autofill_used(true);
2807 upload.set_data_present("1440"); 2817 upload.set_data_present("1440");
2808 upload.set_action_signature(15724779818122431245U); 2818 upload.set_action_signature(15724779818122431245U);
2809 2819
2810 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", 2820 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text",
2811 nullptr, 3U, nullptr); 2821 nullptr, 3U);
2812 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", 2822 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text",
2813 "family-name", 5U, nullptr); 2823 "family-name", 5U);
2814 test::FillUploadField(upload.add_field(), 1545468175U, "lastname", "email", 2824 test::FillUploadField(upload.add_field(), 1545468175U, "lastname", "email",
2815 "email", 9U, nullptr); 2825 "email", 9U);
2816 2826
2817 std::string expected_upload_string; 2827 std::string expected_upload_string;
2818 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2828 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2819 2829
2820 AutofillUploadContents encoded_upload; 2830 AutofillUploadContents encoded_upload;
2821 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2831 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2822 available_field_types, true, std::string(), true, &encoded_upload)); 2832 available_field_types, true, std::string(), true, &encoded_upload));
2823 2833
2824 std::string encoded_upload_string; 2834 std::string encoded_upload_string;
2825 encoded_upload.SerializeToString(&encoded_upload_string); 2835 encoded_upload.SerializeToString(&encoded_upload_string);
2826 EXPECT_EQ(expected_upload_string, encoded_upload_string); 2836 EXPECT_EQ(expected_upload_string, encoded_upload_string);
2827 } 2837 }
2828 2838
2829 // Sending field metadata to the server is disabled. 2839 // Sending field metadata to the server is disabled.
2830 TEST_F(FormStructureTest, EncodeUploadRequest_DisabledMetadataTrial) { 2840 TEST_F(FormStructureTest, EncodeUploadRequest_DisabledMetadataTrial) {
2831 DisableAutofillMetadataFieldTrial(); 2841 DisableAutofillMetadataFieldTrial();
2832 2842
2833 std::unique_ptr<FormStructure> form_structure; 2843 std::unique_ptr<FormStructure> form_structure;
2834 std::vector<ServerFieldTypeSet> possible_field_types; 2844 std::vector<ServerFieldTypeSet> possible_field_types;
2835 FormData form; 2845 FormData form;
2836 form_structure.reset(new FormStructure(form)); 2846 form_structure.reset(new FormStructure(form));
2837 form_structure->DetermineHeuristicTypes(); 2847 form_structure->DetermineHeuristicTypes();
2838 2848
2839 FormFieldData field; 2849 FormFieldData field;
2840 field.form_control_type = "text"; 2850 field.form_control_type = "text";
2841 2851
2842 field.label = ASCIIToUTF16("First Name"); 2852 field.label = ASCIIToUTF16("First Name");
2843 field.name = ASCIIToUTF16("firstname"); 2853 field.name = ASCIIToUTF16("firstname");
2854 field.id = ASCIIToUTF16("first_name");
2844 field.autocomplete_attribute = "given-name"; 2855 field.autocomplete_attribute = "given-name";
2845 field.css_classes = ASCIIToUTF16("class1 class2"); 2856 field.css_classes = ASCIIToUTF16("class1 class2");
2846 form.fields.push_back(field); 2857 form.fields.push_back(field);
2847 possible_field_types.push_back(ServerFieldTypeSet()); 2858 possible_field_types.push_back(ServerFieldTypeSet());
2848 possible_field_types.back().insert(NAME_FIRST); 2859 possible_field_types.back().insert(NAME_FIRST);
2849 2860
2850 field.label = ASCIIToUTF16("Last Name"); 2861 field.label = ASCIIToUTF16("Last Name");
2851 field.name = ASCIIToUTF16("lastname"); 2862 field.name = ASCIIToUTF16("lastname");
2863 field.id = ASCIIToUTF16("last_name");
2852 field.autocomplete_attribute = "family-name"; 2864 field.autocomplete_attribute = "family-name";
2853 field.css_classes = ASCIIToUTF16("class1 class2"); 2865 field.css_classes = ASCIIToUTF16("class1 class2");
2854 form.fields.push_back(field); 2866 form.fields.push_back(field);
2855 possible_field_types.push_back(ServerFieldTypeSet()); 2867 possible_field_types.push_back(ServerFieldTypeSet());
2856 possible_field_types.back().insert(NAME_LAST); 2868 possible_field_types.back().insert(NAME_LAST);
2857 2869
2858 field.label = ASCIIToUTF16("Email"); 2870 field.label = ASCIIToUTF16("Email");
2859 field.name = ASCIIToUTF16("email"); 2871 field.name = ASCIIToUTF16("email");
2872 field.id = ASCIIToUTF16("e-mail");
2860 field.form_control_type = "email"; 2873 field.form_control_type = "email";
2861 field.autocomplete_attribute = "email"; 2874 field.autocomplete_attribute = "email";
2862 field.css_classes = ASCIIToUTF16("class1 class2"); 2875 field.css_classes = ASCIIToUTF16("class1 class2");
2863 form.fields.push_back(field); 2876 form.fields.push_back(field);
2864 possible_field_types.push_back(ServerFieldTypeSet()); 2877 possible_field_types.push_back(ServerFieldTypeSet());
2865 possible_field_types.back().insert(EMAIL_ADDRESS); 2878 possible_field_types.back().insert(EMAIL_ADDRESS);
2866 2879
2867 form_structure.reset(new FormStructure(form)); 2880 form_structure.reset(new FormStructure(form));
2868 2881
2869 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); 2882 ASSERT_EQ(form_structure->field_count(), possible_field_types.size());
2870 for (size_t i = 0; i < form_structure->field_count(); ++i) 2883 for (size_t i = 0; i < form_structure->field_count(); ++i)
2871 form_structure->field(i)->set_possible_types(possible_field_types[i]); 2884 form_structure->field(i)->set_possible_types(possible_field_types[i]);
2872 2885
2873 ServerFieldTypeSet available_field_types; 2886 ServerFieldTypeSet available_field_types;
2874 available_field_types.insert(NAME_FIRST); 2887 available_field_types.insert(NAME_FIRST);
2875 available_field_types.insert(NAME_LAST); 2888 available_field_types.insert(NAME_LAST);
2876 available_field_types.insert(EMAIL_ADDRESS); 2889 available_field_types.insert(EMAIL_ADDRESS);
2877 2890
2878 // Prepare the expected proto string. 2891 // Prepare the expected proto string.
2879 AutofillUploadContents upload; 2892 AutofillUploadContents upload;
2880 upload.set_submission(true); 2893 upload.set_submission(true);
2881 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2894 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2882 upload.set_form_signature(14746822798145140279U); 2895 upload.set_form_signature(14746822798145140279U);
2883 upload.set_autofill_used(true); 2896 upload.set_autofill_used(true);
2884 upload.set_data_present("1440"); 2897 upload.set_data_present("1440");
2885 2898
2886 test::FillUploadField(upload.add_field(), 3763331450U, nullptr, nullptr, 2899 test::FillUploadField(upload.add_field(), 3763331450U, nullptr, nullptr,
2887 nullptr, 3U, nullptr); 2900 nullptr, 3U);
2888 test::FillUploadField(upload.add_field(), 3494530716U, nullptr, nullptr, 2901 test::FillUploadField(upload.add_field(), 3494530716U, nullptr, nullptr,
2889 nullptr, 5U, nullptr); 2902 nullptr, 5U);
2890 test::FillUploadField(upload.add_field(), 1029417091U, nullptr, nullptr, 2903 test::FillUploadField(upload.add_field(), 1029417091U, nullptr, nullptr,
2891 nullptr, 9U, nullptr); 2904 nullptr, 9U);
2892 2905
2893 std::string expected_upload_string; 2906 std::string expected_upload_string;
2894 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2907 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2895 2908
2896 AutofillUploadContents encoded_upload; 2909 AutofillUploadContents encoded_upload;
2897 EXPECT_TRUE(form_structure->EncodeUploadRequest( 2910 EXPECT_TRUE(form_structure->EncodeUploadRequest(
2898 available_field_types, true, std::string(), true, &encoded_upload)); 2911 available_field_types, true, std::string(), true, &encoded_upload));
2899 2912
2900 std::string encoded_upload_string; 2913 std::string encoded_upload_string;
2901 encoded_upload.SerializeToString(&encoded_upload_string); 2914 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2937 // Prepare the expected proto string. 2950 // Prepare the expected proto string.
2938 AutofillUploadContents upload; 2951 AutofillUploadContents upload;
2939 upload.set_submission(true); 2952 upload.set_submission(true);
2940 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 2953 upload.set_client_version("6.1.1715.1442/en (GGLL)");
2941 upload.set_form_signature(6402244543831589061U); 2954 upload.set_form_signature(6402244543831589061U);
2942 upload.set_autofill_used(false); 2955 upload.set_autofill_used(false);
2943 upload.set_data_present(""); 2956 upload.set_data_present("");
2944 upload.set_action_signature(15724779818122431245U); 2957 upload.set_action_signature(15724779818122431245U);
2945 2958
2946 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", 2959 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text",
2947 nullptr, 1U, nullptr); 2960 nullptr, 1U);
2948 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", 2961 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text",
2949 nullptr, 1U, nullptr); 2962 nullptr, 1U);
2950 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", 2963 test::FillUploadField(upload.add_field(), 420638584U, "email", "text",
2951 nullptr, 1U, nullptr); 2964 nullptr, 1U);
2952 2965
2953 std::string expected_upload_string; 2966 std::string expected_upload_string;
2954 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 2967 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
2955 2968
2956 AutofillUploadContents encoded_upload; 2969 AutofillUploadContents encoded_upload;
2957 EXPECT_TRUE(form_structure.EncodeUploadRequest( 2970 EXPECT_TRUE(form_structure.EncodeUploadRequest(
2958 available_field_types, false, std::string(), true, &encoded_upload)); 2971 available_field_types, false, std::string(), true, &encoded_upload));
2959 2972
2960 std::string encoded_upload_string; 2973 std::string encoded_upload_string;
2961 encoded_upload.SerializeToString(&encoded_upload_string); 2974 encoded_upload.SerializeToString(&encoded_upload_string);
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
3205 // Prepare the expected proto string. 3218 // Prepare the expected proto string.
3206 AutofillUploadContents upload; 3219 AutofillUploadContents upload;
3207 upload.set_submission(true); 3220 upload.set_submission(true);
3208 upload.set_client_version("6.1.1715.1442/en (GGLL)"); 3221 upload.set_client_version("6.1.1715.1442/en (GGLL)");
3209 upload.set_form_signature(18062476096658145866U); 3222 upload.set_form_signature(18062476096658145866U);
3210 upload.set_autofill_used(false); 3223 upload.set_autofill_used(false);
3211 upload.set_data_present("1440000360000008"); 3224 upload.set_data_present("1440000360000008");
3212 upload.set_action_signature(15724779818122431245U); 3225 upload.set_action_signature(15724779818122431245U);
3213 3226
3214 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", 3227 test::FillUploadField(upload.add_field(), 420638584U, "email", "text",
3215 nullptr, 9U, nullptr); 3228 nullptr, 9U);
3216 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", 3229 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text",
3217 nullptr, 3U, nullptr); 3230 nullptr, 3U);
3218 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", 3231 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text",
3219 nullptr, 5U, nullptr); 3232 nullptr, 5U);
3220 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", 3233 test::FillUploadField(upload.add_field(), 509334676U, "address", "text",
3221 nullptr, 30U, nullptr); 3234 nullptr, 30U);
3222 3235
3223 std::string expected_upload_string; 3236 std::string expected_upload_string;
3224 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 3237 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
3225 3238
3226 AutofillUploadContents encoded_upload; 3239 AutofillUploadContents encoded_upload;
3227 EXPECT_TRUE(form_structure->EncodeUploadRequest( 3240 EXPECT_TRUE(form_structure->EncodeUploadRequest(
3228 available_field_types, false, std::string(), true, &encoded_upload)); 3241 available_field_types, false, std::string(), true, &encoded_upload));
3229 3242
3230 std::string encoded_upload_string; 3243 std::string encoded_upload_string;
3231 encoded_upload.SerializeToString(&encoded_upload_string); 3244 encoded_upload.SerializeToString(&encoded_upload_string);
3232 EXPECT_EQ(expected_upload_string, encoded_upload_string); 3245 EXPECT_EQ(expected_upload_string, encoded_upload_string);
3233 3246
3234 // Match third field as both first and last. 3247 // Match third field as both first and last.
3235 possible_field_types[2].insert(NAME_FIRST); 3248 possible_field_types[2].insert(NAME_FIRST);
3236 form_structure->field(2)->set_possible_types(possible_field_types[2]); 3249 form_structure->field(2)->set_possible_types(possible_field_types[2]);
3237 3250
3238 // Modify the expected upload. 3251 // Modify the expected upload.
3239 // Put the NAME_FIRST prediction on the third field. 3252 // Put the NAME_FIRST prediction on the third field.
3240 upload.mutable_field(2)->set_autofill_type(3); 3253 upload.mutable_field(2)->set_autofill_type(3);
3241 // Replace the fourth field by the old third field. 3254 // Replace the fourth field by the old third field.
3242 test::FillUploadField(upload.mutable_field(3), 2404144663U, "last", "text", 3255 test::FillUploadField(upload.mutable_field(3), 2404144663U, "last", "text",
3243 nullptr, 5U, nullptr); 3256 nullptr, 5U);
3244 // Re-add the old fourth field. 3257 // Re-add the old fourth field.
3245 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", 3258 test::FillUploadField(upload.add_field(), 509334676U, "address", "text",
3246 nullptr, 30U, nullptr); 3259 nullptr, 30U);
3247 3260
3248 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 3261 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
3249 3262
3250 AutofillUploadContents encoded_upload2; 3263 AutofillUploadContents encoded_upload2;
3251 EXPECT_TRUE(form_structure->EncodeUploadRequest( 3264 EXPECT_TRUE(form_structure->EncodeUploadRequest(
3252 available_field_types, false, std::string(), true, &encoded_upload2)); 3265 available_field_types, false, std::string(), true, &encoded_upload2));
3253 3266
3254 encoded_upload2.SerializeToString(&encoded_upload_string); 3267 encoded_upload2.SerializeToString(&encoded_upload_string);
3255 EXPECT_EQ(expected_upload_string, encoded_upload_string); 3268 EXPECT_EQ(expected_upload_string, encoded_upload_string);
3256 3269
3257 // Match last field as both address home line 1 and 2. 3270 // Match last field as both address home line 1 and 2.
3258 possible_field_types[3].insert(ADDRESS_HOME_LINE2); 3271 possible_field_types[3].insert(ADDRESS_HOME_LINE2);
3259 form_structure->field(form_structure->field_count() - 1)->set_possible_types( 3272 form_structure->field(form_structure->field_count() - 1)->set_possible_types(
3260 possible_field_types[form_structure->field_count() - 1]); 3273 possible_field_types[form_structure->field_count() - 1]);
3261 3274
3262 // Adjust the expected upload proto. 3275 // Adjust the expected upload proto.
3263 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", 3276 test::FillUploadField(upload.add_field(), 509334676U, "address", "text",
3264 nullptr, 31U, nullptr); 3277 nullptr, 31U);
3265 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); 3278 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string));
3266 3279
3267 AutofillUploadContents encoded_upload3; 3280 AutofillUploadContents encoded_upload3;
3268 EXPECT_TRUE(form_structure->EncodeUploadRequest( 3281 EXPECT_TRUE(form_structure->EncodeUploadRequest(
3269 available_field_types, false, std::string(), true, &encoded_upload3)); 3282 available_field_types, false, std::string(), true, &encoded_upload3));
3270 3283
3271 encoded_upload3.SerializeToString(&encoded_upload_string); 3284 encoded_upload3.SerializeToString(&encoded_upload_string);
3272 EXPECT_EQ(expected_upload_string, encoded_upload_string); 3285 EXPECT_EQ(expected_upload_string, encoded_upload_string);
3273 3286
3274 // Replace the address line 2 prediction by company name. 3287 // Replace the address line 2 prediction by company name.
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
3813 prefix = FormStructure::FindLongestCommonPrefix(strings); 3826 prefix = FormStructure::FindLongestCommonPrefix(strings);
3814 EXPECT_EQ(ASCIIToUTF16("1234567890123456"), prefix); 3827 EXPECT_EQ(ASCIIToUTF16("1234567890123456"), prefix);
3815 3828
3816 // Empty vector. 3829 // Empty vector.
3817 strings.clear(); 3830 strings.clear();
3818 prefix = FormStructure::FindLongestCommonPrefix(strings); 3831 prefix = FormStructure::FindLongestCommonPrefix(strings);
3819 EXPECT_EQ(ASCIIToUTF16(""), prefix); 3832 EXPECT_EQ(ASCIIToUTF16(""), prefix);
3820 } 3833 }
3821 3834
3822 } // namespace autofill 3835 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698