OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/shared_memory.h" | 8 #include "base/shared_memory.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 using WebKit::WebDocument; | 34 using WebKit::WebDocument; |
35 using WebKit::WebFrame; | 35 using WebKit::WebFrame; |
36 using WebKit::WebInputElement; | 36 using WebKit::WebInputElement; |
37 using WebKit::WebString; | 37 using WebKit::WebString; |
38 using WebKit::WebTextDirection; | 38 using WebKit::WebTextDirection; |
39 using WebKit::WebURLError; | 39 using WebKit::WebURLError; |
40 using webkit_glue::FormData; | 40 using webkit_glue::FormData; |
41 using webkit_glue::FormField; | 41 using webkit_glue::FormField; |
42 | 42 |
43 namespace { | |
44 | |
45 // TODO(isherman): Pull this as a named constant from WebKit | |
46 const int kDefaultMaxLength = 0x80000; | |
47 | |
48 } // namespace | |
49 | |
50 // Test that we get form state change notifications when input fields change. | 43 // Test that we get form state change notifications when input fields change. |
51 TEST_F(RenderViewTest, OnNavStateChanged) { | 44 TEST_F(RenderViewTest, OnNavStateChanged) { |
52 // Don't want any delay for form state sync changes. This will still post a | 45 // Don't want any delay for form state sync changes. This will still post a |
53 // message so updates will get coalesced, but as soon as we spin the message | 46 // message so updates will get coalesced, but as soon as we spin the message |
54 // loop, it will generate an update. | 47 // loop, it will generate an update. |
55 view_->set_send_content_state_immediately(true); | 48 view_->set_send_content_state_immediately(true); |
56 | 49 |
57 LoadHTML("<input type=\"text\" id=\"elt_text\"></input>"); | 50 LoadHTML("<input type=\"text\" id=\"elt_text\"></input>"); |
58 | 51 |
59 // We should NOT have gotten a form state change notification yet. | 52 // We should NOT have gotten a form state change notification yet. |
(...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 AutoFillHostMsg_FormsSeen::Param params; | 1031 AutoFillHostMsg_FormsSeen::Param params; |
1039 AutoFillHostMsg_FormsSeen::Read(message, ¶ms); | 1032 AutoFillHostMsg_FormsSeen::Read(message, ¶ms); |
1040 const std::vector<FormData>& forms = params.a; | 1033 const std::vector<FormData>& forms = params.a; |
1041 ASSERT_EQ(1UL, forms.size()); | 1034 ASSERT_EQ(1UL, forms.size()); |
1042 ASSERT_EQ(3UL, forms[0].fields.size()); | 1035 ASSERT_EQ(3UL, forms[0].fields.size()); |
1043 EXPECT_TRUE(forms[0].fields[0].StrictlyEqualsHack( | 1036 EXPECT_TRUE(forms[0].fields[0].StrictlyEqualsHack( |
1044 FormField(string16(), | 1037 FormField(string16(), |
1045 ASCIIToUTF16("firstname"), | 1038 ASCIIToUTF16("firstname"), |
1046 string16(), | 1039 string16(), |
1047 ASCIIToUTF16("text"), | 1040 ASCIIToUTF16("text"), |
1048 kDefaultMaxLength, | 1041 WebInputElement::defaultMaxLength(), |
1049 false))) << forms[0].fields[0]; | 1042 false))) << forms[0].fields[0]; |
1050 EXPECT_TRUE(forms[0].fields[1].StrictlyEqualsHack( | 1043 EXPECT_TRUE(forms[0].fields[1].StrictlyEqualsHack( |
1051 FormField(string16(), | 1044 FormField(string16(), |
1052 ASCIIToUTF16("middlename"), | 1045 ASCIIToUTF16("middlename"), |
1053 string16(), | 1046 string16(), |
1054 ASCIIToUTF16("text"), | 1047 ASCIIToUTF16("text"), |
1055 kDefaultMaxLength, | 1048 WebInputElement::defaultMaxLength(), |
1056 false))) << forms[0].fields[1]; | 1049 false))) << forms[0].fields[1]; |
1057 EXPECT_TRUE(forms[0].fields[2].StrictlyEqualsHack( | 1050 EXPECT_TRUE(forms[0].fields[2].StrictlyEqualsHack( |
1058 FormField(string16(), | 1051 FormField(string16(), |
1059 ASCIIToUTF16("state"), | 1052 ASCIIToUTF16("state"), |
1060 ASCIIToUTF16("?"), | 1053 ASCIIToUTF16("?"), |
1061 ASCIIToUTF16("select-one"), | 1054 ASCIIToUTF16("select-one"), |
1062 0, | 1055 0, |
1063 false))) << forms[0].fields[2]; | 1056 false))) << forms[0].fields[2]; |
1064 | 1057 |
1065 // Verify that |didAcceptAutoFillSuggestion()| sends the expected number of | 1058 // Verify that |didAcceptAutoFillSuggestion()| sends the expected number of |
(...skipping 19 matching lines...) Expand all Loading... |
1085 ASSERT_NE(static_cast<IPC::Message*>(NULL), message2); | 1078 ASSERT_NE(static_cast<IPC::Message*>(NULL), message2); |
1086 AutoFillHostMsg_FillAutoFillFormData::Param params2; | 1079 AutoFillHostMsg_FillAutoFillFormData::Param params2; |
1087 AutoFillHostMsg_FillAutoFillFormData::Read(message2, ¶ms2); | 1080 AutoFillHostMsg_FillAutoFillFormData::Read(message2, ¶ms2); |
1088 const FormData& form2 = params2.b; | 1081 const FormData& form2 = params2.b; |
1089 ASSERT_EQ(3UL, form2.fields.size()); | 1082 ASSERT_EQ(3UL, form2.fields.size()); |
1090 EXPECT_TRUE(form2.fields[0].StrictlyEqualsHack( | 1083 EXPECT_TRUE(form2.fields[0].StrictlyEqualsHack( |
1091 FormField(string16(), | 1084 FormField(string16(), |
1092 ASCIIToUTF16("firstname"), | 1085 ASCIIToUTF16("firstname"), |
1093 string16(), | 1086 string16(), |
1094 ASCIIToUTF16("text"), | 1087 ASCIIToUTF16("text"), |
1095 kDefaultMaxLength, | 1088 WebInputElement::defaultMaxLength(), |
1096 false))) << form2.fields[0]; | 1089 false))) << form2.fields[0]; |
1097 EXPECT_TRUE(form2.fields[1].StrictlyEqualsHack( | 1090 EXPECT_TRUE(form2.fields[1].StrictlyEqualsHack( |
1098 FormField(string16(), | 1091 FormField(string16(), |
1099 ASCIIToUTF16("middlename"), | 1092 ASCIIToUTF16("middlename"), |
1100 string16(), | 1093 string16(), |
1101 ASCIIToUTF16("text"), | 1094 ASCIIToUTF16("text"), |
1102 kDefaultMaxLength, | 1095 WebInputElement::defaultMaxLength(), |
1103 false))) << form2.fields[1]; | 1096 false))) << form2.fields[1]; |
1104 EXPECT_TRUE(form2.fields[2].StrictlyEqualsHack( | 1097 EXPECT_TRUE(form2.fields[2].StrictlyEqualsHack( |
1105 FormField(string16(), | 1098 FormField(string16(), |
1106 ASCIIToUTF16("state"), | 1099 ASCIIToUTF16("state"), |
1107 ASCIIToUTF16("?"), | 1100 ASCIIToUTF16("?"), |
1108 ASCIIToUTF16("select-one"), | 1101 ASCIIToUTF16("select-one"), |
1109 0, | 1102 0, |
1110 false))) << form2.fields[2]; | 1103 false))) << form2.fields[2]; |
1111 } | 1104 } |
1112 | 1105 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1215 LoadHTML("<html><head><meta http-equiv=\"content-language\" " | 1208 LoadHTML("<html><head><meta http-equiv=\"content-language\" " |
1216 "content=\" fr , es,en \">" | 1209 "content=\" fr , es,en \">" |
1217 "</head><body>A random page with random content.</body></html>"); | 1210 "</head><body>A random page with random content.</body></html>"); |
1218 ProcessPendingMessages(); | 1211 ProcessPendingMessages(); |
1219 message = render_thread_.sink().GetUniqueMessageMatching( | 1212 message = render_thread_.sink().GetUniqueMessageMatching( |
1220 ViewHostMsg_PageContents::ID); | 1213 ViewHostMsg_PageContents::ID); |
1221 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 1214 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
1222 ViewHostMsg_PageContents::Read(message, ¶ms); | 1215 ViewHostMsg_PageContents::Read(message, ¶ms); |
1223 EXPECT_EQ("fr", params.d); | 1216 EXPECT_EQ("fr", params.d); |
1224 } | 1217 } |
OLD | NEW |