| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
| 8 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
| 9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 ASSERT_EQ(labels.size(), values.size()); | 110 ASSERT_EQ(labels.size(), values.size()); |
| 111 ASSERT_EQ(labels.size(), control_types.size()); | 111 ASSERT_EQ(labels.size(), control_types.size()); |
| 112 | 112 |
| 113 LoadHTML(html); | 113 LoadHTML(html); |
| 114 | 114 |
| 115 WebFrame* web_frame = GetMainFrame(); | 115 WebFrame* web_frame = GetMainFrame(); |
| 116 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 116 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 117 | 117 |
| 118 FormCache form_cache; | 118 FormCache form_cache; |
| 119 std::vector<FormData> forms; | 119 std::vector<FormData> forms; |
| 120 form_cache.ExtractForms(*web_frame, &forms); | 120 form_cache.ExtractNewForms(*web_frame, &forms); |
| 121 ASSERT_EQ(1U, forms.size()); | 121 ASSERT_EQ(1U, forms.size()); |
| 122 | 122 |
| 123 const FormData& form = forms[0]; | 123 const FormData& form = forms[0]; |
| 124 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 124 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
| 125 EXPECT_EQ(GURL(web_frame->document().url()), form.origin); | 125 EXPECT_EQ(GURL(web_frame->document().url()), form.origin); |
| 126 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 126 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
| 127 | 127 |
| 128 const std::vector<FormFieldData>& fields = form.fields; | 128 const std::vector<FormFieldData>& fields = form.fields; |
| 129 ASSERT_EQ(labels.size(), fields.size()); | 129 ASSERT_EQ(labels.size(), fields.size()); |
| 130 for (size_t i = 0; i < labels.size(); ++i) { | 130 for (size_t i = 0; i < labels.size(); ++i) { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 size_t number_of_field_cases, | 170 size_t number_of_field_cases, |
| 171 FillFormFunction fill_form_function, | 171 FillFormFunction fill_form_function, |
| 172 GetValueFunction get_value_function) { | 172 GetValueFunction get_value_function) { |
| 173 LoadHTML(html); | 173 LoadHTML(html); |
| 174 | 174 |
| 175 WebFrame* web_frame = GetMainFrame(); | 175 WebFrame* web_frame = GetMainFrame(); |
| 176 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 176 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 177 | 177 |
| 178 FormCache form_cache; | 178 FormCache form_cache; |
| 179 std::vector<FormData> forms; | 179 std::vector<FormData> forms; |
| 180 form_cache.ExtractForms(*web_frame, &forms); | 180 form_cache.ExtractNewForms(*web_frame, &forms); |
| 181 ASSERT_EQ(1U, forms.size()); | 181 ASSERT_EQ(1U, forms.size()); |
| 182 | 182 |
| 183 // Get the input element we want to find. | 183 // Get the input element we want to find. |
| 184 WebElement element = web_frame->document().getElementById("firstname"); | 184 WebElement element = web_frame->document().getElementById("firstname"); |
| 185 WebInputElement input_element = element.to<WebInputElement>(); | 185 WebInputElement input_element = element.to<WebInputElement>(); |
| 186 | 186 |
| 187 // Find the form that contains the input element. | 187 // Find the form that contains the input element. |
| 188 FormData form_data; | 188 FormData form_data; |
| 189 FormFieldData field; | 189 FormFieldData field; |
| 190 EXPECT_TRUE( | 190 EXPECT_TRUE( |
| (...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 " <INPUT type=\"text\" id=\"lastname\" value=\"Adams\"/>" | 798 " <INPUT type=\"text\" id=\"lastname\" value=\"Adams\"/>" |
| 799 " <INPUT type=\"text\" id=\"email\" value=\"jack@example.com\"/>" | 799 " <INPUT type=\"text\" id=\"email\" value=\"jack@example.com\"/>" |
| 800 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 800 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 801 "</FORM>"); | 801 "</FORM>"); |
| 802 | 802 |
| 803 WebFrame* web_frame = GetMainFrame(); | 803 WebFrame* web_frame = GetMainFrame(); |
| 804 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 804 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 805 | 805 |
| 806 FormCache form_cache; | 806 FormCache form_cache; |
| 807 std::vector<FormData> forms; | 807 std::vector<FormData> forms; |
| 808 form_cache.ExtractForms(*web_frame, &forms); | 808 form_cache.ExtractNewForms(*web_frame, &forms); |
| 809 ASSERT_EQ(2U, forms.size()); | 809 ASSERT_EQ(2U, forms.size()); |
| 810 | 810 |
| 811 // First form. | 811 // First form. |
| 812 const FormData& form = forms[0]; | 812 const FormData& form = forms[0]; |
| 813 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 813 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
| 814 EXPECT_EQ(GURL(web_frame->document().url()), form.origin); | 814 EXPECT_EQ(GURL(web_frame->document().url()), form.origin); |
| 815 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 815 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
| 816 | 816 |
| 817 const std::vector<FormFieldData>& fields = form.fields; | 817 const std::vector<FormFieldData>& fields = form.fields; |
| 818 ASSERT_EQ(3U, fields.size()); | 818 ASSERT_EQ(3U, fields.size()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 848 | 848 |
| 849 expected.name = ASCIIToUTF16("lastname"); | 849 expected.name = ASCIIToUTF16("lastname"); |
| 850 expected.value = ASCIIToUTF16("Adams"); | 850 expected.value = ASCIIToUTF16("Adams"); |
| 851 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[1]); | 851 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[1]); |
| 852 | 852 |
| 853 expected.name = ASCIIToUTF16("email"); | 853 expected.name = ASCIIToUTF16("email"); |
| 854 expected.value = ASCIIToUTF16("jack@example.com"); | 854 expected.value = ASCIIToUTF16("jack@example.com"); |
| 855 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[2]); | 855 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[2]); |
| 856 } | 856 } |
| 857 | 857 |
| 858 TEST_F(FormAutofillTest, OnlyExtractNewForms) { |
| 859 LoadHTML( |
| 860 "<FORM id='testform' action='http://cnn.com' method='post'>" |
| 861 " <INPUT type='text' id='firstname' value='John'/>" |
| 862 " <INPUT type='text' id='lastname' value='Smith'/>" |
| 863 " <INPUT type='text' id='email' value='john@example.com'/>" |
| 864 " <INPUT type='submit' name='reply-send' value='Send'/>" |
| 865 "</FORM>"); |
| 866 |
| 867 WebFrame* web_frame = GetMainFrame(); |
| 868 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 869 |
| 870 FormCache form_cache; |
| 871 std::vector<FormData> forms; |
| 872 form_cache.ExtractNewForms(*web_frame, &forms); |
| 873 ASSERT_EQ(1U, forms.size()); |
| 874 forms.clear(); |
| 875 |
| 876 // Second call should give nothing as there are no new forms. |
| 877 form_cache.ExtractNewForms(*web_frame, &forms); |
| 878 ASSERT_EQ(0U, forms.size()); |
| 879 |
| 880 // Append to the current form will re-extract. |
| 881 ExecuteJavaScript( |
| 882 "var newInput = document.createElement('input');" |
| 883 "newInput.setAttribute('type', 'text');" |
| 884 "newInput.setAttribute('id', 'telephone');" |
| 885 "newInput.value = '12345';" |
| 886 "document.getElementById('testform').appendChild(newInput);"); |
| 887 msg_loop_.RunUntilIdle(); |
| 888 |
| 889 form_cache.ExtractNewForms(*web_frame, &forms); |
| 890 ASSERT_EQ(1U, forms.size()); |
| 891 |
| 892 const std::vector<FormFieldData>& fields = forms[0].fields; |
| 893 ASSERT_EQ(4U, fields.size()); |
| 894 |
| 895 FormFieldData expected; |
| 896 expected.form_control_type = "text"; |
| 897 expected.max_length = WebInputElement::defaultMaxLength(); |
| 898 |
| 899 expected.name = ASCIIToUTF16("firstname"); |
| 900 expected.value = ASCIIToUTF16("John"); |
| 901 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[0]); |
| 902 |
| 903 expected.name = ASCIIToUTF16("lastname"); |
| 904 expected.value = ASCIIToUTF16("Smith"); |
| 905 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]); |
| 906 |
| 907 expected.name = ASCIIToUTF16("email"); |
| 908 expected.value = ASCIIToUTF16("john@example.com"); |
| 909 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]); |
| 910 |
| 911 expected.name = ASCIIToUTF16("telephone"); |
| 912 expected.value = ASCIIToUTF16("12345"); |
| 913 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[3]); |
| 914 |
| 915 forms.clear(); |
| 916 |
| 917 // Completely new form will also be extracted. |
| 918 ExecuteJavaScript( |
| 919 "var newForm=document.createElement('form');" |
| 920 "newForm.id='new_testform';" |
| 921 "newForm.action='http://google.com';" |
| 922 "newForm.method='post';" |
| 923 "var newFirstname=document.createElement('input');" |
| 924 "newFirstname.setAttribute('type', 'text');" |
| 925 "newFirstname.setAttribute('id', 'second_firstname');" |
| 926 "newFirstname.value = 'Bob';" |
| 927 "var newLastname=document.createElement('input');" |
| 928 "newLastname.setAttribute('type', 'text');" |
| 929 "newLastname.setAttribute('id', 'second_lastname');" |
| 930 "newLastname.value = 'Hope';" |
| 931 "var newEmail=document.createElement('input');" |
| 932 "newEmail.setAttribute('type', 'text');" |
| 933 "newEmail.setAttribute('id', 'second_email');" |
| 934 "newEmail.value = 'bobhope@example.com';" |
| 935 "newForm.appendChild(newFirstname);" |
| 936 "newForm.appendChild(newLastname);" |
| 937 "newForm.appendChild(newEmail);" |
| 938 "document.body.appendChild(newForm);"); |
| 939 msg_loop_.RunUntilIdle(); |
| 940 |
| 941 web_frame = GetMainFrame(); |
| 942 form_cache.ExtractNewForms(*web_frame, &forms); |
| 943 ASSERT_EQ(1U, forms.size()); |
| 944 |
| 945 const std::vector<FormFieldData>& fields2 = forms[0].fields; |
| 946 ASSERT_EQ(3U, fields2.size()); |
| 947 |
| 948 expected.name = ASCIIToUTF16("second_firstname"); |
| 949 expected.value = ASCIIToUTF16("Bob"); |
| 950 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[0]); |
| 951 |
| 952 expected.name = ASCIIToUTF16("second_lastname"); |
| 953 expected.value = ASCIIToUTF16("Hope"); |
| 954 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[1]); |
| 955 |
| 956 expected.name = ASCIIToUTF16("second_email"); |
| 957 expected.value = ASCIIToUTF16("bobhope@example.com"); |
| 958 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[2]); |
| 959 } |
| 960 |
| 858 // We should not extract a form if it has too few fillable fields. | 961 // We should not extract a form if it has too few fillable fields. |
| 859 TEST_F(FormAutofillTest, ExtractFormsTooFewFields) { | 962 TEST_F(FormAutofillTest, ExtractFormsTooFewFields) { |
| 860 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 963 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
| 861 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 964 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
| 862 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 965 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
| 863 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 966 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 864 "</FORM>"); | 967 "</FORM>"); |
| 865 | 968 |
| 866 WebFrame* web_frame = GetMainFrame(); | 969 WebFrame* web_frame = GetMainFrame(); |
| 867 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 970 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 868 | 971 |
| 869 FormCache form_cache; | 972 FormCache form_cache; |
| 870 std::vector<FormData> forms; | 973 std::vector<FormData> forms; |
| 871 form_cache.ExtractForms(*web_frame, &forms); | 974 form_cache.ExtractNewForms(*web_frame, &forms); |
| 872 EXPECT_EQ(0U, forms.size()); | 975 EXPECT_EQ(0U, forms.size()); |
| 873 } | 976 } |
| 874 | 977 |
| 875 // We should not report additional forms for empty forms. | 978 // We should not report additional forms for empty forms. |
| 876 TEST_F(FormAutofillTest, ExtractFormsSkippedForms) { | 979 TEST_F(FormAutofillTest, ExtractFormsSkippedForms) { |
| 877 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 980 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
| 878 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 981 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
| 879 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 982 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
| 880 "</FORM>"); | 983 "</FORM>"); |
| 881 | 984 |
| 882 WebFrame* web_frame = GetMainFrame(); | 985 WebFrame* web_frame = GetMainFrame(); |
| 883 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 986 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 884 | 987 |
| 885 FormCache form_cache; | 988 FormCache form_cache; |
| 886 std::vector<FormData> forms; | 989 std::vector<FormData> forms; |
| 887 bool has_skipped_forms = form_cache.ExtractFormsAndFormElements(*web_frame, | 990 form_cache.ExtractNewForms(*web_frame, &forms); |
| 888 3, | |
| 889 &forms, | |
| 890 NULL); | |
| 891 EXPECT_EQ(0U, forms.size()); | 991 EXPECT_EQ(0U, forms.size()); |
| 892 EXPECT_TRUE(has_skipped_forms); | |
| 893 } | 992 } |
| 894 | 993 |
| 895 // We should not report additional forms for empty forms. | 994 // We should not report additional forms for empty forms. |
| 896 TEST_F(FormAutofillTest, ExtractFormsNoFields) { | 995 TEST_F(FormAutofillTest, ExtractFormsNoFields) { |
| 897 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 996 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
| 898 "</FORM>"); | 997 "</FORM>"); |
| 899 | 998 |
| 900 WebFrame* web_frame = GetMainFrame(); | 999 WebFrame* web_frame = GetMainFrame(); |
| 901 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 1000 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 902 | 1001 |
| 903 FormCache form_cache; | 1002 FormCache form_cache; |
| 904 std::vector<FormData> forms; | 1003 std::vector<FormData> forms; |
| 905 bool has_skipped_forms = form_cache.ExtractFormsAndFormElements(*web_frame, | 1004 form_cache.ExtractNewForms(*web_frame, &forms); |
| 906 3, | |
| 907 &forms, | |
| 908 NULL); | |
| 909 EXPECT_EQ(0U, forms.size()); | 1005 EXPECT_EQ(0U, forms.size()); |
| 910 EXPECT_FALSE(has_skipped_forms); | |
| 911 } | 1006 } |
| 912 | 1007 |
| 913 // We should not extract a form if it has too few fillable fields. | 1008 // We should not extract a form if it has too few fillable fields. |
| 914 // Make sure radio and checkbox fields don't count. | 1009 // Make sure radio and checkbox fields don't count. |
| 915 TEST_F(FormAutofillTest, ExtractFormsTooFewFieldsSkipsCheckable) { | 1010 TEST_F(FormAutofillTest, ExtractFormsTooFewFieldsSkipsCheckable) { |
| 916 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 1011 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
| 917 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 1012 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
| 918 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 1013 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
| 919 " <INPUT type=\"radio\" id=\"a_radio\" value=\"0\"/>" | 1014 " <INPUT type=\"radio\" id=\"a_radio\" value=\"0\"/>" |
| 920 " <INPUT type=\"checkbox\" id=\"a_check\" value=\"1\"/>" | 1015 " <INPUT type=\"checkbox\" id=\"a_check\" value=\"1\"/>" |
| 921 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 1016 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 922 "</FORM>"); | 1017 "</FORM>"); |
| 923 | 1018 |
| 924 WebFrame* web_frame = GetMainFrame(); | 1019 WebFrame* web_frame = GetMainFrame(); |
| 925 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 1020 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 926 | 1021 |
| 927 FormCache form_cache; | 1022 FormCache form_cache; |
| 928 std::vector<FormData> forms; | 1023 std::vector<FormData> forms; |
| 929 form_cache.ExtractForms(*web_frame, &forms); | 1024 form_cache.ExtractNewForms(*web_frame, &forms); |
| 930 EXPECT_EQ(0U, forms.size()); | 1025 EXPECT_EQ(0U, forms.size()); |
| 931 } | 1026 } |
| 932 | 1027 |
| 933 TEST_F(FormAutofillTest, WebFormElementToFormDataAutocomplete) { | 1028 TEST_F(FormAutofillTest, WebFormElementToFormDataAutocomplete) { |
| 934 { | 1029 { |
| 935 // Form is not auto-completable due to autocomplete=off. | 1030 // Form is not auto-completable due to autocomplete=off. |
| 936 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\"" | 1031 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\"" |
| 937 " autocomplete=off>" | 1032 " autocomplete=off>" |
| 938 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 1033 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
| 939 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 1034 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1016 "autocomplete=\"off\" />" | 1111 "autocomplete=\"off\" />" |
| 1017 " <INPUT type=\"text\" id=\"phone\" value=\"1.800.555.1234\"/>" | 1112 " <INPUT type=\"text\" id=\"phone\" value=\"1.800.555.1234\"/>" |
| 1018 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 1113 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 1019 "</FORM>"); | 1114 "</FORM>"); |
| 1020 | 1115 |
| 1021 WebFrame* web_frame = GetMainFrame(); | 1116 WebFrame* web_frame = GetMainFrame(); |
| 1022 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 1117 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 1023 | 1118 |
| 1024 FormCache form_cache; | 1119 FormCache form_cache; |
| 1025 std::vector<FormData> forms; | 1120 std::vector<FormData> forms; |
| 1026 form_cache.ExtractForms(*web_frame, &forms); | 1121 form_cache.ExtractNewForms(*web_frame, &forms); |
| 1027 ASSERT_EQ(1U, forms.size()); | 1122 ASSERT_EQ(1U, forms.size()); |
| 1028 | 1123 |
| 1029 // Get the input element we want to find. | 1124 // Get the input element we want to find. |
| 1030 WebElement element = web_frame->document().getElementById("firstname"); | 1125 WebElement element = web_frame->document().getElementById("firstname"); |
| 1031 WebInputElement input_element = element.to<WebInputElement>(); | 1126 WebInputElement input_element = element.to<WebInputElement>(); |
| 1032 | 1127 |
| 1033 // Find the form and verify it's the correct form. | 1128 // Find the form and verify it's the correct form. |
| 1034 FormData form; | 1129 FormData form; |
| 1035 FormFieldData field; | 1130 FormFieldData field; |
| 1036 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, | 1131 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 "Apt. 42" | 1205 "Apt. 42" |
| 1111 "</TEXTAREA>" | 1206 "</TEXTAREA>" |
| 1112 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 1207 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 1113 "</FORM>"); | 1208 "</FORM>"); |
| 1114 | 1209 |
| 1115 WebFrame* web_frame = GetMainFrame(); | 1210 WebFrame* web_frame = GetMainFrame(); |
| 1116 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 1211 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 1117 | 1212 |
| 1118 FormCache form_cache; | 1213 FormCache form_cache; |
| 1119 std::vector<FormData> forms; | 1214 std::vector<FormData> forms; |
| 1120 form_cache.ExtractForms(*web_frame, &forms); | 1215 form_cache.ExtractNewForms(*web_frame, &forms); |
| 1121 ASSERT_EQ(1U, forms.size()); | 1216 ASSERT_EQ(1U, forms.size()); |
| 1122 | 1217 |
| 1123 // Get the textarea element we want to find. | 1218 // Get the textarea element we want to find. |
| 1124 WebElement element = web_frame->document().getElementById("street-address"); | 1219 WebElement element = web_frame->document().getElementById("street-address"); |
| 1125 WebTextAreaElement textarea_element = element.to<WebTextAreaElement>(); | 1220 WebTextAreaElement textarea_element = element.to<WebTextAreaElement>(); |
| 1126 | 1221 |
| 1127 // Find the form and verify it's the correct form. | 1222 // Find the form and verify it's the correct form. |
| 1128 FormData form; | 1223 FormData form; |
| 1129 FormFieldData field; | 1224 FormFieldData field; |
| 1130 EXPECT_TRUE(FindFormAndFieldForFormControlElement(textarea_element, | 1225 EXPECT_TRUE(FindFormAndFieldForFormControlElement(textarea_element, |
| (...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2207 " <INPUT type=\"text\" id=\"lastname\" maxlength=\"7\"/>" | 2302 " <INPUT type=\"text\" id=\"lastname\" maxlength=\"7\"/>" |
| 2208 " <INPUT type=\"text\" id=\"email\" maxlength=\"9\"/>" | 2303 " <INPUT type=\"text\" id=\"email\" maxlength=\"9\"/>" |
| 2209 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 2304 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 2210 "</FORM>"); | 2305 "</FORM>"); |
| 2211 | 2306 |
| 2212 WebFrame* web_frame = GetMainFrame(); | 2307 WebFrame* web_frame = GetMainFrame(); |
| 2213 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2308 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2214 | 2309 |
| 2215 FormCache form_cache; | 2310 FormCache form_cache; |
| 2216 std::vector<FormData> forms; | 2311 std::vector<FormData> forms; |
| 2217 form_cache.ExtractForms(*web_frame, &forms); | 2312 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2218 ASSERT_EQ(1U, forms.size()); | 2313 ASSERT_EQ(1U, forms.size()); |
| 2219 | 2314 |
| 2220 // Get the input element we want to find. | 2315 // Get the input element we want to find. |
| 2221 WebElement element = web_frame->document().getElementById("firstname"); | 2316 WebElement element = web_frame->document().getElementById("firstname"); |
| 2222 WebInputElement input_element = element.to<WebInputElement>(); | 2317 WebInputElement input_element = element.to<WebInputElement>(); |
| 2223 | 2318 |
| 2224 // Find the form that contains the input element. | 2319 // Find the form that contains the input element. |
| 2225 FormData form; | 2320 FormData form; |
| 2226 FormFieldData field; | 2321 FormFieldData field; |
| 2227 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, | 2322 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2304 " <INPUT type=\"text\" id=\"lastname\" maxlength=\"-10\"/>" | 2399 " <INPUT type=\"text\" id=\"lastname\" maxlength=\"-10\"/>" |
| 2305 " <INPUT type=\"text\" id=\"email\" maxlength=\"-13\"/>" | 2400 " <INPUT type=\"text\" id=\"email\" maxlength=\"-13\"/>" |
| 2306 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 2401 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| 2307 "</FORM>"); | 2402 "</FORM>"); |
| 2308 | 2403 |
| 2309 WebFrame* web_frame = GetMainFrame(); | 2404 WebFrame* web_frame = GetMainFrame(); |
| 2310 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2405 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2311 | 2406 |
| 2312 FormCache form_cache; | 2407 FormCache form_cache; |
| 2313 std::vector<FormData> forms; | 2408 std::vector<FormData> forms; |
| 2314 form_cache.ExtractForms(*web_frame, &forms); | 2409 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2315 ASSERT_EQ(1U, forms.size()); | 2410 ASSERT_EQ(1U, forms.size()); |
| 2316 | 2411 |
| 2317 // Get the input element we want to find. | 2412 // Get the input element we want to find. |
| 2318 WebElement element = web_frame->document().getElementById("firstname"); | 2413 WebElement element = web_frame->document().getElementById("firstname"); |
| 2319 WebInputElement input_element = element.to<WebInputElement>(); | 2414 WebInputElement input_element = element.to<WebInputElement>(); |
| 2320 | 2415 |
| 2321 // Find the form that contains the input element. | 2416 // Find the form that contains the input element. |
| 2322 FormData form; | 2417 FormData form; |
| 2323 FormFieldData field; | 2418 FormFieldData field; |
| 2324 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, | 2419 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2385 " <INPUT type=\"text\" id=\"lastname\"/>" | 2480 " <INPUT type=\"text\" id=\"lastname\"/>" |
| 2386 " <INPUT type=\"text\" id=\"email\"/>" | 2481 " <INPUT type=\"text\" id=\"email\"/>" |
| 2387 " <INPUT type=\"submit\" value=\"Send\"/>" | 2482 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2388 "</FORM>"); | 2483 "</FORM>"); |
| 2389 | 2484 |
| 2390 WebFrame* web_frame = GetMainFrame(); | 2485 WebFrame* web_frame = GetMainFrame(); |
| 2391 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2486 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2392 | 2487 |
| 2393 FormCache form_cache; | 2488 FormCache form_cache; |
| 2394 std::vector<FormData> forms; | 2489 std::vector<FormData> forms; |
| 2395 form_cache.ExtractForms(*web_frame, &forms); | 2490 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2396 ASSERT_EQ(1U, forms.size()); | 2491 ASSERT_EQ(1U, forms.size()); |
| 2397 | 2492 |
| 2398 // Get the input element we want to find. | 2493 // Get the input element we want to find. |
| 2399 WebElement element = web_frame->document().getElementById("firstname"); | 2494 WebElement element = web_frame->document().getElementById("firstname"); |
| 2400 WebInputElement input_element = element.to<WebInputElement>(); | 2495 WebInputElement input_element = element.to<WebInputElement>(); |
| 2401 | 2496 |
| 2402 // Find the form that contains the input element. | 2497 // Find the form that contains the input element. |
| 2403 FormData form; | 2498 FormData form; |
| 2404 FormFieldData field; | 2499 FormFieldData field; |
| 2405 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, | 2500 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2475 " <INPUT type=\"text\" id=\"banana\"/>" | 2570 " <INPUT type=\"text\" id=\"banana\"/>" |
| 2476 " <INPUT type=\"text\" id=\"cantelope\"/>" | 2571 " <INPUT type=\"text\" id=\"cantelope\"/>" |
| 2477 " <INPUT type=\"submit\" value=\"Send\"/>" | 2572 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2478 "</FORM>"); | 2573 "</FORM>"); |
| 2479 | 2574 |
| 2480 WebFrame* web_frame = GetMainFrame(); | 2575 WebFrame* web_frame = GetMainFrame(); |
| 2481 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2576 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2482 | 2577 |
| 2483 FormCache form_cache; | 2578 FormCache form_cache; |
| 2484 std::vector<FormData> forms; | 2579 std::vector<FormData> forms; |
| 2485 form_cache.ExtractForms(*web_frame, &forms); | 2580 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2486 ASSERT_EQ(2U, forms.size()); | 2581 ASSERT_EQ(2U, forms.size()); |
| 2487 | 2582 |
| 2488 // Get the input element we want to find. | 2583 // Get the input element we want to find. |
| 2489 WebElement element = web_frame->document().getElementById("apple"); | 2584 WebElement element = web_frame->document().getElementById("apple"); |
| 2490 WebInputElement input_element = element.to<WebInputElement>(); | 2585 WebInputElement input_element = element.to<WebInputElement>(); |
| 2491 | 2586 |
| 2492 // Find the form that contains the input element. | 2587 // Find the form that contains the input element. |
| 2493 FormData form; | 2588 FormData form; |
| 2494 FormFieldData field; | 2589 FormFieldData field; |
| 2495 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, | 2590 EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2695 " <INPUT type=\"text\" id=\"lastname\"/>" | 2790 " <INPUT type=\"text\" id=\"lastname\"/>" |
| 2696 " <INPUT type=\"text\" id=\"email\"/>" | 2791 " <INPUT type=\"text\" id=\"email\"/>" |
| 2697 " <INPUT type=\"submit\" value=\"Send\"/>" | 2792 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2698 "</FORM>"); | 2793 "</FORM>"); |
| 2699 | 2794 |
| 2700 WebFrame* web_frame = GetMainFrame(); | 2795 WebFrame* web_frame = GetMainFrame(); |
| 2701 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2796 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2702 | 2797 |
| 2703 FormCache form_cache; | 2798 FormCache form_cache; |
| 2704 std::vector<FormData> forms; | 2799 std::vector<FormData> forms; |
| 2705 form_cache.ExtractForms(*web_frame, &forms); | 2800 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2706 ASSERT_EQ(1U, forms.size()); | 2801 ASSERT_EQ(1U, forms.size()); |
| 2707 | 2802 |
| 2708 // Get the input element we want to find. | 2803 // Get the input element we want to find. |
| 2709 WebElement element = web_frame->document().getElementById("firstname"); | 2804 WebElement element = web_frame->document().getElementById("firstname"); |
| 2710 WebInputElement input_element = element.to<WebInputElement>(); | 2805 WebInputElement input_element = element.to<WebInputElement>(); |
| 2711 | 2806 |
| 2712 // Simulate typing by modifying the field value. | 2807 // Simulate typing by modifying the field value. |
| 2713 input_element.setValue(ASCIIToUTF16("Wy")); | 2808 input_element.setValue(ASCIIToUTF16("Wy")); |
| 2714 | 2809 |
| 2715 // Find the form that contains the input element. | 2810 // Find the form that contains the input element. |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2807 " </TEXTAREA>" | 2902 " </TEXTAREA>" |
| 2808 " <TEXTAREA id=\"textarea-noAC\" autocomplete=\"off\">Carrot?</TEXTAREA>" | 2903 " <TEXTAREA id=\"textarea-noAC\" autocomplete=\"off\">Carrot?</TEXTAREA>" |
| 2809 " <INPUT type=\"submit\" value=\"Send\"/>" | 2904 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2810 "</FORM>"); | 2905 "</FORM>"); |
| 2811 | 2906 |
| 2812 WebFrame* web_frame = GetMainFrame(); | 2907 WebFrame* web_frame = GetMainFrame(); |
| 2813 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 2908 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2814 | 2909 |
| 2815 FormCache form_cache; | 2910 FormCache form_cache; |
| 2816 std::vector<FormData> forms; | 2911 std::vector<FormData> forms; |
| 2817 form_cache.ExtractForms(*web_frame, &forms); | 2912 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2818 ASSERT_EQ(1U, forms.size()); | 2913 ASSERT_EQ(1U, forms.size()); |
| 2819 | 2914 |
| 2820 // Set the auto-filled attribute on the firstname element. | 2915 // Set the auto-filled attribute on the firstname element. |
| 2821 WebInputElement firstname = | 2916 WebInputElement firstname = |
| 2822 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 2917 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 2823 firstname.setAutofilled(true); | 2918 firstname.setAutofilled(true); |
| 2824 | 2919 |
| 2825 // Set the value of the disabled text input element. | 2920 // Set the value of the disabled text input element. |
| 2826 WebInputElement notenabled = | 2921 WebInputElement notenabled = |
| 2827 web_frame->document().getElementById("notenabled").to<WebInputElement>(); | 2922 web_frame->document().getElementById("notenabled").to<WebInputElement>(); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2911 " <OPTION>AK</OPTION>" | 3006 " <OPTION>AK</OPTION>" |
| 2912 " </SELECT>" | 3007 " </SELECT>" |
| 2913 " <INPUT type=\"submit\" value=\"Send\"/>" | 3008 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2914 "</FORM>"); | 3009 "</FORM>"); |
| 2915 | 3010 |
| 2916 WebFrame* web_frame = GetMainFrame(); | 3011 WebFrame* web_frame = GetMainFrame(); |
| 2917 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 3012 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2918 | 3013 |
| 2919 FormCache form_cache; | 3014 FormCache form_cache; |
| 2920 std::vector<FormData> forms; | 3015 std::vector<FormData> forms; |
| 2921 form_cache.ExtractForms(*web_frame, &forms); | 3016 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2922 ASSERT_EQ(1U, forms.size()); | 3017 ASSERT_EQ(1U, forms.size()); |
| 2923 | 3018 |
| 2924 // Set the auto-filled attribute on the firstname element. | 3019 // Set the auto-filled attribute on the firstname element. |
| 2925 WebInputElement firstname = | 3020 WebInputElement firstname = |
| 2926 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 3021 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 2927 firstname.setAutofilled(true); | 3022 firstname.setAutofilled(true); |
| 2928 | 3023 |
| 2929 // Set the value of the select-one. | 3024 // Set the value of the select-one. |
| 2930 WebSelectElement select_element = | 3025 WebSelectElement select_element = |
| 2931 web_frame->document().getElementById("state").to<WebSelectElement>(); | 3026 web_frame->document().getElementById("state").to<WebSelectElement>(); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2984 " <INPUT type=\"email\" id=\"email2\"/>" | 3079 " <INPUT type=\"email\" id=\"email2\"/>" |
| 2985 " <INPUT type=\"tel\" id=\"phone\"/>" | 3080 " <INPUT type=\"tel\" id=\"phone\"/>" |
| 2986 " <INPUT type=\"submit\" value=\"Send\"/>" | 3081 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 2987 "</FORM>"); | 3082 "</FORM>"); |
| 2988 | 3083 |
| 2989 WebFrame* web_frame = GetMainFrame(); | 3084 WebFrame* web_frame = GetMainFrame(); |
| 2990 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 3085 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 2991 | 3086 |
| 2992 FormCache form_cache; | 3087 FormCache form_cache; |
| 2993 std::vector<FormData> forms; | 3088 std::vector<FormData> forms; |
| 2994 form_cache.ExtractForms(*web_frame, &forms); | 3089 form_cache.ExtractNewForms(*web_frame, &forms); |
| 2995 ASSERT_EQ(1U, forms.size()); | 3090 ASSERT_EQ(1U, forms.size()); |
| 2996 | 3091 |
| 2997 // Set the auto-filled attribute. | 3092 // Set the auto-filled attribute. |
| 2998 WebInputElement firstname = | 3093 WebInputElement firstname = |
| 2999 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 3094 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 3000 firstname.setAutofilled(true); | 3095 firstname.setAutofilled(true); |
| 3001 WebInputElement lastname = | 3096 WebInputElement lastname = |
| 3002 web_frame->document().getElementById("lastname").to<WebInputElement>(); | 3097 web_frame->document().getElementById("lastname").to<WebInputElement>(); |
| 3003 lastname.setAutofilled(true); | 3098 lastname.setAutofilled(true); |
| 3004 WebInputElement email = | 3099 WebInputElement email = |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3052 " <INPUT type=\"email\" id=\"email2\"/>" | 3147 " <INPUT type=\"email\" id=\"email2\"/>" |
| 3053 " <INPUT type=\"tel\" id=\"phone\"/>" | 3148 " <INPUT type=\"tel\" id=\"phone\"/>" |
| 3054 " <INPUT type=\"submit\" value=\"Send\"/>" | 3149 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 3055 "</FORM>"); | 3150 "</FORM>"); |
| 3056 | 3151 |
| 3057 WebFrame* web_frame = GetMainFrame(); | 3152 WebFrame* web_frame = GetMainFrame(); |
| 3058 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 3153 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 3059 | 3154 |
| 3060 FormCache form_cache; | 3155 FormCache form_cache; |
| 3061 std::vector<FormData> forms; | 3156 std::vector<FormData> forms; |
| 3062 form_cache.ExtractForms(*web_frame, &forms); | 3157 form_cache.ExtractNewForms(*web_frame, &forms); |
| 3063 ASSERT_EQ(1U, forms.size()); | 3158 ASSERT_EQ(1U, forms.size()); |
| 3064 | 3159 |
| 3065 // Set the auto-filled attribute. | 3160 // Set the auto-filled attribute. |
| 3066 WebInputElement firstname = | 3161 WebInputElement firstname = |
| 3067 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 3162 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 3068 firstname.setAutofilled(true); | 3163 firstname.setAutofilled(true); |
| 3069 WebInputElement lastname = | 3164 WebInputElement lastname = |
| 3070 web_frame->document().getElementById("lastname").to<WebInputElement>(); | 3165 web_frame->document().getElementById("lastname").to<WebInputElement>(); |
| 3071 lastname.setAutofilled(true); | 3166 lastname.setAutofilled(true); |
| 3072 WebInputElement email = | 3167 WebInputElement email = |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3120 " <INPUT type=\"email\" id=\"email2\"/>" | 3215 " <INPUT type=\"email\" id=\"email2\"/>" |
| 3121 " <INPUT type=\"tel\" id=\"phone\"/>" | 3216 " <INPUT type=\"tel\" id=\"phone\"/>" |
| 3122 " <INPUT type=\"submit\" value=\"Send\"/>" | 3217 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 3123 "</FORM>"); | 3218 "</FORM>"); |
| 3124 | 3219 |
| 3125 WebFrame* web_frame = GetMainFrame(); | 3220 WebFrame* web_frame = GetMainFrame(); |
| 3126 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 3221 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 3127 | 3222 |
| 3128 FormCache form_cache; | 3223 FormCache form_cache; |
| 3129 std::vector<FormData> forms; | 3224 std::vector<FormData> forms; |
| 3130 form_cache.ExtractForms(*web_frame, &forms); | 3225 form_cache.ExtractNewForms(*web_frame, &forms); |
| 3131 ASSERT_EQ(1U, forms.size()); | 3226 ASSERT_EQ(1U, forms.size()); |
| 3132 | 3227 |
| 3133 // Set the auto-filled attribute. | 3228 // Set the auto-filled attribute. |
| 3134 WebInputElement firstname = | 3229 WebInputElement firstname = |
| 3135 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 3230 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 3136 firstname.setAutofilled(true); | 3231 firstname.setAutofilled(true); |
| 3137 WebInputElement lastname = | 3232 WebInputElement lastname = |
| 3138 web_frame->document().getElementById("lastname").to<WebInputElement>(); | 3233 web_frame->document().getElementById("lastname").to<WebInputElement>(); |
| 3139 lastname.setAutofilled(true); | 3234 lastname.setAutofilled(true); |
| 3140 WebInputElement email = | 3235 WebInputElement email = |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3187 " <INPUT type=\"email\" id=\"email2\"/>" | 3282 " <INPUT type=\"email\" id=\"email2\"/>" |
| 3188 " <INPUT type=\"tel\" id=\"phone\"/>" | 3283 " <INPUT type=\"tel\" id=\"phone\"/>" |
| 3189 " <INPUT type=\"submit\" value=\"Send\"/>" | 3284 " <INPUT type=\"submit\" value=\"Send\"/>" |
| 3190 "</FORM>"); | 3285 "</FORM>"); |
| 3191 | 3286 |
| 3192 WebFrame* web_frame = GetMainFrame(); | 3287 WebFrame* web_frame = GetMainFrame(); |
| 3193 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); | 3288 ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame); |
| 3194 | 3289 |
| 3195 FormCache form_cache; | 3290 FormCache form_cache; |
| 3196 std::vector<FormData> forms; | 3291 std::vector<FormData> forms; |
| 3197 form_cache.ExtractForms(*web_frame, &forms); | 3292 form_cache.ExtractNewForms(*web_frame, &forms); |
| 3198 ASSERT_EQ(1U, forms.size()); | 3293 ASSERT_EQ(1U, forms.size()); |
| 3199 | 3294 |
| 3200 WebInputElement firstname = | 3295 WebInputElement firstname = |
| 3201 web_frame->document().getElementById("firstname").to<WebInputElement>(); | 3296 web_frame->document().getElementById("firstname").to<WebInputElement>(); |
| 3202 | 3297 |
| 3203 // Auto-filled attribute not set yet. | 3298 // Auto-filled attribute not set yet. |
| 3204 EXPECT_FALSE(FormWithElementIsAutofilled(firstname)); | 3299 EXPECT_FALSE(FormWithElementIsAutofilled(firstname)); |
| 3205 | 3300 |
| 3206 // Set the auto-filled attribute. | 3301 // Set the auto-filled attribute. |
| 3207 firstname.setAutofilled(true); | 3302 firstname.setAutofilled(true); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3353 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]); | 3448 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]); |
| 3354 | 3449 |
| 3355 expected.name = ASCIIToUTF16("country"); | 3450 expected.name = ASCIIToUTF16("country"); |
| 3356 expected.value = ASCIIToUTF16("AL"); | 3451 expected.value = ASCIIToUTF16("AL"); |
| 3357 expected.form_control_type = "select-one"; | 3452 expected.form_control_type = "select-one"; |
| 3358 expected.max_length = 0; | 3453 expected.max_length = 0; |
| 3359 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]); | 3454 EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]); |
| 3360 } | 3455 } |
| 3361 | 3456 |
| 3362 } // namespace autofill | 3457 } // namespace autofill |
| OLD | NEW |