| OLD | NEW |
| 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 2043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2054 // Prepare the expected proto string. | 2054 // Prepare the expected proto string. |
| 2055 AutofillUploadContents upload; | 2055 AutofillUploadContents upload; |
| 2056 upload.set_submission(true); | 2056 upload.set_submission(true); |
| 2057 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2057 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2058 upload.set_form_signature(8736493185895608956U); | 2058 upload.set_form_signature(8736493185895608956U); |
| 2059 upload.set_autofill_used(false); | 2059 upload.set_autofill_used(false); |
| 2060 upload.set_data_present("144200030e"); | 2060 upload.set_data_present("144200030e"); |
| 2061 upload.set_action_signature(15724779818122431245U); | 2061 upload.set_action_signature(15724779818122431245U); |
| 2062 | 2062 |
| 2063 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", | 2063 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", |
| 2064 "First Name", nullptr, 3U); | 2064 "First Name", nullptr, 3U, nullptr); |
| 2065 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", | 2065 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", |
| 2066 "Last Name", nullptr, 5U); | 2066 "Last Name", nullptr, 5U, nullptr); |
| 2067 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", | 2067 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", |
| 2068 "Email", nullptr, 9U); | 2068 "Email", nullptr, 9U, nullptr); |
| 2069 test::FillUploadField(upload.add_field(), 466116101U, "phone", "number", | 2069 test::FillUploadField(upload.add_field(), 466116101U, "phone", "number", |
| 2070 "Phone", nullptr, 14U); | 2070 "Phone", nullptr, 14U, nullptr); |
| 2071 test::FillUploadField(upload.add_field(), 2799270304U, "country", | 2071 test::FillUploadField(upload.add_field(), 2799270304U, "country", |
| 2072 "select-one", "Country", nullptr, 36U); | 2072 "select-one", "Country", nullptr, 36U, nullptr); |
| 2073 | 2073 |
| 2074 std::string expected_upload_string; | 2074 std::string expected_upload_string; |
| 2075 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2075 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2076 | 2076 |
| 2077 AutofillUploadContents encoded_upload; | 2077 AutofillUploadContents encoded_upload; |
| 2078 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2078 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2079 available_field_types, false, std::string(), true, &encoded_upload)); | 2079 available_field_types, false, std::string(), true, &encoded_upload)); |
| 2080 | 2080 |
| 2081 std::string encoded_upload_string; | 2081 std::string encoded_upload_string; |
| 2082 encoded_upload.SerializeToString(&encoded_upload_string); | 2082 encoded_upload.SerializeToString(&encoded_upload_string); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2110 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 2110 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
| 2111 for (size_t i = 0; i < form_structure->field_count(); ++i) | 2111 for (size_t i = 0; i < form_structure->field_count(); ++i) |
| 2112 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 2112 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
| 2113 | 2113 |
| 2114 // Adjust the expected proto string. | 2114 // Adjust the expected proto string. |
| 2115 upload.set_form_signature(7816485729218079147U); | 2115 upload.set_form_signature(7816485729218079147U); |
| 2116 upload.set_autofill_used(false); | 2116 upload.set_autofill_used(false); |
| 2117 // Create an additonal 8 fields (total of 13). | 2117 // Create an additonal 8 fields (total of 13). |
| 2118 for (int i = 0; i < 8; ++i) { | 2118 for (int i = 0; i < 8; ++i) { |
| 2119 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", | 2119 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", |
| 2120 "Address", nullptr, 30U); | 2120 "Address", nullptr, 30U, nullptr); |
| 2121 } | 2121 } |
| 2122 // Put the appropriate autofill type on the different address fields. | 2122 // Put the appropriate autofill type on the different address fields. |
| 2123 upload.mutable_field(6)->set_autofill_type(31U); | 2123 upload.mutable_field(6)->set_autofill_type(31U); |
| 2124 upload.mutable_field(7)->set_autofill_type(37U); | 2124 upload.mutable_field(7)->set_autofill_type(37U); |
| 2125 upload.mutable_field(8)->set_autofill_type(38U); | 2125 upload.mutable_field(8)->set_autofill_type(38U); |
| 2126 upload.mutable_field(10)->set_autofill_type(31U); | 2126 upload.mutable_field(10)->set_autofill_type(31U); |
| 2127 upload.mutable_field(11)->set_autofill_type(37U); | 2127 upload.mutable_field(11)->set_autofill_type(37U); |
| 2128 upload.mutable_field(12)->set_autofill_type(38U); | 2128 upload.mutable_field(12)->set_autofill_type(38U); |
| 2129 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2129 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2130 | 2130 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2224 AutofillUploadContents upload; | 2224 AutofillUploadContents upload; |
| 2225 upload.set_submission(true); | 2225 upload.set_submission(true); |
| 2226 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2226 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2227 upload.set_form_signature(5810032074788446513U); | 2227 upload.set_form_signature(5810032074788446513U); |
| 2228 upload.set_autofill_used(true); | 2228 upload.set_autofill_used(true); |
| 2229 upload.set_data_present("1440000000000000000802"); | 2229 upload.set_data_present("1440000000000000000802"); |
| 2230 upload.set_action_signature(15724779818122431245U); | 2230 upload.set_action_signature(15724779818122431245U); |
| 2231 upload.set_login_form_signature(42); | 2231 upload.set_login_form_signature(42); |
| 2232 | 2232 |
| 2233 test::FillUploadField(upload.add_field(), 4224610201U, "firstname", "", | 2233 test::FillUploadField(upload.add_field(), 4224610201U, "firstname", "", |
| 2234 "First Name", "given-name", 3U); | 2234 "First Name", "given-name", 3U, nullptr); |
| 2235 test::FillUploadField(upload.add_field(), 2786066110U, "lastname", "", | 2235 test::FillUploadField(upload.add_field(), 2786066110U, "lastname", "", |
| 2236 "Last Name", "family-name", 5U); | 2236 "Last Name", "family-name", 5U, nullptr); |
| 2237 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", | 2237 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", |
| 2238 "Email", "email", 9U); | 2238 "Email", "email", 9U, nullptr); |
| 2239 test::FillUploadField(upload.add_field(), 239111655U, "username", "text", | 2239 test::FillUploadField(upload.add_field(), 239111655U, "username", "text", |
| 2240 "username", "email", 86U); | 2240 "username", "email", 86U, nullptr); |
| 2241 auto* upload_password_field = upload.add_field(); | 2241 auto* upload_password_field = upload.add_field(); |
| 2242 test::FillUploadField(upload_password_field, 2051817934U, "password", | 2242 test::FillUploadField(upload_password_field, 2051817934U, "password", |
| 2243 "password", "password", "email", 76U); | 2243 "password", "password", "email", 76U, nullptr); |
| 2244 upload_password_field->set_generation_type( | 2244 upload_password_field->set_generation_type( |
| 2245 autofill::AutofillUploadContents::Field:: | 2245 autofill::AutofillUploadContents::Field:: |
| 2246 MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM); | 2246 MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM); |
| 2247 | 2247 |
| 2248 std::string expected_upload_string; | 2248 std::string expected_upload_string; |
| 2249 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2249 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2250 | 2250 |
| 2251 AutofillUploadContents encoded_upload; | 2251 AutofillUploadContents encoded_upload; |
| 2252 EXPECT_TRUE(form_structure->EncodeUploadRequest(available_field_types, true, | 2252 EXPECT_TRUE(form_structure->EncodeUploadRequest(available_field_types, true, |
| 2253 "42", true, &encoded_upload)); | 2253 "42", true, &encoded_upload)); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2303 // Prepare the expected proto string. | 2303 // Prepare the expected proto string. |
| 2304 AutofillUploadContents upload; | 2304 AutofillUploadContents upload; |
| 2305 upload.set_submission(true); | 2305 upload.set_submission(true); |
| 2306 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2306 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2307 upload.set_form_signature(14746822798145140279U); | 2307 upload.set_form_signature(14746822798145140279U); |
| 2308 upload.set_autofill_used(true); | 2308 upload.set_autofill_used(true); |
| 2309 upload.set_data_present("1440"); | 2309 upload.set_data_present("1440"); |
| 2310 upload.set_action_signature(15724779818122431245U); | 2310 upload.set_action_signature(15724779818122431245U); |
| 2311 | 2311 |
| 2312 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", | 2312 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", |
| 2313 "First Name", "given-name", 3U); | 2313 "First Name", "given-name", 3U, nullptr); |
| 2314 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", | 2314 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", |
| 2315 "Last Name", "family-name", 5U); | 2315 "Last Name", "family-name", 5U, nullptr); |
| 2316 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", | 2316 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", |
| 2317 "Email", "email", 9U); | 2317 "Email", "email", 9U, nullptr); |
| 2318 | 2318 |
| 2319 std::string expected_upload_string; | 2319 std::string expected_upload_string; |
| 2320 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2320 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2321 | 2321 |
| 2322 AutofillUploadContents encoded_upload; | 2322 AutofillUploadContents encoded_upload; |
| 2323 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2323 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2324 available_field_types, true, std::string(), true, &encoded_upload)); | 2324 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2325 | 2325 |
| 2326 std::string encoded_upload_string; | 2326 std::string encoded_upload_string; |
| 2327 encoded_upload.SerializeToString(&encoded_upload_string); | 2327 encoded_upload.SerializeToString(&encoded_upload_string); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2371 // Prepare the expected proto string. | 2371 // Prepare the expected proto string. |
| 2372 AutofillUploadContents upload; | 2372 AutofillUploadContents upload; |
| 2373 upload.set_submission(false); | 2373 upload.set_submission(false); |
| 2374 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2374 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2375 upload.set_form_signature(14746822798145140279U); | 2375 upload.set_form_signature(14746822798145140279U); |
| 2376 upload.set_autofill_used(true); | 2376 upload.set_autofill_used(true); |
| 2377 upload.set_data_present("1440"); | 2377 upload.set_data_present("1440"); |
| 2378 upload.set_action_signature(15724779818122431245U); | 2378 upload.set_action_signature(15724779818122431245U); |
| 2379 | 2379 |
| 2380 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", | 2380 test::FillUploadField(upload.add_field(), 3763331450U, "firstname", "text", |
| 2381 "First Name", nullptr, 3U); | 2381 "First Name", nullptr, 3U, nullptr); |
| 2382 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", | 2382 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", |
| 2383 "Last Name", nullptr, 5U); | 2383 "Last Name", nullptr, 5U, nullptr); |
| 2384 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", | 2384 test::FillUploadField(upload.add_field(), 1029417091U, "email", "email", |
| 2385 "Email", nullptr, 9U); | 2385 "Email", nullptr, 9U, nullptr); |
| 2386 | 2386 |
| 2387 std::string expected_upload_string; | 2387 std::string expected_upload_string; |
| 2388 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2388 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2389 | 2389 |
| 2390 AutofillUploadContents encoded_upload; | 2390 AutofillUploadContents encoded_upload; |
| 2391 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2391 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2392 available_field_types, true, std::string(), | 2392 available_field_types, true, std::string(), |
| 2393 /* observed_submission= */ false, &encoded_upload)); | 2393 /* observed_submission= */ false, &encoded_upload)); |
| 2394 | 2394 |
| 2395 std::string encoded_upload_string; | 2395 std::string encoded_upload_string; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2436 // Prepare the expected proto string. | 2436 // Prepare the expected proto string. |
| 2437 AutofillUploadContents upload; | 2437 AutofillUploadContents upload; |
| 2438 upload.set_submission(true); | 2438 upload.set_submission(true); |
| 2439 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2439 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2440 upload.set_form_signature(6949133589768631292U); | 2440 upload.set_form_signature(6949133589768631292U); |
| 2441 upload.set_autofill_used(true); | 2441 upload.set_autofill_used(true); |
| 2442 upload.set_data_present("1440"); | 2442 upload.set_data_present("1440"); |
| 2443 upload.set_action_signature(15724779818122431245U); | 2443 upload.set_action_signature(15724779818122431245U); |
| 2444 | 2444 |
| 2445 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2445 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2446 nullptr, nullptr, 3U); | 2446 nullptr, nullptr, 3U, nullptr); |
| 2447 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2447 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2448 "Last Name", nullptr, 5U); | 2448 "Last Name", nullptr, 5U, nullptr); |
| 2449 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2449 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2450 "Email", nullptr, 9U); | 2450 "Email", nullptr, 9U, nullptr); |
| 2451 | 2451 |
| 2452 std::string expected_upload_string; | 2452 std::string expected_upload_string; |
| 2453 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2453 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2454 |
| 2455 AutofillUploadContents encoded_upload; |
| 2456 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2457 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2458 |
| 2459 std::string encoded_upload_string; |
| 2460 encoded_upload.SerializeToString(&encoded_upload_string); |
| 2461 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 2462 } |
| 2463 |
| 2464 TEST_F(FormStructureTest, EncodeUploadRequest_WithCssClasses) { |
| 2465 std::vector<ServerFieldTypeSet> possible_field_types; |
| 2466 FormData form; |
| 2467 |
| 2468 FormFieldData field; |
| 2469 field.form_control_type = "text"; |
| 2470 |
| 2471 form.fields.push_back(field); |
| 2472 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2473 possible_field_types.back().insert(NAME_FIRST); |
| 2474 |
| 2475 field.css_classes = ASCIIToUTF16("last_name_field"); |
| 2476 form.fields.push_back(field); |
| 2477 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2478 possible_field_types.back().insert(NAME_LAST); |
| 2479 |
| 2480 field.css_classes = ASCIIToUTF16("email_field required_field"); |
| 2481 form.fields.push_back(field); |
| 2482 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2483 possible_field_types.back().insert(EMAIL_ADDRESS); |
| 2484 |
| 2485 std::unique_ptr<FormStructure> form_structure(new FormStructure(form)); |
| 2486 |
| 2487 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
| 2488 for (size_t i = 0; i < form_structure->field_count(); ++i) |
| 2489 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
| 2490 |
| 2491 ServerFieldTypeSet available_field_types; |
| 2492 available_field_types.insert(NAME_FIRST); |
| 2493 available_field_types.insert(NAME_LAST); |
| 2494 available_field_types.insert(EMAIL_ADDRESS); |
| 2495 |
| 2496 // Prepare the expected proto string. |
| 2497 AutofillUploadContents upload; |
| 2498 upload.set_submission(true); |
| 2499 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2500 upload.set_form_signature(6949133589768631292U); |
| 2501 upload.set_autofill_used(true); |
| 2502 upload.set_data_present("1440"); |
| 2503 upload.set_action_signature(15724779818122431245U); |
| 2504 |
| 2505 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2506 nullptr, nullptr, 3U, nullptr); |
| 2507 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2508 nullptr, nullptr, 5U, "last_name_field"); |
| 2509 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2510 nullptr, nullptr, 9U, "email_field required_field"); |
| 2511 |
| 2512 std::string expected_upload_string; |
| 2513 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2454 | 2514 |
| 2455 AutofillUploadContents encoded_upload; | 2515 AutofillUploadContents encoded_upload; |
| 2456 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2516 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2457 available_field_types, true, std::string(), true, &encoded_upload)); | 2517 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2458 | 2518 |
| 2459 std::string encoded_upload_string; | 2519 std::string encoded_upload_string; |
| 2460 encoded_upload.SerializeToString(&encoded_upload_string); | 2520 encoded_upload.SerializeToString(&encoded_upload_string); |
| 2461 EXPECT_EQ(expected_upload_string, encoded_upload_string); | 2521 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 2462 } | 2522 } |
| 2463 | 2523 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2501 AutofillUploadContents upload; | 2561 AutofillUploadContents upload; |
| 2502 upload.set_submission(true); | 2562 upload.set_submission(true); |
| 2503 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2563 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2504 upload.set_form_signature(2345951786066580868U); | 2564 upload.set_form_signature(2345951786066580868U); |
| 2505 upload.set_autofill_used(true); | 2565 upload.set_autofill_used(true); |
| 2506 upload.set_data_present("1440"); | 2566 upload.set_data_present("1440"); |
| 2507 upload.set_action_signature(15724779818122431245U); | 2567 upload.set_action_signature(15724779818122431245U); |
| 2508 upload.set_form_name("myform"); | 2568 upload.set_form_name("myform"); |
| 2509 | 2569 |
| 2510 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2570 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2511 nullptr, nullptr, 3U); | 2571 nullptr, nullptr, 3U, nullptr); |
| 2512 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2572 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2513 nullptr, nullptr, 5U); | 2573 nullptr, nullptr, 5U, nullptr); |
| 2514 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2574 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2515 nullptr, nullptr, 9U); | 2575 nullptr, nullptr, 9U, nullptr); |
| 2516 | 2576 |
| 2517 std::string expected_upload_string; | 2577 std::string expected_upload_string; |
| 2518 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2578 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2519 | 2579 |
| 2520 AutofillUploadContents encoded_upload; | 2580 AutofillUploadContents encoded_upload; |
| 2521 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2581 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2522 available_field_types, true, std::string(), true, &encoded_upload)); | 2582 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2523 | 2583 |
| 2524 std::string encoded_upload_string; | 2584 std::string encoded_upload_string; |
| 2525 encoded_upload.SerializeToString(&encoded_upload_string); | 2585 encoded_upload.SerializeToString(&encoded_upload_string); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2571 // Prepare the expected proto string. | 2631 // Prepare the expected proto string. |
| 2572 AutofillUploadContents upload; | 2632 AutofillUploadContents upload; |
| 2573 upload.set_submission(true); | 2633 upload.set_submission(true); |
| 2574 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2634 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2575 upload.set_form_signature(13043654279838250996U); | 2635 upload.set_form_signature(13043654279838250996U); |
| 2576 upload.set_autofill_used(true); | 2636 upload.set_autofill_used(true); |
| 2577 upload.set_data_present("1440"); | 2637 upload.set_data_present("1440"); |
| 2578 upload.set_action_signature(15724779818122431245U); | 2638 upload.set_action_signature(15724779818122431245U); |
| 2579 | 2639 |
| 2580 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", | 2640 test::FillUploadField(upload.add_field(), 1318412689U, nullptr, "text", |
| 2581 nullptr, nullptr, 3U); | 2641 nullptr, nullptr, 3U, nullptr); |
| 2582 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", | 2642 test::FillUploadField(upload.add_field(), 3494530716U, "lastname", "text", |
| 2583 "Last Name", "family-name", 5U); | 2643 "Last Name", "family-name", 5U, nullptr); |
| 2584 test::FillUploadField(upload.add_field(), 1545468175U, "lastname", "email", | 2644 test::FillUploadField(upload.add_field(), 1545468175U, "lastname", "email", |
| 2585 "Email", "email", 9U); | 2645 "Email", "email", 9U, nullptr); |
| 2586 | 2646 |
| 2587 std::string expected_upload_string; | 2647 std::string expected_upload_string; |
| 2588 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2648 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2589 | 2649 |
| 2590 AutofillUploadContents encoded_upload; | 2650 AutofillUploadContents encoded_upload; |
| 2591 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2651 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2592 available_field_types, true, std::string(), true, &encoded_upload)); | 2652 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2593 | 2653 |
| 2594 std::string encoded_upload_string; | 2654 std::string encoded_upload_string; |
| 2595 encoded_upload.SerializeToString(&encoded_upload_string); | 2655 encoded_upload.SerializeToString(&encoded_upload_string); |
| 2596 EXPECT_EQ(expected_upload_string, encoded_upload_string); | 2656 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 2597 } | 2657 } |
| 2598 | 2658 |
| 2599 // Sending field metadata to the server is disabled. | 2659 // Sending field metadata to the server is disabled. |
| 2600 TEST_F(FormStructureTest, EncodeUploadRequest_DisabledMetadataTrial) { | 2660 TEST_F(FormStructureTest, EncodeUploadRequest_DisabledMetadataTrial) { |
| 2601 DisableAutofillMetadataFieldTrial(); | 2661 DisableAutofillMetadataFieldTrial(); |
| 2602 | 2662 |
| 2603 std::unique_ptr<FormStructure> form_structure; | 2663 std::unique_ptr<FormStructure> form_structure; |
| 2604 std::vector<ServerFieldTypeSet> possible_field_types; | 2664 std::vector<ServerFieldTypeSet> possible_field_types; |
| 2605 FormData form; | 2665 FormData form; |
| 2606 form_structure.reset(new FormStructure(form)); | 2666 form_structure.reset(new FormStructure(form)); |
| 2607 form_structure->DetermineHeuristicTypes(); | 2667 form_structure->DetermineHeuristicTypes(); |
| 2608 | 2668 |
| 2609 FormFieldData field; | 2669 FormFieldData field; |
| 2610 field.form_control_type = "text"; | 2670 field.form_control_type = "text"; |
| 2611 | 2671 |
| 2612 field.label = ASCIIToUTF16("First Name"); | 2672 field.label = ASCIIToUTF16("First Name"); |
| 2613 field.name = ASCIIToUTF16("firstname"); | 2673 field.name = ASCIIToUTF16("firstname"); |
| 2614 field.autocomplete_attribute = "given-name"; | 2674 field.autocomplete_attribute = "given-name"; |
| 2675 field.css_classes = ASCIIToUTF16("class1 class2"); |
| 2615 form.fields.push_back(field); | 2676 form.fields.push_back(field); |
| 2616 possible_field_types.push_back(ServerFieldTypeSet()); | 2677 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2617 possible_field_types.back().insert(NAME_FIRST); | 2678 possible_field_types.back().insert(NAME_FIRST); |
| 2618 | 2679 |
| 2619 field.label = ASCIIToUTF16("Last Name"); | 2680 field.label = ASCIIToUTF16("Last Name"); |
| 2620 field.name = ASCIIToUTF16("lastname"); | 2681 field.name = ASCIIToUTF16("lastname"); |
| 2621 field.autocomplete_attribute = "family-name"; | 2682 field.autocomplete_attribute = "family-name"; |
| 2683 field.css_classes = ASCIIToUTF16("class1 class2"); |
| 2622 form.fields.push_back(field); | 2684 form.fields.push_back(field); |
| 2623 possible_field_types.push_back(ServerFieldTypeSet()); | 2685 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2624 possible_field_types.back().insert(NAME_LAST); | 2686 possible_field_types.back().insert(NAME_LAST); |
| 2625 | 2687 |
| 2626 field.label = ASCIIToUTF16("Email"); | 2688 field.label = ASCIIToUTF16("Email"); |
| 2627 field.name = ASCIIToUTF16("email"); | 2689 field.name = ASCIIToUTF16("email"); |
| 2628 field.form_control_type = "email"; | 2690 field.form_control_type = "email"; |
| 2629 field.autocomplete_attribute = "email"; | 2691 field.autocomplete_attribute = "email"; |
| 2692 field.css_classes = ASCIIToUTF16("class1 class2"); |
| 2630 form.fields.push_back(field); | 2693 form.fields.push_back(field); |
| 2631 possible_field_types.push_back(ServerFieldTypeSet()); | 2694 possible_field_types.push_back(ServerFieldTypeSet()); |
| 2632 possible_field_types.back().insert(EMAIL_ADDRESS); | 2695 possible_field_types.back().insert(EMAIL_ADDRESS); |
| 2633 | 2696 |
| 2634 form_structure.reset(new FormStructure(form)); | 2697 form_structure.reset(new FormStructure(form)); |
| 2635 | 2698 |
| 2636 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 2699 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
| 2637 for (size_t i = 0; i < form_structure->field_count(); ++i) | 2700 for (size_t i = 0; i < form_structure->field_count(); ++i) |
| 2638 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 2701 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
| 2639 | 2702 |
| 2640 ServerFieldTypeSet available_field_types; | 2703 ServerFieldTypeSet available_field_types; |
| 2641 available_field_types.insert(NAME_FIRST); | 2704 available_field_types.insert(NAME_FIRST); |
| 2642 available_field_types.insert(NAME_LAST); | 2705 available_field_types.insert(NAME_LAST); |
| 2643 available_field_types.insert(EMAIL_ADDRESS); | 2706 available_field_types.insert(EMAIL_ADDRESS); |
| 2644 | 2707 |
| 2645 // Prepare the expected proto string. | 2708 // Prepare the expected proto string. |
| 2646 AutofillUploadContents upload; | 2709 AutofillUploadContents upload; |
| 2647 upload.set_submission(true); | 2710 upload.set_submission(true); |
| 2648 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2711 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2649 upload.set_form_signature(14746822798145140279U); | 2712 upload.set_form_signature(14746822798145140279U); |
| 2650 upload.set_autofill_used(true); | 2713 upload.set_autofill_used(true); |
| 2651 upload.set_data_present("1440"); | 2714 upload.set_data_present("1440"); |
| 2652 | 2715 |
| 2653 test::FillUploadField(upload.add_field(), 3763331450U, nullptr, nullptr, | 2716 test::FillUploadField(upload.add_field(), 3763331450U, nullptr, nullptr, |
| 2654 nullptr, nullptr, 3U); | 2717 nullptr, nullptr, 3U, nullptr); |
| 2655 test::FillUploadField(upload.add_field(), 3494530716U, nullptr, nullptr, | 2718 test::FillUploadField(upload.add_field(), 3494530716U, nullptr, nullptr, |
| 2656 nullptr, nullptr, 5U); | 2719 nullptr, nullptr, 5U, nullptr); |
| 2657 test::FillUploadField(upload.add_field(), 1029417091U, nullptr, nullptr, | 2720 test::FillUploadField(upload.add_field(), 1029417091U, nullptr, nullptr, |
| 2658 nullptr, nullptr, 9U); | 2721 nullptr, nullptr, 9U, nullptr); |
| 2659 | 2722 |
| 2660 std::string expected_upload_string; | 2723 std::string expected_upload_string; |
| 2661 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2724 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2662 | 2725 |
| 2663 AutofillUploadContents encoded_upload; | 2726 AutofillUploadContents encoded_upload; |
| 2664 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 2727 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2665 available_field_types, true, std::string(), true, &encoded_upload)); | 2728 available_field_types, true, std::string(), true, &encoded_upload)); |
| 2666 | 2729 |
| 2667 std::string encoded_upload_string; | 2730 std::string encoded_upload_string; |
| 2668 encoded_upload.SerializeToString(&encoded_upload_string); | 2731 encoded_upload.SerializeToString(&encoded_upload_string); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2704 // Prepare the expected proto string. | 2767 // Prepare the expected proto string. |
| 2705 AutofillUploadContents upload; | 2768 AutofillUploadContents upload; |
| 2706 upload.set_submission(true); | 2769 upload.set_submission(true); |
| 2707 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 2770 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2708 upload.set_form_signature(6402244543831589061U); | 2771 upload.set_form_signature(6402244543831589061U); |
| 2709 upload.set_autofill_used(false); | 2772 upload.set_autofill_used(false); |
| 2710 upload.set_data_present(""); | 2773 upload.set_data_present(""); |
| 2711 upload.set_action_signature(15724779818122431245U); | 2774 upload.set_action_signature(15724779818122431245U); |
| 2712 | 2775 |
| 2713 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", | 2776 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", |
| 2714 "First Name", nullptr, 1U); | 2777 "First Name", nullptr, 1U, nullptr); |
| 2715 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", | 2778 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", |
| 2716 "Last Name", nullptr, 1U); | 2779 "Last Name", nullptr, 1U, nullptr); |
| 2717 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", | 2780 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", |
| 2718 "Email", nullptr, 1U); | 2781 "Email", nullptr, 1U, nullptr); |
| 2719 | 2782 |
| 2720 std::string expected_upload_string; | 2783 std::string expected_upload_string; |
| 2721 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 2784 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2722 | 2785 |
| 2723 AutofillUploadContents encoded_upload; | 2786 AutofillUploadContents encoded_upload; |
| 2724 EXPECT_TRUE(form_structure.EncodeUploadRequest( | 2787 EXPECT_TRUE(form_structure.EncodeUploadRequest( |
| 2725 available_field_types, false, std::string(), true, &encoded_upload)); | 2788 available_field_types, false, std::string(), true, &encoded_upload)); |
| 2726 | 2789 |
| 2727 std::string encoded_upload_string; | 2790 std::string encoded_upload_string; |
| 2728 encoded_upload.SerializeToString(&encoded_upload_string); | 2791 encoded_upload.SerializeToString(&encoded_upload_string); |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2972 // Prepare the expected proto string. | 3035 // Prepare the expected proto string. |
| 2973 AutofillUploadContents upload; | 3036 AutofillUploadContents upload; |
| 2974 upload.set_submission(true); | 3037 upload.set_submission(true); |
| 2975 upload.set_client_version("6.1.1715.1442/en (GGLL)"); | 3038 upload.set_client_version("6.1.1715.1442/en (GGLL)"); |
| 2976 upload.set_form_signature(18062476096658145866U); | 3039 upload.set_form_signature(18062476096658145866U); |
| 2977 upload.set_autofill_used(false); | 3040 upload.set_autofill_used(false); |
| 2978 upload.set_data_present("1440000360000008"); | 3041 upload.set_data_present("1440000360000008"); |
| 2979 upload.set_action_signature(15724779818122431245U); | 3042 upload.set_action_signature(15724779818122431245U); |
| 2980 | 3043 |
| 2981 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", | 3044 test::FillUploadField(upload.add_field(), 420638584U, "email", "text", |
| 2982 "email", nullptr, 9U); | 3045 "email", nullptr, 9U, nullptr); |
| 2983 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", | 3046 test::FillUploadField(upload.add_field(), 1089846351U, "first", "text", |
| 2984 "First Name", nullptr, 3U); | 3047 "First Name", nullptr, 3U, nullptr); |
| 2985 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", | 3048 test::FillUploadField(upload.add_field(), 2404144663U, "last", "text", |
| 2986 "Last Name", nullptr, 5U); | 3049 "Last Name", nullptr, 5U, nullptr); |
| 2987 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", | 3050 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", |
| 2988 "Address", nullptr, 30U); | 3051 "Address", nullptr, 30U, nullptr); |
| 2989 | 3052 |
| 2990 std::string expected_upload_string; | 3053 std::string expected_upload_string; |
| 2991 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 3054 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 2992 | 3055 |
| 2993 AutofillUploadContents encoded_upload; | 3056 AutofillUploadContents encoded_upload; |
| 2994 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 3057 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 2995 available_field_types, false, std::string(), true, &encoded_upload)); | 3058 available_field_types, false, std::string(), true, &encoded_upload)); |
| 2996 | 3059 |
| 2997 std::string encoded_upload_string; | 3060 std::string encoded_upload_string; |
| 2998 encoded_upload.SerializeToString(&encoded_upload_string); | 3061 encoded_upload.SerializeToString(&encoded_upload_string); |
| 2999 EXPECT_EQ(expected_upload_string, encoded_upload_string); | 3062 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 3000 | 3063 |
| 3001 // Match third field as both first and last. | 3064 // Match third field as both first and last. |
| 3002 possible_field_types[2].insert(NAME_FIRST); | 3065 possible_field_types[2].insert(NAME_FIRST); |
| 3003 form_structure->field(2)->set_possible_types(possible_field_types[2]); | 3066 form_structure->field(2)->set_possible_types(possible_field_types[2]); |
| 3004 | 3067 |
| 3005 // Modify the expected upload. | 3068 // Modify the expected upload. |
| 3006 // Put the NAME_FIRST prediction on the third field. | 3069 // Put the NAME_FIRST prediction on the third field. |
| 3007 upload.mutable_field(2)->set_autofill_type(3); | 3070 upload.mutable_field(2)->set_autofill_type(3); |
| 3008 // Replace the fourth field by the old third field. | 3071 // Replace the fourth field by the old third field. |
| 3009 test::FillUploadField(upload.mutable_field(3), 2404144663U, "last", "text", | 3072 test::FillUploadField(upload.mutable_field(3), 2404144663U, "last", "text", |
| 3010 "Last Name", nullptr, 5U); | 3073 "Last Name", nullptr, 5U, nullptr); |
| 3011 // Re-add the old fourth field. | 3074 // Re-add the old fourth field. |
| 3012 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", | 3075 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", |
| 3013 "Address", nullptr, 30U); | 3076 "Address", nullptr, 30U, nullptr); |
| 3014 | 3077 |
| 3015 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 3078 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 3016 | 3079 |
| 3017 AutofillUploadContents encoded_upload2; | 3080 AutofillUploadContents encoded_upload2; |
| 3018 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 3081 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 3019 available_field_types, false, std::string(), true, &encoded_upload2)); | 3082 available_field_types, false, std::string(), true, &encoded_upload2)); |
| 3020 | 3083 |
| 3021 encoded_upload2.SerializeToString(&encoded_upload_string); | 3084 encoded_upload2.SerializeToString(&encoded_upload_string); |
| 3022 EXPECT_EQ(expected_upload_string, encoded_upload_string); | 3085 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 3023 | 3086 |
| 3024 // Match last field as both address home line 1 and 2. | 3087 // Match last field as both address home line 1 and 2. |
| 3025 possible_field_types[3].insert(ADDRESS_HOME_LINE2); | 3088 possible_field_types[3].insert(ADDRESS_HOME_LINE2); |
| 3026 form_structure->field(form_structure->field_count() - 1)->set_possible_types( | 3089 form_structure->field(form_structure->field_count() - 1)->set_possible_types( |
| 3027 possible_field_types[form_structure->field_count() - 1]); | 3090 possible_field_types[form_structure->field_count() - 1]); |
| 3028 | 3091 |
| 3029 // Adjust the expected upload proto. | 3092 // Adjust the expected upload proto. |
| 3030 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", | 3093 test::FillUploadField(upload.add_field(), 509334676U, "address", "text", |
| 3031 "Address", nullptr, 31U); | 3094 "Address", nullptr, 31U, nullptr); |
| 3032 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); | 3095 ASSERT_TRUE(upload.SerializeToString(&expected_upload_string)); |
| 3033 | 3096 |
| 3034 AutofillUploadContents encoded_upload3; | 3097 AutofillUploadContents encoded_upload3; |
| 3035 EXPECT_TRUE(form_structure->EncodeUploadRequest( | 3098 EXPECT_TRUE(form_structure->EncodeUploadRequest( |
| 3036 available_field_types, false, std::string(), true, &encoded_upload3)); | 3099 available_field_types, false, std::string(), true, &encoded_upload3)); |
| 3037 | 3100 |
| 3038 encoded_upload3.SerializeToString(&encoded_upload_string); | 3101 encoded_upload3.SerializeToString(&encoded_upload_string); |
| 3039 EXPECT_EQ(expected_upload_string, encoded_upload_string); | 3102 EXPECT_EQ(expected_upload_string, encoded_upload_string); |
| 3040 | 3103 |
| 3041 // Replace the address line 2 prediction by company name. | 3104 // Replace the address line 2 prediction by company name. |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3586 prefix = FormStructure::FindLongestCommonPrefix(strings); | 3649 prefix = FormStructure::FindLongestCommonPrefix(strings); |
| 3587 EXPECT_EQ(ASCIIToUTF16("1234567890123456"), prefix); | 3650 EXPECT_EQ(ASCIIToUTF16("1234567890123456"), prefix); |
| 3588 | 3651 |
| 3589 // Empty vector. | 3652 // Empty vector. |
| 3590 strings.clear(); | 3653 strings.clear(); |
| 3591 prefix = FormStructure::FindLongestCommonPrefix(strings); | 3654 prefix = FormStructure::FindLongestCommonPrefix(strings); |
| 3592 EXPECT_EQ(ASCIIToUTF16(""), prefix); | 3655 EXPECT_EQ(ASCIIToUTF16(""), prefix); |
| 3593 } | 3656 } |
| 3594 | 3657 |
| 3595 } // namespace autofill | 3658 } // namespace autofill |
| OLD | NEW |