| 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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); | 181 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); |
| 182 }; | 182 }; |
| 183 | 183 |
| 184 // Populates |form| with data corresponding to a simple credit card form. | 184 // Populates |form| with data corresponding to a simple credit card form. |
| 185 // Note that this actually appends fields to the form data, which can be useful | 185 // Note that this actually appends fields to the form data, which can be useful |
| 186 // for building up more complex test forms. | 186 // for building up more complex test forms. |
| 187 void CreateTestCreditCardFormData(FormData* form, | 187 void CreateTestCreditCardFormData(FormData* form, |
| 188 bool is_https, | 188 bool is_https, |
| 189 bool use_month_type) { | 189 bool use_month_type) { |
| 190 form->name = ASCIIToUTF16("MyForm"); | 190 form->name = ASCIIToUTF16("MyForm"); |
| 191 form->method = ASCIIToUTF16("POST"); | |
| 192 if (is_https) { | 191 if (is_https) { |
| 193 form->origin = GURL("https://myform.com/form.html"); | 192 form->origin = GURL("https://myform.com/form.html"); |
| 194 form->action = GURL("https://myform.com/submit.html"); | 193 form->action = GURL("https://myform.com/submit.html"); |
| 195 } else { | 194 } else { |
| 196 form->origin = GURL("http://myform.com/form.html"); | 195 form->origin = GURL("http://myform.com/form.html"); |
| 197 form->action = GURL("http://myform.com/submit.html"); | 196 form->action = GURL("http://myform.com/submit.html"); |
| 198 } | 197 } |
| 199 form->user_submitted = true; | 198 form->user_submitted = true; |
| 200 | 199 |
| 201 FormFieldData field; | 200 FormFieldData field; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 const char* expiration_year, | 250 const char* expiration_year, |
| 252 bool has_address_fields, | 251 bool has_address_fields, |
| 253 bool has_credit_card_fields, | 252 bool has_credit_card_fields, |
| 254 bool use_month_type) { | 253 bool use_month_type) { |
| 255 // The number of fields in the address and credit card forms created above. | 254 // The number of fields in the address and credit card forms created above. |
| 256 const size_t kAddressFormSize = 11; | 255 const size_t kAddressFormSize = 11; |
| 257 const size_t kCreditCardFormSize = use_month_type ? 3 : 4; | 256 const size_t kCreditCardFormSize = use_month_type ? 3 : 4; |
| 258 | 257 |
| 259 EXPECT_EQ(expected_page_id, page_id); | 258 EXPECT_EQ(expected_page_id, page_id); |
| 260 EXPECT_EQ(ASCIIToUTF16("MyForm"), filled_form.name); | 259 EXPECT_EQ(ASCIIToUTF16("MyForm"), filled_form.name); |
| 261 EXPECT_EQ(ASCIIToUTF16("POST"), filled_form.method); | |
| 262 if (has_credit_card_fields) { | 260 if (has_credit_card_fields) { |
| 263 EXPECT_EQ(GURL("https://myform.com/form.html"), filled_form.origin); | 261 EXPECT_EQ(GURL("https://myform.com/form.html"), filled_form.origin); |
| 264 EXPECT_EQ(GURL("https://myform.com/submit.html"), filled_form.action); | 262 EXPECT_EQ(GURL("https://myform.com/submit.html"), filled_form.action); |
| 265 } else { | 263 } else { |
| 266 EXPECT_EQ(GURL("http://myform.com/form.html"), filled_form.origin); | 264 EXPECT_EQ(GURL("http://myform.com/form.html"), filled_form.origin); |
| 267 EXPECT_EQ(GURL("http://myform.com/submit.html"), filled_form.action); | 265 EXPECT_EQ(GURL("http://myform.com/submit.html"), filled_form.action); |
| 268 } | 266 } |
| 269 EXPECT_TRUE(filled_form.user_submitted); | 267 EXPECT_TRUE(filled_form.user_submitted); |
| 270 | 268 |
| 271 size_t form_size = 0; | 269 size_t form_size = 0; |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 external_delegate_->CheckSuggestions( | 762 external_delegate_->CheckSuggestions( |
| 765 kDefaultPageID, arraysize(expected_values), expected_values, | 763 kDefaultPageID, arraysize(expected_values), expected_values, |
| 766 expected_labels, expected_icons, expected_unique_ids); | 764 expected_labels, expected_icons, expected_unique_ids); |
| 767 } | 765 } |
| 768 | 766 |
| 769 // Test that we return no suggestions when the form has no relevant fields. | 767 // Test that we return no suggestions when the form has no relevant fields. |
| 770 TEST_F(AutofillManagerTest, GetProfileSuggestionsUnknownFields) { | 768 TEST_F(AutofillManagerTest, GetProfileSuggestionsUnknownFields) { |
| 771 // Set up our form data. | 769 // Set up our form data. |
| 772 FormData form; | 770 FormData form; |
| 773 form.name = ASCIIToUTF16("MyForm"); | 771 form.name = ASCIIToUTF16("MyForm"); |
| 774 form.method = ASCIIToUTF16("POST"); | |
| 775 form.origin = GURL("http://myform.com/form.html"); | 772 form.origin = GURL("http://myform.com/form.html"); |
| 776 form.action = GURL("http://myform.com/submit.html"); | 773 form.action = GURL("http://myform.com/submit.html"); |
| 777 form.user_submitted = true; | 774 form.user_submitted = true; |
| 778 | 775 |
| 779 FormFieldData field; | 776 FormFieldData field; |
| 780 test::CreateTestFormField("Username", "username", "", "text",&field); | 777 test::CreateTestFormField("Username", "username", "", "text",&field); |
| 781 form.fields.push_back(field); | 778 form.fields.push_back(field); |
| 782 test::CreateTestFormField("Password", "password", "", "password",&field); | 779 test::CreateTestFormField("Password", "password", "", "password",&field); |
| 783 form.fields.push_back(field); | 780 form.fields.push_back(field); |
| 784 test::CreateTestFormField("Quest", "quest", "", "quest", &field); | 781 test::CreateTestFormField("Quest", "quest", "", "quest", &field); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 FormsSeen(forms); | 837 FormsSeen(forms); |
| 841 | 838 |
| 842 // Disable Autofill. | 839 // Disable Autofill. |
| 843 autofill_manager_->set_autofill_enabled(false); | 840 autofill_manager_->set_autofill_enabled(false); |
| 844 | 841 |
| 845 const FormFieldData& field = form.fields[0]; | 842 const FormFieldData& field = form.fields[0]; |
| 846 GetAutofillSuggestions(form, field); | 843 GetAutofillSuggestions(form, field); |
| 847 EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen()); | 844 EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen()); |
| 848 } | 845 } |
| 849 | 846 |
| 850 // Test that we return a warning explaining that autofill suggestions are | |
| 851 // unavailable when the form method is GET rather than POST. | |
| 852 TEST_F(AutofillManagerTest, GetProfileSuggestionsMethodGet) { | |
| 853 // Set up our form data. | |
| 854 FormData form; | |
| 855 test::CreateTestAddressFormData(&form); | |
| 856 form.method = ASCIIToUTF16("GET"); | |
| 857 std::vector<FormData> forms(1, form); | |
| 858 FormsSeen(forms); | |
| 859 | |
| 860 const FormFieldData& field = form.fields[0]; | |
| 861 GetAutofillSuggestions(form, field); | |
| 862 | |
| 863 // No suggestions provided, so send an empty vector as the results. | |
| 864 // This triggers the combined message send. | |
| 865 AutocompleteSuggestionsReturned(std::vector<base::string16>()); | |
| 866 | |
| 867 // Test that we sent the right values to the external delegate. | |
| 868 base::string16 expected_values[] = { | |
| 869 l10n_util::GetStringUTF16(IDS_AUTOFILL_WARNING_FORM_DISABLED) | |
| 870 }; | |
| 871 base::string16 expected_labels[] = {base::string16()}; | |
| 872 base::string16 expected_icons[] = {base::string16()}; | |
| 873 int expected_unique_ids[] = {POPUP_ITEM_ID_WARNING_MESSAGE}; | |
| 874 external_delegate_->CheckSuggestions( | |
| 875 kDefaultPageID, arraysize(expected_values), expected_values, | |
| 876 expected_labels, expected_icons, expected_unique_ids); | |
| 877 | |
| 878 // Now add some Autocomplete suggestions. We should return the autocomplete | |
| 879 // suggestions and the warning; these will be culled by the renderer. | |
| 880 const int kPageID2 = 2; | |
| 881 GetAutofillSuggestions(kPageID2, form, field); | |
| 882 | |
| 883 std::vector<base::string16> suggestions; | |
| 884 suggestions.push_back(ASCIIToUTF16("Jay")); | |
| 885 suggestions.push_back(ASCIIToUTF16("Jason")); | |
| 886 AutocompleteSuggestionsReturned(suggestions); | |
| 887 | |
| 888 base::string16 expected_values2[] = { | |
| 889 l10n_util::GetStringUTF16(IDS_AUTOFILL_WARNING_FORM_DISABLED), | |
| 890 ASCIIToUTF16("Jay"), | |
| 891 ASCIIToUTF16("Jason") | |
| 892 }; | |
| 893 base::string16 expected_labels2[] = { base::string16(), base::string16(), | |
| 894 base::string16()}; | |
| 895 base::string16 expected_icons2[] = { base::string16(), base::string16(), | |
| 896 base::string16()}; | |
| 897 int expected_unique_ids2[] = {-1, 0, 0}; | |
| 898 external_delegate_->CheckSuggestions( | |
| 899 kPageID2, arraysize(expected_values2), expected_values2, | |
| 900 expected_labels2, expected_icons2, expected_unique_ids2); | |
| 901 | |
| 902 // Now clear the test profiles and try again -- we shouldn't return a warning. | |
| 903 personal_data_.ClearAutofillProfiles(); | |
| 904 GetAutofillSuggestions(form, field); | |
| 905 EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen()); | |
| 906 } | |
| 907 | |
| 908 // Test that we return all credit card profile suggestions when all form fields | 847 // Test that we return all credit card profile suggestions when all form fields |
| 909 // are empty. | 848 // are empty. |
| 910 TEST_F(AutofillManagerTest, GetCreditCardSuggestionsEmptyValue) { | 849 TEST_F(AutofillManagerTest, GetCreditCardSuggestionsEmptyValue) { |
| 911 // Set up our form data. | 850 // Set up our form data. |
| 912 FormData form; | 851 FormData form; |
| 913 CreateTestCreditCardFormData(&form, true, false); | 852 CreateTestCreditCardFormData(&form, true, false); |
| 914 std::vector<FormData> forms(1, form); | 853 std::vector<FormData> forms(1, form); |
| 915 FormsSeen(forms); | 854 FormsSeen(forms); |
| 916 | 855 |
| 917 FormFieldData field = form.fields[1]; | 856 FormFieldData field = form.fields[1]; |
| (...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1796 } | 1735 } |
| 1797 } | 1736 } |
| 1798 | 1737 |
| 1799 // Test that we correctly fill a form that has author-specified sections, which | 1738 // Test that we correctly fill a form that has author-specified sections, which |
| 1800 // might not match our expected section breakdown. | 1739 // might not match our expected section breakdown. |
| 1801 TEST_F(AutofillManagerTest, FillFormWithAuthorSpecifiedSections) { | 1740 TEST_F(AutofillManagerTest, FillFormWithAuthorSpecifiedSections) { |
| 1802 // Create a form with a billing section and an unnamed section, interleaved. | 1741 // Create a form with a billing section and an unnamed section, interleaved. |
| 1803 // The billing section includes both address and credit card fields. | 1742 // The billing section includes both address and credit card fields. |
| 1804 FormData form; | 1743 FormData form; |
| 1805 form.name = ASCIIToUTF16("MyForm"); | 1744 form.name = ASCIIToUTF16("MyForm"); |
| 1806 form.method = ASCIIToUTF16("POST"); | |
| 1807 form.origin = GURL("https://myform.com/form.html"); | 1745 form.origin = GURL("https://myform.com/form.html"); |
| 1808 form.action = GURL("https://myform.com/submit.html"); | 1746 form.action = GURL("https://myform.com/submit.html"); |
| 1809 form.user_submitted = true; | 1747 form.user_submitted = true; |
| 1810 | 1748 |
| 1811 FormFieldData field; | 1749 FormFieldData field; |
| 1812 | 1750 |
| 1813 test::CreateTestFormField("", "country", "", "text", &field); | 1751 test::CreateTestFormField("", "country", "", "text", &field); |
| 1814 field.autocomplete_attribute = "section-billing country"; | 1752 field.autocomplete_attribute = "section-billing country"; |
| 1815 form.fields.push_back(field); | 1753 form.fields.push_back(field); |
| 1816 | 1754 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1861 GUIDPair guid("00000000-0000-0000-0000-000000000001", 0); | 1799 GUIDPair guid("00000000-0000-0000-0000-000000000001", 0); |
| 1862 GUIDPair empty(std::string(), 0); | 1800 GUIDPair empty(std::string(), 0); |
| 1863 int response_page_id = 0; | 1801 int response_page_id = 0; |
| 1864 FormData response_data; | 1802 FormData response_data; |
| 1865 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[1], | 1803 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[1], |
| 1866 PackGUIDs(empty, guid), &response_page_id, &response_data); | 1804 PackGUIDs(empty, guid), &response_page_id, &response_data); |
| 1867 { | 1805 { |
| 1868 SCOPED_TRACE("Unnamed section"); | 1806 SCOPED_TRACE("Unnamed section"); |
| 1869 EXPECT_EQ(kDefaultPageID, response_page_id); | 1807 EXPECT_EQ(kDefaultPageID, response_page_id); |
| 1870 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); | 1808 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); |
| 1871 EXPECT_EQ(ASCIIToUTF16("POST"), response_data.method); | |
| 1872 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); | 1809 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); |
| 1873 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); | 1810 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); |
| 1874 EXPECT_TRUE(response_data.user_submitted); | 1811 EXPECT_TRUE(response_data.user_submitted); |
| 1875 ASSERT_EQ(11U, response_data.fields.size()); | 1812 ASSERT_EQ(11U, response_data.fields.size()); |
| 1876 | 1813 |
| 1877 ExpectFilledField("", "country", "", "text", response_data.fields[0]); | 1814 ExpectFilledField("", "country", "", "text", response_data.fields[0]); |
| 1878 ExpectFilledField("", "firstname", "Elvis", "text", | 1815 ExpectFilledField("", "firstname", "Elvis", "text", |
| 1879 response_data.fields[1]); | 1816 response_data.fields[1]); |
| 1880 ExpectFilledField("", "lastname", "Presley", "text", | 1817 ExpectFilledField("", "lastname", "Presley", "text", |
| 1881 response_data.fields[2]); | 1818 response_data.fields[2]); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1893 // Fill the address portion of the billing section. | 1830 // Fill the address portion of the billing section. |
| 1894 const int kPageID2 = 2; | 1831 const int kPageID2 = 2; |
| 1895 GUIDPair guid2("00000000-0000-0000-0000-000000000001", 0); | 1832 GUIDPair guid2("00000000-0000-0000-0000-000000000001", 0); |
| 1896 response_page_id = 0; | 1833 response_page_id = 0; |
| 1897 FillAutofillFormDataAndSaveResults(kPageID2, form, form.fields[0], | 1834 FillAutofillFormDataAndSaveResults(kPageID2, form, form.fields[0], |
| 1898 PackGUIDs(empty, guid2), &response_page_id, &response_data); | 1835 PackGUIDs(empty, guid2), &response_page_id, &response_data); |
| 1899 { | 1836 { |
| 1900 SCOPED_TRACE("Billing address"); | 1837 SCOPED_TRACE("Billing address"); |
| 1901 EXPECT_EQ(kPageID2, response_page_id); | 1838 EXPECT_EQ(kPageID2, response_page_id); |
| 1902 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); | 1839 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); |
| 1903 EXPECT_EQ(ASCIIToUTF16("POST"), response_data.method); | |
| 1904 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); | 1840 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); |
| 1905 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); | 1841 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); |
| 1906 EXPECT_TRUE(response_data.user_submitted); | 1842 EXPECT_TRUE(response_data.user_submitted); |
| 1907 ASSERT_EQ(11U, response_data.fields.size()); | 1843 ASSERT_EQ(11U, response_data.fields.size()); |
| 1908 | 1844 |
| 1909 ExpectFilledField("", "country", "US", "text", | 1845 ExpectFilledField("", "country", "US", "text", |
| 1910 response_data.fields[0]); | 1846 response_data.fields[0]); |
| 1911 ExpectFilledField("", "firstname", "", "text", response_data.fields[1]); | 1847 ExpectFilledField("", "firstname", "", "text", response_data.fields[1]); |
| 1912 ExpectFilledField("", "lastname", "", "text", response_data.fields[2]); | 1848 ExpectFilledField("", "lastname", "", "text", response_data.fields[2]); |
| 1913 ExpectFilledField("", "address", "3734 Elvis Presley Blvd.", "text", | 1849 ExpectFilledField("", "address", "3734 Elvis Presley Blvd.", "text", |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1926 const int kPageID3 = 3; | 1862 const int kPageID3 = 3; |
| 1927 GUIDPair guid3("00000000-0000-0000-0000-000000000004", 0); | 1863 GUIDPair guid3("00000000-0000-0000-0000-000000000004", 0); |
| 1928 response_page_id = 0; | 1864 response_page_id = 0; |
| 1929 FillAutofillFormDataAndSaveResults( | 1865 FillAutofillFormDataAndSaveResults( |
| 1930 kPageID3, form, form.fields[form.fields.size() - 2], | 1866 kPageID3, form, form.fields[form.fields.size() - 2], |
| 1931 PackGUIDs(guid3, empty), &response_page_id, &response_data); | 1867 PackGUIDs(guid3, empty), &response_page_id, &response_data); |
| 1932 { | 1868 { |
| 1933 SCOPED_TRACE("Credit card"); | 1869 SCOPED_TRACE("Credit card"); |
| 1934 EXPECT_EQ(kPageID3, response_page_id); | 1870 EXPECT_EQ(kPageID3, response_page_id); |
| 1935 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); | 1871 EXPECT_EQ(ASCIIToUTF16("MyForm"), response_data.name); |
| 1936 EXPECT_EQ(ASCIIToUTF16("POST"), response_data.method); | |
| 1937 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); | 1872 EXPECT_EQ(GURL("https://myform.com/form.html"), response_data.origin); |
| 1938 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); | 1873 EXPECT_EQ(GURL("https://myform.com/submit.html"), response_data.action); |
| 1939 EXPECT_TRUE(response_data.user_submitted); | 1874 EXPECT_TRUE(response_data.user_submitted); |
| 1940 ASSERT_EQ(11U, response_data.fields.size()); | 1875 ASSERT_EQ(11U, response_data.fields.size()); |
| 1941 | 1876 |
| 1942 ExpectFilledField("", "country", "", "text", response_data.fields[0]); | 1877 ExpectFilledField("", "country", "", "text", response_data.fields[0]); |
| 1943 ExpectFilledField("", "firstname", "", "text", response_data.fields[1]); | 1878 ExpectFilledField("", "firstname", "", "text", response_data.fields[1]); |
| 1944 ExpectFilledField("", "lastname", "", "text", response_data.fields[2]); | 1879 ExpectFilledField("", "lastname", "", "text", response_data.fields[2]); |
| 1945 ExpectFilledField("", "address", "", "text", response_data.fields[3]); | 1880 ExpectFilledField("", "address", "", "text", response_data.fields[3]); |
| 1946 ExpectFilledField("", "city", "", "text", response_data.fields[4]); | 1881 ExpectFilledField("", "city", "", "text", response_data.fields[4]); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2099 "theking@gmail.com", "", "", "", "", true, false, false); | 2034 "theking@gmail.com", "", "", "", "", true, false, false); |
| 2100 } | 2035 } |
| 2101 } | 2036 } |
| 2102 | 2037 |
| 2103 // Test that we correctly fill a phone number split across multiple fields. | 2038 // Test that we correctly fill a phone number split across multiple fields. |
| 2104 TEST_F(AutofillManagerTest, FillPhoneNumber) { | 2039 TEST_F(AutofillManagerTest, FillPhoneNumber) { |
| 2105 // In one form, rely on the maxlength attribute to imply phone number parts. | 2040 // In one form, rely on the maxlength attribute to imply phone number parts. |
| 2106 // In the other form, rely on the autocompletetype attribute. | 2041 // In the other form, rely on the autocompletetype attribute. |
| 2107 FormData form_with_maxlength; | 2042 FormData form_with_maxlength; |
| 2108 form_with_maxlength.name = ASCIIToUTF16("MyMaxlengthPhoneForm"); | 2043 form_with_maxlength.name = ASCIIToUTF16("MyMaxlengthPhoneForm"); |
| 2109 form_with_maxlength.method = ASCIIToUTF16("POST"); | |
| 2110 form_with_maxlength.origin = GURL("http://myform.com/phone_form.html"); | 2044 form_with_maxlength.origin = GURL("http://myform.com/phone_form.html"); |
| 2111 form_with_maxlength.action = GURL("http://myform.com/phone_submit.html"); | 2045 form_with_maxlength.action = GURL("http://myform.com/phone_submit.html"); |
| 2112 form_with_maxlength.user_submitted = true; | 2046 form_with_maxlength.user_submitted = true; |
| 2113 FormData form_with_autocompletetype = form_with_maxlength; | 2047 FormData form_with_autocompletetype = form_with_maxlength; |
| 2114 form_with_autocompletetype.name = ASCIIToUTF16("MyAutocompletetypePhoneForm"); | 2048 form_with_autocompletetype.name = ASCIIToUTF16("MyAutocompletetypePhoneForm"); |
| 2115 | 2049 |
| 2116 struct { | 2050 struct { |
| 2117 const char* label; | 2051 const char* label; |
| 2118 const char* name; | 2052 const char* name; |
| 2119 size_t max_length; | 2053 size_t max_length; |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2334 autofill_manager_->set_autofill_enabled(false); | 2268 autofill_manager_->set_autofill_enabled(false); |
| 2335 scoped_ptr<MockAutocompleteHistoryManager> autocomplete_history_manager; | 2269 scoped_ptr<MockAutocompleteHistoryManager> autocomplete_history_manager; |
| 2336 autocomplete_history_manager.reset( | 2270 autocomplete_history_manager.reset( |
| 2337 new MockAutocompleteHistoryManager(autofill_driver_.get(), &client)); | 2271 new MockAutocompleteHistoryManager(autofill_driver_.get(), &client)); |
| 2338 autofill_manager_->autocomplete_history_manager_ = | 2272 autofill_manager_->autocomplete_history_manager_ = |
| 2339 autocomplete_history_manager.Pass(); | 2273 autocomplete_history_manager.Pass(); |
| 2340 | 2274 |
| 2341 // Set up our form data. | 2275 // Set up our form data. |
| 2342 FormData form; | 2276 FormData form; |
| 2343 test::CreateTestAddressFormData(&form); | 2277 test::CreateTestAddressFormData(&form); |
| 2344 form.method = ASCIIToUTF16("GET"); | |
| 2345 MockAutocompleteHistoryManager* m = static_cast< | 2278 MockAutocompleteHistoryManager* m = static_cast< |
| 2346 MockAutocompleteHistoryManager*>( | 2279 MockAutocompleteHistoryManager*>( |
| 2347 autofill_manager_->autocomplete_history_manager_.get()); | 2280 autofill_manager_->autocomplete_history_manager_.get()); |
| 2348 EXPECT_CALL(*m, | 2281 EXPECT_CALL(*m, |
| 2349 OnFormSubmitted(_)).Times(1); | 2282 OnFormSubmitted(_)).Times(1); |
| 2350 FormSubmitted(form); | 2283 FormSubmitted(form); |
| 2351 } | 2284 } |
| 2352 | 2285 |
| 2353 // Test that when Autocomplete is enabled and Autofill is disabled, | 2286 // Test that when Autocomplete is enabled and Autofill is disabled, |
| 2354 // Autocomplete suggestions are still received. | 2287 // Autocomplete suggestions are still received. |
| 2355 TEST_F(AutofillManagerTest, AutocompleteSuggestionsWhenAutofillDisabled) { | 2288 TEST_F(AutofillManagerTest, AutocompleteSuggestionsWhenAutofillDisabled) { |
| 2356 TestAutofillClient client; | 2289 TestAutofillClient client; |
| 2357 autofill_manager_.reset( | 2290 autofill_manager_.reset( |
| 2358 new TestAutofillManager(autofill_driver_.get(), &client, NULL)); | 2291 new TestAutofillManager(autofill_driver_.get(), &client, NULL)); |
| 2359 autofill_manager_->set_autofill_enabled(false); | 2292 autofill_manager_->set_autofill_enabled(false); |
| 2360 autofill_manager_->SetExternalDelegate(external_delegate_.get()); | 2293 autofill_manager_->SetExternalDelegate(external_delegate_.get()); |
| 2361 | 2294 |
| 2362 // Set up our form data. | 2295 // Set up our form data. |
| 2363 FormData form; | 2296 FormData form; |
| 2364 test::CreateTestAddressFormData(&form); | 2297 test::CreateTestAddressFormData(&form); |
| 2365 form.method = ASCIIToUTF16("GET"); | |
| 2366 std::vector<FormData> forms(1, form); | 2298 std::vector<FormData> forms(1, form); |
| 2367 FormsSeen(forms); | 2299 FormsSeen(forms); |
| 2368 const FormFieldData& field = form.fields[0]; | 2300 const FormFieldData& field = form.fields[0]; |
| 2369 GetAutofillSuggestions(form, field); | 2301 GetAutofillSuggestions(form, field); |
| 2370 | 2302 |
| 2371 // Add some Autocomplete suggestions. We should return the autocomplete | 2303 // Add some Autocomplete suggestions. We should return the autocomplete |
| 2372 // suggestions, these will be culled by the renderer. | 2304 // suggestions, these will be culled by the renderer. |
| 2373 std::vector<base::string16> suggestions; | 2305 std::vector<base::string16> suggestions; |
| 2374 suggestions.push_back(ASCIIToUTF16("Jay")); | 2306 suggestions.push_back(ASCIIToUTF16("Jay")); |
| 2375 suggestions.push_back(ASCIIToUTF16("Jason")); | 2307 suggestions.push_back(ASCIIToUTF16("Jason")); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2510 prefs->SetBoolean(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled, true); | 2442 prefs->SetBoolean(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled, true); |
| 2511 prefs->ClearPref(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled); | 2443 prefs->ClearPref(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled); |
| 2512 ASSERT_FALSE( | 2444 ASSERT_FALSE( |
| 2513 prefs->GetBoolean(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled)); | 2445 prefs->GetBoolean(::autofill::prefs::kAutofillAuxiliaryProfilesEnabled)); |
| 2514 #endif // defined(OS_MACOSX) || defined(OS_ANDROID) | 2446 #endif // defined(OS_MACOSX) || defined(OS_ANDROID) |
| 2515 } | 2447 } |
| 2516 | 2448 |
| 2517 TEST_F(AutofillManagerTest, DeterminePossibleFieldTypesForUpload) { | 2449 TEST_F(AutofillManagerTest, DeterminePossibleFieldTypesForUpload) { |
| 2518 FormData form; | 2450 FormData form; |
| 2519 form.name = ASCIIToUTF16("MyForm"); | 2451 form.name = ASCIIToUTF16("MyForm"); |
| 2520 form.method = ASCIIToUTF16("POST"); | |
| 2521 form.origin = GURL("http://myform.com/form.html"); | 2452 form.origin = GURL("http://myform.com/form.html"); |
| 2522 form.action = GURL("http://myform.com/submit.html"); | 2453 form.action = GURL("http://myform.com/submit.html"); |
| 2523 form.user_submitted = true; | 2454 form.user_submitted = true; |
| 2524 | 2455 |
| 2525 std::vector<ServerFieldTypeSet> expected_types; | 2456 std::vector<ServerFieldTypeSet> expected_types; |
| 2526 | 2457 |
| 2527 // These fields should all match. | 2458 // These fields should all match. |
| 2528 FormFieldData field; | 2459 FormFieldData field; |
| 2529 ServerFieldTypeSet types; | 2460 ServerFieldTypeSet types; |
| 2530 test::CreateTestFormField("", "1", "Elvis", "text", &field); | 2461 test::CreateTestFormField("", "1", "Elvis", "text", &field); |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2886 test::CreateTestAddressFormData(&form); | 2817 test::CreateTestAddressFormData(&form); |
| 2887 std::vector<FormData> forms(1, form); | 2818 std::vector<FormData> forms(1, form); |
| 2888 FormsSeen(forms); | 2819 FormsSeen(forms); |
| 2889 const FormFieldData& field = form.fields[0]; | 2820 const FormFieldData& field = form.fields[0]; |
| 2890 GetAutofillSuggestions(form, field); // should call the delegate's OnQuery() | 2821 GetAutofillSuggestions(form, field); // should call the delegate's OnQuery() |
| 2891 | 2822 |
| 2892 EXPECT_TRUE(external_delegate_->on_query_seen()); | 2823 EXPECT_TRUE(external_delegate_->on_query_seen()); |
| 2893 } | 2824 } |
| 2894 | 2825 |
| 2895 } // namespace autofill | 2826 } // namespace autofill |
| OLD | NEW |