| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 2587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2598 // Set up our form data. | 2598 // Set up our form data. |
| 2599 FormData form; | 2599 FormData form; |
| 2600 test::CreateTestAddressFormData(&form); | 2600 test::CreateTestAddressFormData(&form); |
| 2601 | 2601 |
| 2602 // Simulate having seen this form on page load. | 2602 // Simulate having seen this form on page load. |
| 2603 // |form_structure| will be owned by |autofill_manager_|. | 2603 // |form_structure| will be owned by |autofill_manager_|. |
| 2604 TestFormStructure* form_structure = new TestFormStructure(form); | 2604 TestFormStructure* form_structure = new TestFormStructure(form); |
| 2605 form_structure->DetermineHeuristicTypes(); | 2605 form_structure->DetermineHeuristicTypes(); |
| 2606 autofill_manager_->AddSeenForm(form_structure); | 2606 autofill_manager_->AddSeenForm(form_structure); |
| 2607 | 2607 |
| 2608 // Similarly, a second form. |
| 2609 FormData form2; |
| 2610 form2.name = ASCIIToUTF16("MyForm"); |
| 2611 form2.origin = GURL("http://myform.com/form.html"); |
| 2612 form2.action = GURL("http://myform.com/submit.html"); |
| 2613 |
| 2614 FormFieldData field; |
| 2615 test::CreateTestFormField("Last Name", "lastname", "", "text", &field); |
| 2616 form2.fields.push_back(field); |
| 2617 |
| 2618 test::CreateTestFormField("Middle Name", "middlename", "", "text", &field); |
| 2619 form2.fields.push_back(field); |
| 2620 |
| 2621 test::CreateTestFormField("Postal Code", "zipcode", "", "text", &field); |
| 2622 form2.fields.push_back(field); |
| 2623 |
| 2624 TestFormStructure* form_structure2 = new TestFormStructure(form2); |
| 2625 form_structure2->DetermineHeuristicTypes(); |
| 2626 autofill_manager_->AddSeenForm(form_structure2); |
| 2627 |
| 2608 std::string xml = "<autofillqueryresponse>" | 2628 std::string xml = "<autofillqueryresponse>" |
| 2609 "<field autofilltype=\"3\" />" // This is tested below. | 2629 "<field autofilltype=\"3\" />" // First test form. |
| 2610 "<field autofilltype=\"0\" />" | 2630 "<field autofilltype=\"0\" />" |
| 2611 "<field autofilltype=\"0\" />" | 2631 "<field autofilltype=\"0\" />" |
| 2612 "<field autofilltype=\"0\" />" | 2632 "<field autofilltype=\"0\" />" |
| 2613 "<field autofilltype=\"0\" />" | 2633 "<field autofilltype=\"0\" />" |
| 2614 "<field autofilltype=\"0\" />" | 2634 "<field autofilltype=\"0\" />" |
| 2615 "<field autofilltype=\"0\" />" | 2635 "<field autofilltype=\"0\" />" |
| 2616 "<field autofilltype=\"0\" />" | 2636 "<field autofilltype=\"0\" />" |
| 2617 "<field autofilltype=\"3\" />" | 2637 "<field autofilltype=\"3\" />" |
| 2618 "<field autofilltype=\"2\" />" | 2638 "<field autofilltype=\"2\" />" |
| 2619 "<field autofilltype=\"61\"/>" | 2639 "<field autofilltype=\"61\"/>" |
| 2640 "<field autofilltype=\"5\" />" // Second form. |
| 2641 "<field autofilltype=\"4\" />" |
| 2642 "<field autofilltype=\"35\"/>" |
| 2620 "</autofillqueryresponse>"; | 2643 "</autofillqueryresponse>"; |
| 2621 std::vector<std::string> signatures; | 2644 std::vector<std::string> signatures; |
| 2622 signatures.push_back(form_structure->FormSignature()); | 2645 signatures.push_back(form_structure->FormSignature()); |
| 2646 signatures.push_back(form_structure2->FormSignature()); |
| 2623 | 2647 |
| 2624 base::HistogramTester histogram_tester; | 2648 base::HistogramTester histogram_tester; |
| 2625 autofill_manager_->OnLoadedServerPredictions(xml, signatures); | 2649 autofill_manager_->OnLoadedServerPredictions(xml, signatures); |
| 2626 // Verify that FormStructure::ParseQueryResponse was called (here and below). | 2650 // Verify that FormStructure::ParseQueryResponse was called (here and below). |
| 2627 histogram_tester.ExpectBucketCount("Autofill.ServerQueryResponse", | 2651 histogram_tester.ExpectBucketCount("Autofill.ServerQueryResponse", |
| 2628 AutofillMetrics::QUERY_RESPONSE_RECEIVED, | 2652 AutofillMetrics::QUERY_RESPONSE_RECEIVED, |
| 2629 1); | 2653 1); |
| 2630 histogram_tester.ExpectBucketCount("Autofill.ServerQueryResponse", | 2654 histogram_tester.ExpectBucketCount("Autofill.ServerQueryResponse", |
| 2631 AutofillMetrics::QUERY_RESPONSE_PARSED, | 2655 AutofillMetrics::QUERY_RESPONSE_PARSED, |
| 2632 1); | 2656 1); |
| 2633 // We expect the server type to have been applied to the first field. | 2657 // We expect the server type to have been applied to the first field. |
| 2634 EXPECT_EQ(NAME_FIRST, form_structure->field(0)->Type().GetStorableType()); | 2658 EXPECT_EQ(NAME_FIRST, form_structure->field(0)->Type().GetStorableType()); |
| 2659 |
| 2660 // We expect the server type to have been applied to the first field. |
| 2661 EXPECT_EQ(NAME_LAST, form_structure2->field(0)->Type().GetStorableType()); |
| 2662 EXPECT_EQ(NAME_MIDDLE, form_structure2->field(1)->Type().GetStorableType()); |
| 2663 EXPECT_EQ(ADDRESS_HOME_ZIP, |
| 2664 form_structure2->field(2)->Type().GetStorableType()); |
| 2635 } | 2665 } |
| 2636 | 2666 |
| 2637 // Test that OnLoadedServerPredictions does not call ParseQueryResponse if the | 2667 // Test that OnLoadedServerPredictions does not call ParseQueryResponse if the |
| 2638 // AutofillManager has been reset between the time the query was sent and the | 2668 // AutofillManager has been reset between the time the query was sent and the |
| 2639 // response received. | 2669 // response received. |
| 2640 TEST_F(AutofillManagerTest, OnLoadedServerPredictions_ResetManager) { | 2670 TEST_F(AutofillManagerTest, OnLoadedServerPredictions_ResetManager) { |
| 2641 // Set up our form data. | 2671 // Set up our form data. |
| 2642 FormData form; | 2672 FormData form; |
| 2643 test::CreateTestAddressFormData(&form); | 2673 test::CreateTestAddressFormData(&form); |
| 2644 | 2674 |
| (...skipping 1049 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3694 | 3724 |
| 3695 external_delegate_->CheckSuggestions( | 3725 external_delegate_->CheckSuggestions( |
| 3696 kDefaultPageID, | 3726 kDefaultPageID, |
| 3697 Suggestion("Shawn Smith", "1234 Smith Blvd., Robin Adam Smith Grimes", "", | 3727 Suggestion("Shawn Smith", "1234 Smith Blvd., Robin Adam Smith Grimes", "", |
| 3698 1), | 3728 1), |
| 3699 Suggestion("Adam Smith", "1234 Smith Blvd., Carl Shawn Smith Grimes", "", | 3729 Suggestion("Adam Smith", "1234 Smith Blvd., Carl Shawn Smith Grimes", "", |
| 3700 2)); | 3730 2)); |
| 3701 } | 3731 } |
| 3702 | 3732 |
| 3703 } // namespace autofill | 3733 } // namespace autofill |
| OLD | NEW |