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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/string16.h" | 7 #include "base/string16.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/renderer/autofill/form_manager.h" | 10 #include "chrome/renderer/autofill/form_manager.h" |
(...skipping 20 matching lines...) Expand all Loading... | |
31 using WebKit::WebSelectElement; | 31 using WebKit::WebSelectElement; |
32 using WebKit::WebNode; | 32 using WebKit::WebNode; |
33 using WebKit::WebString; | 33 using WebKit::WebString; |
34 using WebKit::WebVector; | 34 using WebKit::WebVector; |
35 | 35 |
36 using autofill::FormManager; | 36 using autofill::FormManager; |
37 | 37 |
38 using webkit_glue::FormData; | 38 using webkit_glue::FormData; |
39 using webkit_glue::FormField; | 39 using webkit_glue::FormField; |
40 | 40 |
41 namespace { | |
42 | |
43 // TODO(isherman): Pull this as a named constant from WebKit | |
44 const int kDefaultMaxLength = 0x80000; | |
45 | |
46 } // namespace | |
47 | |
48 class FormManagerTest : public RenderViewTest { | 41 class FormManagerTest : public RenderViewTest { |
49 public: | 42 public: |
50 FormManagerTest() : RenderViewTest() {} | 43 FormManagerTest() : RenderViewTest() {} |
51 virtual ~FormManagerTest() {} | 44 virtual ~FormManagerTest() {} |
52 | 45 |
53 void ExpectLabels(const char* html, | 46 void ExpectLabels(const char* html, |
54 const std::vector<string16>& labels, | 47 const std::vector<string16>& labels, |
55 const std::vector<string16>& names, | 48 const std::vector<string16>& names, |
56 const std::vector<string16>& values) { | 49 const std::vector<string16>& values) { |
57 ASSERT_EQ(labels.size(), names.size()); | 50 ASSERT_EQ(labels.size(), names.size()); |
(...skipping 17 matching lines...) Expand all Loading... | |
75 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 68 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
76 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 69 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
77 | 70 |
78 const std::vector<FormField>& fields = form.fields; | 71 const std::vector<FormField>& fields = form.fields; |
79 ASSERT_EQ(labels.size(), fields.size()); | 72 ASSERT_EQ(labels.size(), fields.size()); |
80 for (size_t i = 0; i < labels.size(); ++i) { | 73 for (size_t i = 0; i < labels.size(); ++i) { |
81 FormField expected = FormField(labels[i], | 74 FormField expected = FormField(labels[i], |
82 names[i], | 75 names[i], |
83 values[i], | 76 values[i], |
84 ASCIIToUTF16("text"), | 77 ASCIIToUTF16("text"), |
85 kDefaultMaxLength, | 78 kDefaultMaxLength(), |
86 false); | 79 false); |
87 EXPECT_TRUE(fields[i].StrictlyEqualsHack(expected)) | 80 EXPECT_TRUE(fields[i].StrictlyEqualsHack(expected)) |
88 << "Expected \"" << expected << "\", got \"" << fields[i] << "\""; | 81 << "Expected \"" << expected << "\", got \"" << fields[i] << "\""; |
89 } | 82 } |
90 } | 83 } |
91 | 84 |
92 void ExpectJohnSmithLabels(const char* html) { | 85 void ExpectJohnSmithLabels(const char* html) { |
93 std::vector<string16> labels, names, values; | 86 std::vector<string16> labels, names, values; |
94 | 87 |
95 labels.push_back(ASCIIToUTF16("First name:")); | 88 labels.push_back(ASCIIToUTF16("First name:")); |
96 names.push_back(ASCIIToUTF16("firstname")); | 89 names.push_back(ASCIIToUTF16("firstname")); |
97 values.push_back(ASCIIToUTF16("John")); | 90 values.push_back(ASCIIToUTF16("John")); |
98 | 91 |
99 labels.push_back(ASCIIToUTF16("Last name:")); | 92 labels.push_back(ASCIIToUTF16("Last name:")); |
100 names.push_back(ASCIIToUTF16("lastname")); | 93 names.push_back(ASCIIToUTF16("lastname")); |
101 values.push_back(ASCIIToUTF16("Smith")); | 94 values.push_back(ASCIIToUTF16("Smith")); |
102 | 95 |
103 labels.push_back(ASCIIToUTF16("Email:")); | 96 labels.push_back(ASCIIToUTF16("Email:")); |
104 names.push_back(ASCIIToUTF16("email")); | 97 names.push_back(ASCIIToUTF16("email")); |
105 values.push_back(ASCIIToUTF16("john@example.com")); | 98 values.push_back(ASCIIToUTF16("john@example.com")); |
106 | 99 |
107 ExpectLabels(html, labels, names, values); | 100 ExpectLabels(html, labels, names, values); |
108 } | 101 } |
109 | 102 |
103 // Declared as a function rather than a constant to make sure that | |
104 // initialization order works out correctly. | |
105 static int kDefaultMaxLength() { | |
dhollowa
2011/02/11 17:14:32
Actually, let's just get rid of this function and
Ilya Sherman
2011/02/11 21:34:00
Done.
| |
106 return WebInputElement::defaultMaxLength(); | |
107 } | |
108 | |
110 | 109 |
111 private: | 110 private: |
112 DISALLOW_COPY_AND_ASSIGN(FormManagerTest); | 111 DISALLOW_COPY_AND_ASSIGN(FormManagerTest); |
113 }; | 112 }; |
114 | 113 |
115 // We should be able to extract a normal text field. | 114 // We should be able to extract a normal text field. |
116 TEST_F(FormManagerTest, WebFormControlElementToFormField) { | 115 TEST_F(FormManagerTest, WebFormControlElementToFormField) { |
117 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"/>"); | 116 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"/>"); |
118 | 117 |
119 WebFrame* frame = GetMainFrame(); | 118 WebFrame* frame = GetMainFrame(); |
120 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); | 119 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); |
121 | 120 |
122 WebElement web_element = frame->document().getElementById("element"); | 121 WebElement web_element = frame->document().getElementById("element"); |
123 WebFormControlElement element = web_element.to<WebFormControlElement>(); | 122 WebFormControlElement element = web_element.to<WebFormControlElement>(); |
124 FormField result1; | 123 FormField result1; |
125 FormManager::WebFormControlElementToFormField(element, | 124 FormManager::WebFormControlElementToFormField(element, |
126 FormManager::EXTRACT_NONE, | 125 FormManager::EXTRACT_NONE, |
127 &result1); | 126 &result1); |
128 EXPECT_TRUE(result1.StrictlyEqualsHack(FormField(string16(), | 127 EXPECT_TRUE(result1.StrictlyEqualsHack(FormField(string16(), |
129 ASCIIToUTF16("element"), | 128 ASCIIToUTF16("element"), |
130 string16(), | 129 string16(), |
131 ASCIIToUTF16("text"), | 130 ASCIIToUTF16("text"), |
132 kDefaultMaxLength, | 131 kDefaultMaxLength(), |
133 false))); | 132 false))); |
134 FormField result2; | 133 FormField result2; |
135 FormManager::WebFormControlElementToFormField(element, | 134 FormManager::WebFormControlElementToFormField(element, |
136 FormManager::EXTRACT_VALUE, | 135 FormManager::EXTRACT_VALUE, |
137 &result2); | 136 &result2); |
138 EXPECT_TRUE(result2.StrictlyEqualsHack(FormField(string16(), | 137 EXPECT_TRUE(result2.StrictlyEqualsHack(FormField(string16(), |
139 ASCIIToUTF16("element"), | 138 ASCIIToUTF16("element"), |
140 ASCIIToUTF16("value"), | 139 ASCIIToUTF16("value"), |
141 ASCIIToUTF16("text"), | 140 ASCIIToUTF16("text"), |
142 kDefaultMaxLength, | 141 kDefaultMaxLength(), |
143 false))); | 142 false))); |
144 } | 143 } |
145 | 144 |
146 // We should be able to extract a text field with autocomplete="off". | 145 // We should be able to extract a text field with autocomplete="off". |
147 TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompleteOff) { | 146 TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompleteOff) { |
148 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"" | 147 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"" |
149 " autocomplete=\"off\"/>"); | 148 " autocomplete=\"off\"/>"); |
150 | 149 |
151 WebFrame* frame = GetMainFrame(); | 150 WebFrame* frame = GetMainFrame(); |
152 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); | 151 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); |
153 | 152 |
154 WebElement web_element = frame->document().getElementById("element"); | 153 WebElement web_element = frame->document().getElementById("element"); |
155 WebFormControlElement element = web_element.to<WebFormControlElement>(); | 154 WebFormControlElement element = web_element.to<WebFormControlElement>(); |
156 FormField result; | 155 FormField result; |
157 FormManager::WebFormControlElementToFormField(element, | 156 FormManager::WebFormControlElementToFormField(element, |
158 FormManager::EXTRACT_VALUE, | 157 FormManager::EXTRACT_VALUE, |
159 &result); | 158 &result); |
160 EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(), | 159 EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(), |
161 ASCIIToUTF16("element"), | 160 ASCIIToUTF16("element"), |
162 ASCIIToUTF16("value"), | 161 ASCIIToUTF16("value"), |
163 ASCIIToUTF16("text"), | 162 ASCIIToUTF16("text"), |
164 kDefaultMaxLength, | 163 kDefaultMaxLength(), |
165 false))); | 164 false))); |
166 } | 165 } |
167 | 166 |
168 // We should be able to extract a text field with maxlength specified. | 167 // We should be able to extract a text field with maxlength specified. |
169 TEST_F(FormManagerTest, WebFormControlElementToFormFieldMaxLength) { | 168 TEST_F(FormManagerTest, WebFormControlElementToFormFieldMaxLength) { |
170 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"" | 169 LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"" |
171 " maxlength=\"5\"/>"); | 170 " maxlength=\"5\"/>"); |
172 | 171 |
173 WebFrame* frame = GetMainFrame(); | 172 WebFrame* frame = GetMainFrame(); |
174 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); | 173 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); |
(...skipping 23 matching lines...) Expand all Loading... | |
198 WebInputElement element = web_element.to<WebInputElement>(); | 197 WebInputElement element = web_element.to<WebInputElement>(); |
199 element.setAutofilled(true); | 198 element.setAutofilled(true); |
200 FormField result; | 199 FormField result; |
201 FormManager::WebFormControlElementToFormField(element, | 200 FormManager::WebFormControlElementToFormField(element, |
202 FormManager::EXTRACT_VALUE, | 201 FormManager::EXTRACT_VALUE, |
203 &result); | 202 &result); |
204 EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(), | 203 EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(), |
205 ASCIIToUTF16("element"), | 204 ASCIIToUTF16("element"), |
206 ASCIIToUTF16("value"), | 205 ASCIIToUTF16("value"), |
207 ASCIIToUTF16("text"), | 206 ASCIIToUTF16("text"), |
208 kDefaultMaxLength, | 207 kDefaultMaxLength(), |
209 true))); | 208 true))); |
210 } | 209 } |
211 | 210 |
212 // We should be able to extract a <select> field. | 211 // We should be able to extract a <select> field. |
213 TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) { | 212 TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) { |
214 LoadHTML("<SELECT id=\"element\"/>" | 213 LoadHTML("<SELECT id=\"element\"/>" |
215 " <OPTION value=\"CA\">California</OPTION>" | 214 " <OPTION value=\"CA\">California</OPTION>" |
216 " <OPTION value=\"TX\">Texas</OPTION>" | 215 " <OPTION value=\"TX\">Texas</OPTION>" |
217 "</SELECT>"); | 216 "</SELECT>"); |
218 | 217 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
363 EXPECT_EQ(GURL(frame->url()), form.origin); | 362 EXPECT_EQ(GURL(frame->url()), form.origin); |
364 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 363 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
365 | 364 |
366 const std::vector<FormField>& fields = form.fields; | 365 const std::vector<FormField>& fields = form.fields; |
367 ASSERT_EQ(3U, fields.size()); | 366 ASSERT_EQ(3U, fields.size()); |
368 EXPECT_TRUE(fields[0].StrictlyEqualsHack( | 367 EXPECT_TRUE(fields[0].StrictlyEqualsHack( |
369 FormField(string16(), | 368 FormField(string16(), |
370 ASCIIToUTF16("firstname"), | 369 ASCIIToUTF16("firstname"), |
371 ASCIIToUTF16("John"), | 370 ASCIIToUTF16("John"), |
372 ASCIIToUTF16("text"), | 371 ASCIIToUTF16("text"), |
373 kDefaultMaxLength, | 372 kDefaultMaxLength(), |
374 false))); | 373 false))); |
375 EXPECT_TRUE(fields[1].StrictlyEqualsHack( | 374 EXPECT_TRUE(fields[1].StrictlyEqualsHack( |
376 FormField(string16(), | 375 FormField(string16(), |
377 ASCIIToUTF16("lastname"), | 376 ASCIIToUTF16("lastname"), |
378 ASCIIToUTF16("Smith"), | 377 ASCIIToUTF16("Smith"), |
379 ASCIIToUTF16("text"), | 378 ASCIIToUTF16("text"), |
380 kDefaultMaxLength, | 379 kDefaultMaxLength(), |
381 false))); | 380 false))); |
382 EXPECT_TRUE(fields[2].StrictlyEqualsHack( | 381 EXPECT_TRUE(fields[2].StrictlyEqualsHack( |
383 FormField(string16(), | 382 FormField(string16(), |
384 ASCIIToUTF16("state"), | 383 ASCIIToUTF16("state"), |
385 ASCIIToUTF16("CA"), | 384 ASCIIToUTF16("CA"), |
386 ASCIIToUTF16("select-one"), | 385 ASCIIToUTF16("select-one"), |
387 0, | 386 0, |
388 false))); | 387 false))); |
389 } | 388 } |
390 | 389 |
(...skipping 19 matching lines...) Expand all Loading... | |
410 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 409 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
411 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 410 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
412 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 411 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
413 | 412 |
414 const std::vector<FormField>& fields = form.fields; | 413 const std::vector<FormField>& fields = form.fields; |
415 ASSERT_EQ(3U, fields.size()); | 414 ASSERT_EQ(3U, fields.size()); |
416 EXPECT_EQ(FormField(string16(), | 415 EXPECT_EQ(FormField(string16(), |
417 ASCIIToUTF16("firstname"), | 416 ASCIIToUTF16("firstname"), |
418 ASCIIToUTF16("John"), | 417 ASCIIToUTF16("John"), |
419 ASCIIToUTF16("text"), | 418 ASCIIToUTF16("text"), |
420 kDefaultMaxLength, | 419 kDefaultMaxLength(), |
421 false), | 420 false), |
422 fields[0]); | 421 fields[0]); |
423 EXPECT_EQ(FormField(string16(), | 422 EXPECT_EQ(FormField(string16(), |
424 ASCIIToUTF16("lastname"), | 423 ASCIIToUTF16("lastname"), |
425 ASCIIToUTF16("Smith"), | 424 ASCIIToUTF16("Smith"), |
426 ASCIIToUTF16("text"), | 425 ASCIIToUTF16("text"), |
427 kDefaultMaxLength, | 426 kDefaultMaxLength(), |
428 false), | 427 false), |
429 fields[1]); | 428 fields[1]); |
430 EXPECT_EQ(FormField(string16(), | 429 EXPECT_EQ(FormField(string16(), |
431 ASCIIToUTF16("email"), | 430 ASCIIToUTF16("email"), |
432 ASCIIToUTF16("john@example.com"), | 431 ASCIIToUTF16("john@example.com"), |
433 ASCIIToUTF16("text"), | 432 ASCIIToUTF16("text"), |
434 kDefaultMaxLength, | 433 kDefaultMaxLength(), |
435 false), | 434 false), |
436 fields[2]); | 435 fields[2]); |
437 } | 436 } |
438 | 437 |
439 TEST_F(FormManagerTest, ExtractMultipleForms) { | 438 TEST_F(FormManagerTest, ExtractMultipleForms) { |
440 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 439 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
441 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 440 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
442 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 441 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
443 " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\"/>" | 442 " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\"/>" |
444 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 443 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
(...skipping 20 matching lines...) Expand all Loading... | |
465 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 464 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
466 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 465 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
467 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 466 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
468 | 467 |
469 const std::vector<FormField>& fields = form.fields; | 468 const std::vector<FormField>& fields = form.fields; |
470 ASSERT_EQ(3U, fields.size()); | 469 ASSERT_EQ(3U, fields.size()); |
471 EXPECT_EQ(FormField(string16(), | 470 EXPECT_EQ(FormField(string16(), |
472 ASCIIToUTF16("firstname"), | 471 ASCIIToUTF16("firstname"), |
473 ASCIIToUTF16("John"), | 472 ASCIIToUTF16("John"), |
474 ASCIIToUTF16("text"), | 473 ASCIIToUTF16("text"), |
475 kDefaultMaxLength, | 474 kDefaultMaxLength(), |
476 false), | 475 false), |
477 fields[0]); | 476 fields[0]); |
478 EXPECT_EQ(FormField(string16(), | 477 EXPECT_EQ(FormField(string16(), |
479 ASCIIToUTF16("lastname"), | 478 ASCIIToUTF16("lastname"), |
480 ASCIIToUTF16("Smith"), | 479 ASCIIToUTF16("Smith"), |
481 ASCIIToUTF16("text"), | 480 ASCIIToUTF16("text"), |
482 kDefaultMaxLength, | 481 kDefaultMaxLength(), |
483 false), | 482 false), |
484 fields[1]); | 483 fields[1]); |
485 EXPECT_EQ(FormField(string16(), | 484 EXPECT_EQ(FormField(string16(), |
486 ASCIIToUTF16("email"), | 485 ASCIIToUTF16("email"), |
487 ASCIIToUTF16("john@example.com"), | 486 ASCIIToUTF16("john@example.com"), |
488 ASCIIToUTF16("text"), | 487 ASCIIToUTF16("text"), |
489 kDefaultMaxLength, | 488 kDefaultMaxLength(), |
490 false), | 489 false), |
491 fields[2]); | 490 fields[2]); |
492 | 491 |
493 // Second form. | 492 // Second form. |
494 const FormData& form2 = forms[1]; | 493 const FormData& form2 = forms[1]; |
495 EXPECT_EQ(ASCIIToUTF16("TestForm2"), form2.name); | 494 EXPECT_EQ(ASCIIToUTF16("TestForm2"), form2.name); |
496 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 495 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
497 EXPECT_EQ(GURL("http://zoo.com"), form2.action); | 496 EXPECT_EQ(GURL("http://zoo.com"), form2.action); |
498 | 497 |
499 const std::vector<FormField>& fields2 = form2.fields; | 498 const std::vector<FormField>& fields2 = form2.fields; |
500 ASSERT_EQ(3U, fields2.size()); | 499 ASSERT_EQ(3U, fields2.size()); |
501 EXPECT_EQ(FormField(string16(), | 500 EXPECT_EQ(FormField(string16(), |
502 ASCIIToUTF16("firstname"), | 501 ASCIIToUTF16("firstname"), |
503 ASCIIToUTF16("Jack"), | 502 ASCIIToUTF16("Jack"), |
504 ASCIIToUTF16("text"), | 503 ASCIIToUTF16("text"), |
505 kDefaultMaxLength, | 504 kDefaultMaxLength(), |
506 false), | 505 false), |
507 fields2[0]); | 506 fields2[0]); |
508 EXPECT_EQ(FormField(string16(), | 507 EXPECT_EQ(FormField(string16(), |
509 ASCIIToUTF16("lastname"), | 508 ASCIIToUTF16("lastname"), |
510 ASCIIToUTF16("Adams"), | 509 ASCIIToUTF16("Adams"), |
511 ASCIIToUTF16("text"), | 510 ASCIIToUTF16("text"), |
512 kDefaultMaxLength, | 511 kDefaultMaxLength(), |
513 false), | 512 false), |
514 fields2[1]); | 513 fields2[1]); |
515 EXPECT_EQ(FormField(string16(), | 514 EXPECT_EQ(FormField(string16(), |
516 ASCIIToUTF16("email"), | 515 ASCIIToUTF16("email"), |
517 ASCIIToUTF16("jack@example.com"), | 516 ASCIIToUTF16("jack@example.com"), |
518 ASCIIToUTF16("text"), | 517 ASCIIToUTF16("text"), |
519 kDefaultMaxLength, | 518 kDefaultMaxLength(), |
520 false), | 519 false), |
521 fields[2]); | 520 fields[2]); |
522 } | 521 } |
523 | 522 |
524 // We should not extract a form if it has too few fillable fields. | 523 // We should not extract a form if it has too few fillable fields. |
525 TEST_F(FormManagerTest, ExtractFormsTooFewFields) { | 524 TEST_F(FormManagerTest, ExtractFormsTooFewFields) { |
526 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 525 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
527 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 526 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
528 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 527 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
529 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 528 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
592 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 591 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
593 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 592 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
594 EXPECT_EQ(GURL("http://abc.com"), form.action); | 593 EXPECT_EQ(GURL("http://abc.com"), form.action); |
595 | 594 |
596 const std::vector<FormField>& fields = form.fields; | 595 const std::vector<FormField>& fields = form.fields; |
597 ASSERT_EQ(3U, fields.size()); | 596 ASSERT_EQ(3U, fields.size()); |
598 EXPECT_EQ(FormField(string16(), | 597 EXPECT_EQ(FormField(string16(), |
599 ASCIIToUTF16("middlename"), | 598 ASCIIToUTF16("middlename"), |
600 ASCIIToUTF16("Jack"), | 599 ASCIIToUTF16("Jack"), |
601 ASCIIToUTF16("text"), | 600 ASCIIToUTF16("text"), |
602 kDefaultMaxLength, | 601 kDefaultMaxLength(), |
603 false), | 602 false), |
604 fields[0]); | 603 fields[0]); |
605 EXPECT_EQ(FormField(string16(), | 604 EXPECT_EQ(FormField(string16(), |
606 ASCIIToUTF16("lastname"), | 605 ASCIIToUTF16("lastname"), |
607 ASCIIToUTF16("Smith"), | 606 ASCIIToUTF16("Smith"), |
608 ASCIIToUTF16("text"), | 607 ASCIIToUTF16("text"), |
609 kDefaultMaxLength, | 608 kDefaultMaxLength(), |
610 false), | 609 false), |
611 fields[1]); | 610 fields[1]); |
612 EXPECT_EQ(FormField(string16(), | 611 EXPECT_EQ(FormField(string16(), |
613 ASCIIToUTF16("email"), | 612 ASCIIToUTF16("email"), |
614 ASCIIToUTF16("john@example.com"), | 613 ASCIIToUTF16("john@example.com"), |
615 ASCIIToUTF16("text"), | 614 ASCIIToUTF16("text"), |
616 kDefaultMaxLength, | 615 kDefaultMaxLength(), |
617 false), | 616 false), |
618 fields[2]); | 617 fields[2]); |
619 } | 618 } |
620 | 619 |
621 TEST_F(FormManagerTest, GetFormsElementsEnabled) { | 620 TEST_F(FormManagerTest, GetFormsElementsEnabled) { |
622 // The firstname element is not enabled due to disabled being set. | 621 // The firstname element is not enabled due to disabled being set. |
623 LoadHTML("<FORM name=\"TestForm\" action=\"http://xyz.com\" method=\"post\">" | 622 LoadHTML("<FORM name=\"TestForm\" action=\"http://xyz.com\" method=\"post\">" |
624 " <INPUT disabled type=\"text\" id=\"firstname\" value=\"John\"/>" | 623 " <INPUT disabled type=\"text\" id=\"firstname\" value=\"John\"/>" |
625 " <INPUT type=\"text\" id=\"middlename\" value=\"Jack\"/>" | 624 " <INPUT type=\"text\" id=\"middlename\" value=\"Jack\"/>" |
626 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 625 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
(...skipping 15 matching lines...) Expand all Loading... | |
642 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 641 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
643 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 642 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
644 EXPECT_EQ(GURL("http://xyz.com"), form.action); | 643 EXPECT_EQ(GURL("http://xyz.com"), form.action); |
645 | 644 |
646 const std::vector<FormField>& fields = form.fields; | 645 const std::vector<FormField>& fields = form.fields; |
647 ASSERT_EQ(3U, fields.size()); | 646 ASSERT_EQ(3U, fields.size()); |
648 EXPECT_EQ(FormField(string16(), | 647 EXPECT_EQ(FormField(string16(), |
649 ASCIIToUTF16("middlename"), | 648 ASCIIToUTF16("middlename"), |
650 ASCIIToUTF16("Jack"), | 649 ASCIIToUTF16("Jack"), |
651 ASCIIToUTF16("text"), | 650 ASCIIToUTF16("text"), |
652 kDefaultMaxLength, | 651 kDefaultMaxLength(), |
653 false), | 652 false), |
654 fields[0]); | 653 fields[0]); |
655 EXPECT_EQ(FormField(string16(), | 654 EXPECT_EQ(FormField(string16(), |
656 ASCIIToUTF16("lastname"), | 655 ASCIIToUTF16("lastname"), |
657 ASCIIToUTF16("Smith"), | 656 ASCIIToUTF16("Smith"), |
658 ASCIIToUTF16("text"), | 657 ASCIIToUTF16("text"), |
659 kDefaultMaxLength, | 658 kDefaultMaxLength(), |
660 false), | 659 false), |
661 fields[1]); | 660 fields[1]); |
662 EXPECT_EQ(FormField(string16(), | 661 EXPECT_EQ(FormField(string16(), |
663 ASCIIToUTF16("email"), | 662 ASCIIToUTF16("email"), |
664 ASCIIToUTF16("jack@example.com"), | 663 ASCIIToUTF16("jack@example.com"), |
665 ASCIIToUTF16("text"), | 664 ASCIIToUTF16("text"), |
666 kDefaultMaxLength, | 665 kDefaultMaxLength(), |
667 false), | 666 false), |
668 fields[2]); | 667 fields[2]); |
669 } | 668 } |
670 | 669 |
671 TEST_F(FormManagerTest, FindForm) { | 670 TEST_F(FormManagerTest, FindForm) { |
672 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 671 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
673 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" | 672 " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
674 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" | 673 " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
675 " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\"/>" | 674 " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\"/>" |
676 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" | 675 " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
(...skipping 21 matching lines...) Expand all Loading... | |
698 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 697 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
699 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 698 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
700 EXPECT_EQ(GURL("http://buh.com"), form.action); | 699 EXPECT_EQ(GURL("http://buh.com"), form.action); |
701 | 700 |
702 const std::vector<FormField>& fields = form.fields; | 701 const std::vector<FormField>& fields = form.fields; |
703 ASSERT_EQ(3U, fields.size()); | 702 ASSERT_EQ(3U, fields.size()); |
704 EXPECT_EQ(FormField(string16(), | 703 EXPECT_EQ(FormField(string16(), |
705 ASCIIToUTF16("firstname"), | 704 ASCIIToUTF16("firstname"), |
706 ASCIIToUTF16("John"), | 705 ASCIIToUTF16("John"), |
707 ASCIIToUTF16("text"), | 706 ASCIIToUTF16("text"), |
708 kDefaultMaxLength, | 707 kDefaultMaxLength(), |
709 false), | 708 false), |
710 fields[0]); | 709 fields[0]); |
711 EXPECT_EQ(FormField(string16(), | 710 EXPECT_EQ(FormField(string16(), |
712 ASCIIToUTF16("lastname"), | 711 ASCIIToUTF16("lastname"), |
713 ASCIIToUTF16("Smith"), | 712 ASCIIToUTF16("Smith"), |
714 ASCIIToUTF16("text"), | 713 ASCIIToUTF16("text"), |
715 kDefaultMaxLength, | 714 kDefaultMaxLength(), |
716 false), | 715 false), |
717 fields[1]); | 716 fields[1]); |
718 EXPECT_EQ(FormField(string16(), | 717 EXPECT_EQ(FormField(string16(), |
719 ASCIIToUTF16("email"), | 718 ASCIIToUTF16("email"), |
720 ASCIIToUTF16("john@example.com"), | 719 ASCIIToUTF16("john@example.com"), |
721 ASCIIToUTF16("text"), | 720 ASCIIToUTF16("text"), |
722 kDefaultMaxLength, | 721 kDefaultMaxLength(), |
723 false), | 722 false), |
724 fields[2]); | 723 fields[2]); |
725 } | 724 } |
726 | 725 |
727 TEST_F(FormManagerTest, FillForm) { | 726 TEST_F(FormManagerTest, FillForm) { |
728 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 727 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
729 " <INPUT type=\"text\" id=\"firstname\"/>" | 728 " <INPUT type=\"text\" id=\"firstname\"/>" |
730 " <INPUT type=\"text\" id=\"lastname\"/>" | 729 " <INPUT type=\"text\" id=\"lastname\"/>" |
731 " <INPUT type=\"hidden\" id=\"imhidden\"/>" | 730 " <INPUT type=\"hidden\" id=\"imhidden\"/>" |
732 " <INPUT type=\"text\" id=\"notempty\" value=\"Hi\"/>" | 731 " <INPUT type=\"text\" id=\"notempty\" value=\"Hi\"/>" |
(...skipping 24 matching lines...) Expand all Loading... | |
757 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 756 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
758 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 757 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
759 EXPECT_EQ(GURL("http://buh.com"), form.action); | 758 EXPECT_EQ(GURL("http://buh.com"), form.action); |
760 | 759 |
761 const std::vector<FormField>& fields = form.fields; | 760 const std::vector<FormField>& fields = form.fields; |
762 ASSERT_EQ(5U, fields.size()); | 761 ASSERT_EQ(5U, fields.size()); |
763 EXPECT_EQ(FormField(string16(), | 762 EXPECT_EQ(FormField(string16(), |
764 ASCIIToUTF16("firstname"), | 763 ASCIIToUTF16("firstname"), |
765 string16(), | 764 string16(), |
766 ASCIIToUTF16("text"), | 765 ASCIIToUTF16("text"), |
767 kDefaultMaxLength, | 766 kDefaultMaxLength(), |
768 false), | 767 false), |
769 fields[0]); | 768 fields[0]); |
770 EXPECT_EQ(FormField(string16(), | 769 EXPECT_EQ(FormField(string16(), |
771 ASCIIToUTF16("lastname"), | 770 ASCIIToUTF16("lastname"), |
772 string16(), | 771 string16(), |
773 ASCIIToUTF16("text"), | 772 ASCIIToUTF16("text"), |
774 kDefaultMaxLength, | 773 kDefaultMaxLength(), |
775 false), | 774 false), |
776 fields[1]); | 775 fields[1]); |
777 EXPECT_EQ(FormField(string16(), | 776 EXPECT_EQ(FormField(string16(), |
778 ASCIIToUTF16("notempty"), | 777 ASCIIToUTF16("notempty"), |
779 ASCIIToUTF16("Hi"), | 778 ASCIIToUTF16("Hi"), |
780 ASCIIToUTF16("text"), | 779 ASCIIToUTF16("text"), |
781 kDefaultMaxLength, | 780 kDefaultMaxLength(), |
782 false), | 781 false), |
783 fields[2]); | 782 fields[2]); |
784 EXPECT_EQ(FormField(string16(), | 783 EXPECT_EQ(FormField(string16(), |
785 ASCIIToUTF16("noautocomplete"), | 784 ASCIIToUTF16("noautocomplete"), |
786 string16(), | 785 string16(), |
787 ASCIIToUTF16("text"), | 786 ASCIIToUTF16("text"), |
788 kDefaultMaxLength, | 787 kDefaultMaxLength(), |
789 false), | 788 false), |
790 fields[3]); | 789 fields[3]); |
791 EXPECT_EQ(FormField(string16(), | 790 EXPECT_EQ(FormField(string16(), |
792 ASCIIToUTF16("notenabled"), | 791 ASCIIToUTF16("notenabled"), |
793 string16(), | 792 string16(), |
794 ASCIIToUTF16("text"), | 793 ASCIIToUTF16("text"), |
795 kDefaultMaxLength, | 794 kDefaultMaxLength(), |
796 false), | 795 false), |
797 fields[4]); | 796 fields[4]); |
798 | 797 |
799 // Fill the form. | 798 // Fill the form. |
800 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); | 799 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); |
801 form.fields[1].set_value(ASCIIToUTF16("Earp")); | 800 form.fields[1].set_value(ASCIIToUTF16("Earp")); |
802 form.fields[2].set_value(ASCIIToUTF16("Alpha")); | 801 form.fields[2].set_value(ASCIIToUTF16("Alpha")); |
803 form.fields[3].set_value(ASCIIToUTF16("Beta")); | 802 form.fields[3].set_value(ASCIIToUTF16("Beta")); |
804 form.fields[4].set_value(ASCIIToUTF16("Gamma")); | 803 form.fields[4].set_value(ASCIIToUTF16("Gamma")); |
805 EXPECT_TRUE(form_manager.FillForm(form, input_element)); | 804 EXPECT_TRUE(form_manager.FillForm(form, input_element)); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
869 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 868 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
870 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 869 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
871 EXPECT_EQ(GURL("http://buh.com"), form.action); | 870 EXPECT_EQ(GURL("http://buh.com"), form.action); |
872 | 871 |
873 const std::vector<FormField>& fields = form.fields; | 872 const std::vector<FormField>& fields = form.fields; |
874 ASSERT_EQ(5U, fields.size()); | 873 ASSERT_EQ(5U, fields.size()); |
875 EXPECT_EQ(FormField(string16(), | 874 EXPECT_EQ(FormField(string16(), |
876 ASCIIToUTF16("firstname"), | 875 ASCIIToUTF16("firstname"), |
877 string16(), | 876 string16(), |
878 ASCIIToUTF16("text"), | 877 ASCIIToUTF16("text"), |
879 kDefaultMaxLength, | 878 kDefaultMaxLength(), |
880 false), | 879 false), |
881 fields[0]); | 880 fields[0]); |
882 EXPECT_EQ(FormField(string16(), | 881 EXPECT_EQ(FormField(string16(), |
883 ASCIIToUTF16("lastname"), | 882 ASCIIToUTF16("lastname"), |
884 string16(), | 883 string16(), |
885 ASCIIToUTF16("text"), | 884 ASCIIToUTF16("text"), |
886 kDefaultMaxLength, | 885 kDefaultMaxLength(), |
887 false), | 886 false), |
888 fields[1]); | 887 fields[1]); |
889 EXPECT_EQ(FormField(string16(), | 888 EXPECT_EQ(FormField(string16(), |
890 ASCIIToUTF16("notempty"), | 889 ASCIIToUTF16("notempty"), |
891 ASCIIToUTF16("Hi"), | 890 ASCIIToUTF16("Hi"), |
892 ASCIIToUTF16("text"), | 891 ASCIIToUTF16("text"), |
893 kDefaultMaxLength, | 892 kDefaultMaxLength(), |
894 false), | 893 false), |
895 fields[2]); | 894 fields[2]); |
896 EXPECT_EQ(FormField(string16(), | 895 EXPECT_EQ(FormField(string16(), |
897 ASCIIToUTF16("noautocomplete"), | 896 ASCIIToUTF16("noautocomplete"), |
898 string16(), | 897 string16(), |
899 ASCIIToUTF16("text"), | 898 ASCIIToUTF16("text"), |
900 kDefaultMaxLength, | 899 kDefaultMaxLength(), |
901 false), | 900 false), |
902 fields[3]); | 901 fields[3]); |
903 EXPECT_EQ(FormField(string16(), | 902 EXPECT_EQ(FormField(string16(), |
904 ASCIIToUTF16("notenabled"), | 903 ASCIIToUTF16("notenabled"), |
905 string16(), | 904 string16(), |
906 ASCIIToUTF16("text"), | 905 ASCIIToUTF16("text"), |
907 kDefaultMaxLength, | 906 kDefaultMaxLength(), |
908 false), | 907 false), |
909 fields[4]); | 908 fields[4]); |
910 | 909 |
911 // Preview the form. | 910 // Preview the form. |
912 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); | 911 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); |
913 form.fields[1].set_value(ASCIIToUTF16("Earp")); | 912 form.fields[1].set_value(ASCIIToUTF16("Earp")); |
914 form.fields[2].set_value(ASCIIToUTF16("Alpha")); | 913 form.fields[2].set_value(ASCIIToUTF16("Alpha")); |
915 form.fields[3].set_value(ASCIIToUTF16("Beta")); | 914 form.fields[3].set_value(ASCIIToUTF16("Beta")); |
916 form.fields[4].set_value(ASCIIToUTF16("Gamma")); | 915 form.fields[4].set_value(ASCIIToUTF16("Gamma")); |
917 EXPECT_TRUE(form_manager.PreviewForm(form, input_element)); | 916 EXPECT_TRUE(form_manager.PreviewForm(form, input_element)); |
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1556 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 1555 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
1557 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 1556 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
1558 EXPECT_EQ(GURL("http://buh.com"), form.action); | 1557 EXPECT_EQ(GURL("http://buh.com"), form.action); |
1559 | 1558 |
1560 const std::vector<FormField>& fields = form.fields; | 1559 const std::vector<FormField>& fields = form.fields; |
1561 ASSERT_EQ(3U, fields.size()); | 1560 ASSERT_EQ(3U, fields.size()); |
1562 EXPECT_EQ(FormField(string16(), | 1561 EXPECT_EQ(FormField(string16(), |
1563 ASCIIToUTF16("firstname"), | 1562 ASCIIToUTF16("firstname"), |
1564 string16(), | 1563 string16(), |
1565 ASCIIToUTF16("text"), | 1564 ASCIIToUTF16("text"), |
1566 kDefaultMaxLength, | 1565 kDefaultMaxLength(), |
1567 false), | 1566 false), |
1568 fields[0]); | 1567 fields[0]); |
1569 EXPECT_EQ(FormField(string16(), | 1568 EXPECT_EQ(FormField(string16(), |
1570 ASCIIToUTF16("lastname"), | 1569 ASCIIToUTF16("lastname"), |
1571 string16(), | 1570 string16(), |
1572 ASCIIToUTF16("text"), | 1571 ASCIIToUTF16("text"), |
1573 kDefaultMaxLength, | 1572 kDefaultMaxLength(), |
1574 false), | 1573 false), |
1575 fields[1]); | 1574 fields[1]); |
1576 EXPECT_EQ(FormField(string16(), | 1575 EXPECT_EQ(FormField(string16(), |
1577 ASCIIToUTF16("email"), | 1576 ASCIIToUTF16("email"), |
1578 string16(), | 1577 string16(), |
1579 ASCIIToUTF16("text"), | 1578 ASCIIToUTF16("text"), |
1580 kDefaultMaxLength, | 1579 kDefaultMaxLength(), |
1581 false), | 1580 false), |
1582 fields[2]); | 1581 fields[2]); |
1583 | 1582 |
1584 // Fill the form. | 1583 // Fill the form. |
1585 form.fields[0].set_value(ASCIIToUTF16("Brother")); | 1584 form.fields[0].set_value(ASCIIToUTF16("Brother")); |
1586 form.fields[1].set_value(ASCIIToUTF16("Jonathan")); | 1585 form.fields[1].set_value(ASCIIToUTF16("Jonathan")); |
1587 form.fields[2].set_value(ASCIIToUTF16("brotherj@example.com")); | 1586 form.fields[2].set_value(ASCIIToUTF16("brotherj@example.com")); |
1588 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); | 1587 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); |
1589 | 1588 |
1590 // Find the newly-filled form that contains the input element. | 1589 // Find the newly-filled form that contains the input element. |
1591 FormData form2; | 1590 FormData form2; |
1592 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( | 1591 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( |
1593 input_element, FormManager::REQUIRE_NONE, &form2)); | 1592 input_element, FormManager::REQUIRE_NONE, &form2)); |
1594 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 1593 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
1595 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 1594 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
1596 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 1595 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
1597 | 1596 |
1598 const std::vector<FormField>& fields2 = form2.fields; | 1597 const std::vector<FormField>& fields2 = form2.fields; |
1599 ASSERT_EQ(3U, fields2.size()); | 1598 ASSERT_EQ(3U, fields2.size()); |
1600 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( | 1599 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( |
1601 FormField(string16(), | 1600 FormField(string16(), |
1602 ASCIIToUTF16("firstname"), | 1601 ASCIIToUTF16("firstname"), |
1603 ASCIIToUTF16("Brother"), | 1602 ASCIIToUTF16("Brother"), |
1604 ASCIIToUTF16("text"), | 1603 ASCIIToUTF16("text"), |
1605 kDefaultMaxLength, | 1604 kDefaultMaxLength(), |
1606 false))); | 1605 false))); |
1607 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( | 1606 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( |
1608 FormField(string16(), | 1607 FormField(string16(), |
1609 ASCIIToUTF16("lastname"), | 1608 ASCIIToUTF16("lastname"), |
1610 ASCIIToUTF16("Jonathan"), | 1609 ASCIIToUTF16("Jonathan"), |
1611 ASCIIToUTF16("text"), | 1610 ASCIIToUTF16("text"), |
1612 kDefaultMaxLength, | 1611 kDefaultMaxLength(), |
1613 false))); | 1612 false))); |
1614 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( | 1613 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( |
1615 FormField(string16(), | 1614 FormField(string16(), |
1616 ASCIIToUTF16("email"), | 1615 ASCIIToUTF16("email"), |
1617 ASCIIToUTF16("brotherj@example.com"), | 1616 ASCIIToUTF16("brotherj@example.com"), |
1618 ASCIIToUTF16("text"), | 1617 ASCIIToUTF16("text"), |
1619 kDefaultMaxLength, | 1618 kDefaultMaxLength(), |
1620 false))); | 1619 false))); |
1621 } | 1620 } |
1622 | 1621 |
1623 // This test sends a FormData object to FillForm with more fields than are in | 1622 // This test sends a FormData object to FillForm with more fields than are in |
1624 // the cached WebFormElement. In this case, we only fill out the fields that | 1623 // the cached WebFormElement. In this case, we only fill out the fields that |
1625 // match between the FormData object and the WebFormElement. | 1624 // match between the FormData object and the WebFormElement. |
1626 TEST_F(FormManagerTest, FillFormMoreFormDataFields) { | 1625 TEST_F(FormManagerTest, FillFormMoreFormDataFields) { |
1627 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 1626 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
1628 " <INPUT type=\"text\" id=\"firstname\"/>" | 1627 " <INPUT type=\"text\" id=\"firstname\"/>" |
1629 " <INPUT type=\"text\" id=\"middlename\"/>" | 1628 " <INPUT type=\"text\" id=\"middlename\"/>" |
(...skipping 19 matching lines...) Expand all Loading... | |
1649 // middlename | 1648 // middlename |
1650 // second | 1649 // second |
1651 // lastname | 1650 // lastname |
1652 // postfix | 1651 // postfix |
1653 FormData* form = &forms[0]; | 1652 FormData* form = &forms[0]; |
1654 | 1653 |
1655 FormField field1(string16(), | 1654 FormField field1(string16(), |
1656 ASCIIToUTF16("prefix"), | 1655 ASCIIToUTF16("prefix"), |
1657 string16(), | 1656 string16(), |
1658 ASCIIToUTF16("text"), | 1657 ASCIIToUTF16("text"), |
1659 kDefaultMaxLength, | 1658 kDefaultMaxLength(), |
1660 false); | 1659 false); |
1661 form->fields.insert(form->fields.begin(), field1); | 1660 form->fields.insert(form->fields.begin(), field1); |
1662 | 1661 |
1663 FormField field2(string16(), | 1662 FormField field2(string16(), |
1664 ASCIIToUTF16("hidden"), | 1663 ASCIIToUTF16("hidden"), |
1665 string16(), | 1664 string16(), |
1666 ASCIIToUTF16("text"), | 1665 ASCIIToUTF16("text"), |
1667 kDefaultMaxLength, | 1666 kDefaultMaxLength(), |
1668 false); | 1667 false); |
1669 form->fields.insert(form->fields.begin() + 2, field2); | 1668 form->fields.insert(form->fields.begin() + 2, field2); |
1670 | 1669 |
1671 FormField field3(string16(), | 1670 FormField field3(string16(), |
1672 ASCIIToUTF16("second"), | 1671 ASCIIToUTF16("second"), |
1673 string16(), | 1672 string16(), |
1674 ASCIIToUTF16("text"), | 1673 ASCIIToUTF16("text"), |
1675 kDefaultMaxLength, | 1674 kDefaultMaxLength(), |
1676 false); | 1675 false); |
1677 form->fields.insert(form->fields.begin() + 4, field3); | 1676 form->fields.insert(form->fields.begin() + 4, field3); |
1678 | 1677 |
1679 FormField field4(string16(), | 1678 FormField field4(string16(), |
1680 ASCIIToUTF16("postfix"), | 1679 ASCIIToUTF16("postfix"), |
1681 string16(), | 1680 string16(), |
1682 ASCIIToUTF16("text"), | 1681 ASCIIToUTF16("text"), |
1683 kDefaultMaxLength, | 1682 kDefaultMaxLength(), |
1684 false); | 1683 false); |
1685 form->fields.insert(form->fields.begin() + 6, field4); | 1684 form->fields.insert(form->fields.begin() + 6, field4); |
1686 | 1685 |
1687 // Fill the form. | 1686 // Fill the form. |
1688 form->fields[0].set_value(ASCIIToUTF16("Alpha")); | 1687 form->fields[0].set_value(ASCIIToUTF16("Alpha")); |
1689 form->fields[1].set_value(ASCIIToUTF16("Brother")); | 1688 form->fields[1].set_value(ASCIIToUTF16("Brother")); |
1690 form->fields[2].set_value(ASCIIToUTF16("Abracadabra")); | 1689 form->fields[2].set_value(ASCIIToUTF16("Abracadabra")); |
1691 form->fields[3].set_value(ASCIIToUTF16("Joseph")); | 1690 form->fields[3].set_value(ASCIIToUTF16("Joseph")); |
1692 form->fields[4].set_value(ASCIIToUTF16("Beta")); | 1691 form->fields[4].set_value(ASCIIToUTF16("Beta")); |
1693 form->fields[5].set_value(ASCIIToUTF16("Jonathan")); | 1692 form->fields[5].set_value(ASCIIToUTF16("Jonathan")); |
(...skipping 11 matching lines...) Expand all Loading... | |
1705 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 1704 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
1706 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 1705 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
1707 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 1706 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
1708 | 1707 |
1709 const std::vector<FormField>& fields = form2.fields; | 1708 const std::vector<FormField>& fields = form2.fields; |
1710 ASSERT_EQ(3U, fields.size()); | 1709 ASSERT_EQ(3U, fields.size()); |
1711 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), | 1710 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), |
1712 ASCIIToUTF16("firstname"), | 1711 ASCIIToUTF16("firstname"), |
1713 ASCIIToUTF16("Brother"), | 1712 ASCIIToUTF16("Brother"), |
1714 ASCIIToUTF16("text"), | 1713 ASCIIToUTF16("text"), |
1715 kDefaultMaxLength, | 1714 kDefaultMaxLength(), |
1716 false))); | 1715 false))); |
1717 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), | 1716 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), |
1718 ASCIIToUTF16("middlename"), | 1717 ASCIIToUTF16("middlename"), |
1719 ASCIIToUTF16("Joseph"), | 1718 ASCIIToUTF16("Joseph"), |
1720 ASCIIToUTF16("text"), | 1719 ASCIIToUTF16("text"), |
1721 kDefaultMaxLength, | 1720 kDefaultMaxLength(), |
1722 false))); | 1721 false))); |
1723 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), | 1722 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), |
1724 ASCIIToUTF16("lastname"), | 1723 ASCIIToUTF16("lastname"), |
1725 ASCIIToUTF16("Jonathan"), | 1724 ASCIIToUTF16("Jonathan"), |
1726 ASCIIToUTF16("text"), | 1725 ASCIIToUTF16("text"), |
1727 kDefaultMaxLength, | 1726 kDefaultMaxLength(), |
1728 false))); | 1727 false))); |
1729 } | 1728 } |
1730 | 1729 |
1731 // This test sends a FormData object to FillForm with fewer fields than are in | 1730 // This test sends a FormData object to FillForm with fewer fields than are in |
1732 // the cached WebFormElement. In this case, we only fill out the fields that | 1731 // the cached WebFormElement. In this case, we only fill out the fields that |
1733 // match between the FormData object and the WebFormElement. | 1732 // match between the FormData object and the WebFormElement. |
1734 TEST_F(FormManagerTest, FillFormFewerFormDataFields) { | 1733 TEST_F(FormManagerTest, FillFormFewerFormDataFields) { |
1735 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 1734 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
1736 " <INPUT type=\"text\" id=\"prefix\"/>" | 1735 " <INPUT type=\"text\" id=\"prefix\"/>" |
1737 " <INPUT type=\"text\" id=\"firstname\"/>" | 1736 " <INPUT type=\"text\" id=\"firstname\"/>" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1781 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 1780 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
1782 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 1781 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
1783 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 1782 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
1784 | 1783 |
1785 const std::vector<FormField>& fields = form2.fields; | 1784 const std::vector<FormField>& fields = form2.fields; |
1786 ASSERT_EQ(7U, fields.size()); | 1785 ASSERT_EQ(7U, fields.size()); |
1787 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), | 1786 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), |
1788 ASCIIToUTF16("prefix"), | 1787 ASCIIToUTF16("prefix"), |
1789 string16(), | 1788 string16(), |
1790 ASCIIToUTF16("text"), | 1789 ASCIIToUTF16("text"), |
1791 kDefaultMaxLength, | 1790 kDefaultMaxLength(), |
1792 false))); | 1791 false))); |
1793 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), | 1792 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), |
1794 ASCIIToUTF16("firstname"), | 1793 ASCIIToUTF16("firstname"), |
1795 ASCIIToUTF16("Brother"), | 1794 ASCIIToUTF16("Brother"), |
1796 ASCIIToUTF16("text"), | 1795 ASCIIToUTF16("text"), |
1797 kDefaultMaxLength, | 1796 kDefaultMaxLength(), |
1798 false))); | 1797 false))); |
1799 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), | 1798 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), |
1800 ASCIIToUTF16("hidden"), | 1799 ASCIIToUTF16("hidden"), |
1801 string16(), | 1800 string16(), |
1802 ASCIIToUTF16("text"), | 1801 ASCIIToUTF16("text"), |
1803 kDefaultMaxLength, | 1802 kDefaultMaxLength(), |
1804 false))); | 1803 false))); |
1805 EXPECT_TRUE(fields[3].StrictlyEqualsHack(FormField(string16(), | 1804 EXPECT_TRUE(fields[3].StrictlyEqualsHack(FormField(string16(), |
1806 ASCIIToUTF16("middlename"), | 1805 ASCIIToUTF16("middlename"), |
1807 ASCIIToUTF16("Joseph"), | 1806 ASCIIToUTF16("Joseph"), |
1808 ASCIIToUTF16("text"), | 1807 ASCIIToUTF16("text"), |
1809 kDefaultMaxLength, | 1808 kDefaultMaxLength(), |
1810 false))); | 1809 false))); |
1811 EXPECT_TRUE(fields[4].StrictlyEqualsHack(FormField(string16(), | 1810 EXPECT_TRUE(fields[4].StrictlyEqualsHack(FormField(string16(), |
1812 ASCIIToUTF16("second"), | 1811 ASCIIToUTF16("second"), |
1813 string16(), | 1812 string16(), |
1814 ASCIIToUTF16("text"), | 1813 ASCIIToUTF16("text"), |
1815 kDefaultMaxLength, | 1814 kDefaultMaxLength(), |
1816 false))); | 1815 false))); |
1817 EXPECT_TRUE(fields[5].StrictlyEqualsHack(FormField(string16(), | 1816 EXPECT_TRUE(fields[5].StrictlyEqualsHack(FormField(string16(), |
1818 ASCIIToUTF16("lastname"), | 1817 ASCIIToUTF16("lastname"), |
1819 ASCIIToUTF16("Jonathan"), | 1818 ASCIIToUTF16("Jonathan"), |
1820 ASCIIToUTF16("text"), | 1819 ASCIIToUTF16("text"), |
1821 kDefaultMaxLength, | 1820 kDefaultMaxLength(), |
1822 false))); | 1821 false))); |
1823 EXPECT_TRUE(fields[6].StrictlyEqualsHack(FormField(string16(), | 1822 EXPECT_TRUE(fields[6].StrictlyEqualsHack(FormField(string16(), |
1824 ASCIIToUTF16("postfix"), | 1823 ASCIIToUTF16("postfix"), |
1825 string16(), | 1824 string16(), |
1826 ASCIIToUTF16("text"), | 1825 ASCIIToUTF16("text"), |
1827 kDefaultMaxLength, | 1826 kDefaultMaxLength(), |
1828 false))); | 1827 false))); |
1829 } | 1828 } |
1830 | 1829 |
1831 // This test sends a FormData object to FillForm with a field changed from | 1830 // This test sends a FormData object to FillForm with a field changed from |
1832 // those in the cached WebFormElement. In this case, we only fill out the | 1831 // those in the cached WebFormElement. In this case, we only fill out the |
1833 // fields that match between the FormData object and the WebFormElement. | 1832 // fields that match between the FormData object and the WebFormElement. |
1834 TEST_F(FormManagerTest, FillFormChangedFormDataFields) { | 1833 TEST_F(FormManagerTest, FillFormChangedFormDataFields) { |
1835 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 1834 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
1836 " <INPUT type=\"text\" id=\"firstname\"/>" | 1835 " <INPUT type=\"text\" id=\"firstname\"/>" |
1837 " <INPUT type=\"text\" id=\"middlename\"/>" | 1836 " <INPUT type=\"text\" id=\"middlename\"/>" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1878 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 1877 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
1879 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 1878 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
1880 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 1879 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
1881 | 1880 |
1882 const std::vector<FormField>& fields = form2.fields; | 1881 const std::vector<FormField>& fields = form2.fields; |
1883 ASSERT_EQ(3U, fields.size()); | 1882 ASSERT_EQ(3U, fields.size()); |
1884 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), | 1883 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), |
1885 ASCIIToUTF16("firstname"), | 1884 ASCIIToUTF16("firstname"), |
1886 ASCIIToUTF16("Brother"), | 1885 ASCIIToUTF16("Brother"), |
1887 ASCIIToUTF16("text"), | 1886 ASCIIToUTF16("text"), |
1888 kDefaultMaxLength, | 1887 kDefaultMaxLength(), |
1889 false))); | 1888 false))); |
1890 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), | 1889 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), |
1891 ASCIIToUTF16("middlename"), | 1890 ASCIIToUTF16("middlename"), |
1892 string16(), | 1891 string16(), |
1893 ASCIIToUTF16("text"), | 1892 ASCIIToUTF16("text"), |
1894 kDefaultMaxLength, | 1893 kDefaultMaxLength(), |
1895 false))); | 1894 false))); |
1896 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), | 1895 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), |
1897 ASCIIToUTF16("lastname"), | 1896 ASCIIToUTF16("lastname"), |
1898 ASCIIToUTF16("Jonathan"), | 1897 ASCIIToUTF16("Jonathan"), |
1899 ASCIIToUTF16("text"), | 1898 ASCIIToUTF16("text"), |
1900 kDefaultMaxLength, | 1899 kDefaultMaxLength(), |
1901 false))); | 1900 false))); |
1902 } | 1901 } |
1903 | 1902 |
1904 // This test sends a FormData object to FillForm with fewer fields than are in | 1903 // This test sends a FormData object to FillForm with fewer fields than are in |
1905 // the cached WebFormElement. In this case, we only fill out the fields that | 1904 // the cached WebFormElement. In this case, we only fill out the fields that |
1906 // match between the FormData object and the WebFormElement. | 1905 // match between the FormData object and the WebFormElement. |
1907 TEST_F(FormManagerTest, FillFormExtraFieldInCache) { | 1906 TEST_F(FormManagerTest, FillFormExtraFieldInCache) { |
1908 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 1907 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
1909 " <INPUT type=\"text\" id=\"firstname\"/>" | 1908 " <INPUT type=\"text\" id=\"firstname\"/>" |
1910 " <INPUT type=\"text\" id=\"middlename\"/>" | 1909 " <INPUT type=\"text\" id=\"middlename\"/>" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1948 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 1947 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
1949 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 1948 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
1950 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 1949 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
1951 | 1950 |
1952 const std::vector<FormField>& fields = form2.fields; | 1951 const std::vector<FormField>& fields = form2.fields; |
1953 ASSERT_EQ(4U, fields.size()); | 1952 ASSERT_EQ(4U, fields.size()); |
1954 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), | 1953 EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(), |
1955 ASCIIToUTF16("firstname"), | 1954 ASCIIToUTF16("firstname"), |
1956 ASCIIToUTF16("Brother"), | 1955 ASCIIToUTF16("Brother"), |
1957 ASCIIToUTF16("text"), | 1956 ASCIIToUTF16("text"), |
1958 kDefaultMaxLength, | 1957 kDefaultMaxLength(), |
1959 false))); | 1958 false))); |
1960 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), | 1959 EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(), |
1961 ASCIIToUTF16("middlename"), | 1960 ASCIIToUTF16("middlename"), |
1962 ASCIIToUTF16("Joseph"), | 1961 ASCIIToUTF16("Joseph"), |
1963 ASCIIToUTF16("text"), | 1962 ASCIIToUTF16("text"), |
1964 kDefaultMaxLength, | 1963 kDefaultMaxLength(), |
1965 false))); | 1964 false))); |
1966 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), | 1965 EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(), |
1967 ASCIIToUTF16("lastname"), | 1966 ASCIIToUTF16("lastname"), |
1968 ASCIIToUTF16("Jonathan"), | 1967 ASCIIToUTF16("Jonathan"), |
1969 ASCIIToUTF16("text"), | 1968 ASCIIToUTF16("text"), |
1970 kDefaultMaxLength, | 1969 kDefaultMaxLength(), |
1971 false))); | 1970 false))); |
1972 EXPECT_TRUE(fields[3].StrictlyEqualsHack(FormField(string16(), | 1971 EXPECT_TRUE(fields[3].StrictlyEqualsHack(FormField(string16(), |
1973 ASCIIToUTF16("postfix"), | 1972 ASCIIToUTF16("postfix"), |
1974 string16(), | 1973 string16(), |
1975 ASCIIToUTF16("text"), | 1974 ASCIIToUTF16("text"), |
1976 kDefaultMaxLength, | 1975 kDefaultMaxLength(), |
1977 false))); | 1976 false))); |
1978 } | 1977 } |
1979 | 1978 |
1980 TEST_F(FormManagerTest, FillFormEmptyName) { | 1979 TEST_F(FormManagerTest, FillFormEmptyName) { |
1981 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 1980 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
1982 " <INPUT type=\"text\" id=\"firstname\"/>" | 1981 " <INPUT type=\"text\" id=\"firstname\"/>" |
1983 " <INPUT type=\"text\" id=\"lastname\"/>" | 1982 " <INPUT type=\"text\" id=\"lastname\"/>" |
1984 " <INPUT type=\"text\" id=\"email\"/>" | 1983 " <INPUT type=\"text\" id=\"email\"/>" |
1985 " <INPUT type=\"submit\" value=\"Send\"/>" | 1984 " <INPUT type=\"submit\" value=\"Send\"/>" |
1986 "</FORM>"); | 1985 "</FORM>"); |
(...skipping 20 matching lines...) Expand all Loading... | |
2007 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 2006 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
2008 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 2007 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
2009 EXPECT_EQ(GURL("http://buh.com"), form.action); | 2008 EXPECT_EQ(GURL("http://buh.com"), form.action); |
2010 | 2009 |
2011 const std::vector<FormField>& fields = form.fields; | 2010 const std::vector<FormField>& fields = form.fields; |
2012 ASSERT_EQ(3U, fields.size()); | 2011 ASSERT_EQ(3U, fields.size()); |
2013 EXPECT_EQ(FormField(string16(), | 2012 EXPECT_EQ(FormField(string16(), |
2014 ASCIIToUTF16("firstname"), | 2013 ASCIIToUTF16("firstname"), |
2015 string16(), | 2014 string16(), |
2016 ASCIIToUTF16("text"), | 2015 ASCIIToUTF16("text"), |
2017 kDefaultMaxLength, | 2016 kDefaultMaxLength(), |
2018 false), | 2017 false), |
2019 fields[0]); | 2018 fields[0]); |
2020 EXPECT_EQ(FormField(string16(), | 2019 EXPECT_EQ(FormField(string16(), |
2021 ASCIIToUTF16("lastname"), | 2020 ASCIIToUTF16("lastname"), |
2022 string16(), | 2021 string16(), |
2023 ASCIIToUTF16("text"), | 2022 ASCIIToUTF16("text"), |
2024 kDefaultMaxLength, | 2023 kDefaultMaxLength(), |
2025 false), | 2024 false), |
2026 fields[1]); | 2025 fields[1]); |
2027 EXPECT_EQ(FormField(string16(), | 2026 EXPECT_EQ(FormField(string16(), |
2028 ASCIIToUTF16("email"), | 2027 ASCIIToUTF16("email"), |
2029 string16(), | 2028 string16(), |
2030 ASCIIToUTF16("text"), | 2029 ASCIIToUTF16("text"), |
2031 kDefaultMaxLength, | 2030 kDefaultMaxLength(), |
2032 false), | 2031 false), |
2033 fields[2]); | 2032 fields[2]); |
2034 | 2033 |
2035 // Fill the form. | 2034 // Fill the form. |
2036 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); | 2035 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); |
2037 form.fields[1].set_value(ASCIIToUTF16("Earp")); | 2036 form.fields[1].set_value(ASCIIToUTF16("Earp")); |
2038 form.fields[2].set_value(ASCIIToUTF16("wyatt@example.com")); | 2037 form.fields[2].set_value(ASCIIToUTF16("wyatt@example.com")); |
2039 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); | 2038 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); |
2040 | 2039 |
2041 // Find the newly-filled form that contains the input element. | 2040 // Find the newly-filled form that contains the input element. |
2042 FormData form2; | 2041 FormData form2; |
2043 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( | 2042 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( |
2044 input_element, FormManager::REQUIRE_NONE, &form2)); | 2043 input_element, FormManager::REQUIRE_NONE, &form2)); |
2045 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 2044 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
2046 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 2045 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
2047 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 2046 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
2048 | 2047 |
2049 const std::vector<FormField>& fields2 = form2.fields; | 2048 const std::vector<FormField>& fields2 = form2.fields; |
2050 ASSERT_EQ(3U, fields2.size()); | 2049 ASSERT_EQ(3U, fields2.size()); |
2051 EXPECT_EQ(FormField(string16(), | 2050 EXPECT_EQ(FormField(string16(), |
2052 ASCIIToUTF16("firstname"), | 2051 ASCIIToUTF16("firstname"), |
2053 ASCIIToUTF16("Wyatt"), | 2052 ASCIIToUTF16("Wyatt"), |
2054 ASCIIToUTF16("text"), | 2053 ASCIIToUTF16("text"), |
2055 kDefaultMaxLength, | 2054 kDefaultMaxLength(), |
2056 false), | 2055 false), |
2057 fields2[0]); | 2056 fields2[0]); |
2058 EXPECT_EQ(FormField(string16(), | 2057 EXPECT_EQ(FormField(string16(), |
2059 ASCIIToUTF16("lastname"), | 2058 ASCIIToUTF16("lastname"), |
2060 ASCIIToUTF16("Earp"), | 2059 ASCIIToUTF16("Earp"), |
2061 ASCIIToUTF16("text"), | 2060 ASCIIToUTF16("text"), |
2062 kDefaultMaxLength, | 2061 kDefaultMaxLength(), |
2063 false), | 2062 false), |
2064 fields2[1]); | 2063 fields2[1]); |
2065 EXPECT_EQ(FormField(string16(), | 2064 EXPECT_EQ(FormField(string16(), |
2066 ASCIIToUTF16("email"), | 2065 ASCIIToUTF16("email"), |
2067 ASCIIToUTF16("wyatt@example.com"), | 2066 ASCIIToUTF16("wyatt@example.com"), |
2068 ASCIIToUTF16("text"), | 2067 ASCIIToUTF16("text"), |
2069 kDefaultMaxLength, | 2068 kDefaultMaxLength(), |
2070 false), | 2069 false), |
2071 fields2[2]); | 2070 fields2[2]); |
2072 } | 2071 } |
2073 | 2072 |
2074 TEST_F(FormManagerTest, FillFormEmptyFormNames) { | 2073 TEST_F(FormManagerTest, FillFormEmptyFormNames) { |
2075 LoadHTML("<FORM action=\"http://buh.com\" method=\"post\">" | 2074 LoadHTML("<FORM action=\"http://buh.com\" method=\"post\">" |
2076 " <INPUT type=\"text\" id=\"firstname\"/>" | 2075 " <INPUT type=\"text\" id=\"firstname\"/>" |
2077 " <INPUT type=\"text\" id=\"middlename\"/>" | 2076 " <INPUT type=\"text\" id=\"middlename\"/>" |
2078 " <INPUT type=\"text\" id=\"lastname\"/>" | 2077 " <INPUT type=\"text\" id=\"lastname\"/>" |
2079 " <INPUT type=\"submit\" value=\"Send\"/>" | 2078 " <INPUT type=\"submit\" value=\"Send\"/>" |
(...skipping 27 matching lines...) Expand all Loading... | |
2107 EXPECT_EQ(string16(), form.name); | 2106 EXPECT_EQ(string16(), form.name); |
2108 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 2107 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
2109 EXPECT_EQ(GURL("http://abc.com"), form.action); | 2108 EXPECT_EQ(GURL("http://abc.com"), form.action); |
2110 | 2109 |
2111 const std::vector<FormField>& fields = form.fields; | 2110 const std::vector<FormField>& fields = form.fields; |
2112 ASSERT_EQ(3U, fields.size()); | 2111 ASSERT_EQ(3U, fields.size()); |
2113 EXPECT_EQ(FormField(string16(), | 2112 EXPECT_EQ(FormField(string16(), |
2114 ASCIIToUTF16("apple"), | 2113 ASCIIToUTF16("apple"), |
2115 string16(), | 2114 string16(), |
2116 ASCIIToUTF16("text"), | 2115 ASCIIToUTF16("text"), |
2117 kDefaultMaxLength, | 2116 kDefaultMaxLength(), |
2118 false), | 2117 false), |
2119 fields[0]); | 2118 fields[0]); |
2120 EXPECT_EQ(FormField(string16(), | 2119 EXPECT_EQ(FormField(string16(), |
2121 ASCIIToUTF16("banana"), | 2120 ASCIIToUTF16("banana"), |
2122 string16(), | 2121 string16(), |
2123 ASCIIToUTF16("text"), | 2122 ASCIIToUTF16("text"), |
2124 kDefaultMaxLength, | 2123 kDefaultMaxLength(), |
2125 false), | 2124 false), |
2126 fields[1]); | 2125 fields[1]); |
2127 EXPECT_EQ(FormField(string16(), | 2126 EXPECT_EQ(FormField(string16(), |
2128 ASCIIToUTF16("cantelope"), | 2127 ASCIIToUTF16("cantelope"), |
2129 string16(), | 2128 string16(), |
2130 ASCIIToUTF16("text"), | 2129 ASCIIToUTF16("text"), |
2131 kDefaultMaxLength, | 2130 kDefaultMaxLength(), |
2132 false), | 2131 false), |
2133 fields[2]); | 2132 fields[2]); |
2134 | 2133 |
2135 // Fill the form. | 2134 // Fill the form. |
2136 form.fields[0].set_value(ASCIIToUTF16("Red")); | 2135 form.fields[0].set_value(ASCIIToUTF16("Red")); |
2137 form.fields[1].set_value(ASCIIToUTF16("Yellow")); | 2136 form.fields[1].set_value(ASCIIToUTF16("Yellow")); |
2138 form.fields[2].set_value(ASCIIToUTF16("Also Yellow")); | 2137 form.fields[2].set_value(ASCIIToUTF16("Also Yellow")); |
2139 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); | 2138 EXPECT_TRUE(form_manager.FillForm(form, WebNode())); |
2140 | 2139 |
2141 // Find the newly-filled form that contains the input element. | 2140 // Find the newly-filled form that contains the input element. |
2142 FormData form2; | 2141 FormData form2; |
2143 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( | 2142 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( |
2144 input_element, FormManager::REQUIRE_NONE, &form2)); | 2143 input_element, FormManager::REQUIRE_NONE, &form2)); |
2145 EXPECT_EQ(string16(), form2.name); | 2144 EXPECT_EQ(string16(), form2.name); |
2146 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 2145 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
2147 EXPECT_EQ(GURL("http://abc.com"), form2.action); | 2146 EXPECT_EQ(GURL("http://abc.com"), form2.action); |
2148 | 2147 |
2149 const std::vector<FormField>& fields2 = form2.fields; | 2148 const std::vector<FormField>& fields2 = form2.fields; |
2150 ASSERT_EQ(3U, fields2.size()); | 2149 ASSERT_EQ(3U, fields2.size()); |
2151 EXPECT_EQ(FormField(string16(), | 2150 EXPECT_EQ(FormField(string16(), |
2152 ASCIIToUTF16("apple"), | 2151 ASCIIToUTF16("apple"), |
2153 ASCIIToUTF16("Red"), | 2152 ASCIIToUTF16("Red"), |
2154 ASCIIToUTF16("text"), | 2153 ASCIIToUTF16("text"), |
2155 kDefaultMaxLength, | 2154 kDefaultMaxLength(), |
2156 false), | 2155 false), |
2157 fields2[0]); | 2156 fields2[0]); |
2158 EXPECT_EQ(FormField(string16(), | 2157 EXPECT_EQ(FormField(string16(), |
2159 ASCIIToUTF16("banana"), | 2158 ASCIIToUTF16("banana"), |
2160 ASCIIToUTF16("Yellow"), | 2159 ASCIIToUTF16("Yellow"), |
2161 ASCIIToUTF16("text"), | 2160 ASCIIToUTF16("text"), |
2162 kDefaultMaxLength, | 2161 kDefaultMaxLength(), |
2163 false), | 2162 false), |
2164 fields2[1]); | 2163 fields2[1]); |
2165 EXPECT_EQ(FormField(string16(), | 2164 EXPECT_EQ(FormField(string16(), |
2166 ASCIIToUTF16("cantelope"), | 2165 ASCIIToUTF16("cantelope"), |
2167 ASCIIToUTF16("Also Yellow"), | 2166 ASCIIToUTF16("Also Yellow"), |
2168 ASCIIToUTF16("text"), | 2167 ASCIIToUTF16("text"), |
2169 kDefaultMaxLength, | 2168 kDefaultMaxLength(), |
2170 false), | 2169 false), |
2171 fields2[2]); | 2170 fields2[2]); |
2172 } | 2171 } |
2173 | 2172 |
2174 TEST_F(FormManagerTest, ThreePartPhone) { | 2173 TEST_F(FormManagerTest, ThreePartPhone) { |
2175 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 2174 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
2176 " Phone:" | 2175 " Phone:" |
2177 " <input type=\"text\" name=\"dayphone1\">" | 2176 " <input type=\"text\" name=\"dayphone1\">" |
2178 " -" | 2177 " -" |
2179 " <input type=\"text\" name=\"dayphone2\">" | 2178 " <input type=\"text\" name=\"dayphone2\">" |
(...skipping 20 matching lines...) Expand all Loading... | |
2200 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 2199 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
2201 EXPECT_EQ(GURL(frame->url()), form.origin); | 2200 EXPECT_EQ(GURL(frame->url()), form.origin); |
2202 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 2201 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
2203 | 2202 |
2204 const std::vector<FormField>& fields = form.fields; | 2203 const std::vector<FormField>& fields = form.fields; |
2205 ASSERT_EQ(4U, fields.size()); | 2204 ASSERT_EQ(4U, fields.size()); |
2206 EXPECT_EQ(FormField(ASCIIToUTF16("Phone:"), | 2205 EXPECT_EQ(FormField(ASCIIToUTF16("Phone:"), |
2207 ASCIIToUTF16("dayphone1"), | 2206 ASCIIToUTF16("dayphone1"), |
2208 string16(), | 2207 string16(), |
2209 ASCIIToUTF16("text"), | 2208 ASCIIToUTF16("text"), |
2210 kDefaultMaxLength, | 2209 kDefaultMaxLength(), |
2211 false), | 2210 false), |
2212 fields[0]); | 2211 fields[0]); |
2213 EXPECT_EQ(FormField(ASCIIToUTF16("-"), | 2212 EXPECT_EQ(FormField(ASCIIToUTF16("-"), |
2214 ASCIIToUTF16("dayphone2"), | 2213 ASCIIToUTF16("dayphone2"), |
2215 string16(), | 2214 string16(), |
2216 ASCIIToUTF16("text"), | 2215 ASCIIToUTF16("text"), |
2217 kDefaultMaxLength, | 2216 kDefaultMaxLength(), |
2218 false), | 2217 false), |
2219 fields[1]); | 2218 fields[1]); |
2220 EXPECT_EQ(FormField(ASCIIToUTF16("-"), | 2219 EXPECT_EQ(FormField(ASCIIToUTF16("-"), |
2221 ASCIIToUTF16("dayphone3"), | 2220 ASCIIToUTF16("dayphone3"), |
2222 string16(), | 2221 string16(), |
2223 ASCIIToUTF16("text"), | 2222 ASCIIToUTF16("text"), |
2224 kDefaultMaxLength, | 2223 kDefaultMaxLength(), |
2225 false), | 2224 false), |
2226 fields[2]); | 2225 fields[2]); |
2227 EXPECT_EQ(FormField(ASCIIToUTF16("ext.:"), | 2226 EXPECT_EQ(FormField(ASCIIToUTF16("ext.:"), |
2228 ASCIIToUTF16("dayphone4"), | 2227 ASCIIToUTF16("dayphone4"), |
2229 string16(), | 2228 string16(), |
2230 ASCIIToUTF16("text"), | 2229 ASCIIToUTF16("text"), |
2231 kDefaultMaxLength, | 2230 kDefaultMaxLength(), |
2232 false), | 2231 false), |
2233 fields[3]); | 2232 fields[3]); |
2234 } | 2233 } |
2235 | 2234 |
2236 | 2235 |
2237 TEST_F(FormManagerTest, MaxLengthFields) { | 2236 TEST_F(FormManagerTest, MaxLengthFields) { |
2238 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" | 2237 LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
2239 " Phone:" | 2238 " Phone:" |
2240 " <input type=\"text\" maxlength=\"3\" name=\"dayphone1\">" | 2239 " <input type=\"text\" maxlength=\"3\" name=\"dayphone1\">" |
2241 " -" | 2240 " -" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2294 string16(), | 2293 string16(), |
2295 ASCIIToUTF16("text"), | 2294 ASCIIToUTF16("text"), |
2296 5, | 2295 5, |
2297 false), | 2296 false), |
2298 fields[3]); | 2297 fields[3]); |
2299 // When unspecified |size|, default is returned. | 2298 // When unspecified |size|, default is returned. |
2300 EXPECT_EQ(FormField(string16(), | 2299 EXPECT_EQ(FormField(string16(), |
2301 ASCIIToUTF16("default1"), | 2300 ASCIIToUTF16("default1"), |
2302 string16(), | 2301 string16(), |
2303 ASCIIToUTF16("text"), | 2302 ASCIIToUTF16("text"), |
2304 kDefaultMaxLength, | 2303 kDefaultMaxLength(), |
2305 false), | 2304 false), |
2306 fields[4]); | 2305 fields[4]); |
2307 // When invalid |size|, default is returned. | 2306 // When invalid |size|, default is returned. |
2308 EXPECT_EQ(FormField(string16(), | 2307 EXPECT_EQ(FormField(string16(), |
2309 ASCIIToUTF16("invalid1"), | 2308 ASCIIToUTF16("invalid1"), |
2310 string16(), | 2309 string16(), |
2311 ASCIIToUTF16("text"), | 2310 ASCIIToUTF16("text"), |
2312 kDefaultMaxLength, | 2311 kDefaultMaxLength(), |
2313 false), | 2312 false), |
2314 fields[5]); | 2313 fields[5]); |
2315 } | 2314 } |
2316 | 2315 |
2317 // This test re-creates the experience of typing in a field then selecting a | 2316 // This test re-creates the experience of typing in a field then selecting a |
2318 // profile from the AutoFill suggestions popup. The field that is being typed | 2317 // profile from the AutoFill suggestions popup. The field that is being typed |
2319 // into should be filled even though it's not technically empty. | 2318 // into should be filled even though it's not technically empty. |
2320 TEST_F(FormManagerTest, FillFormNonEmptyField) { | 2319 TEST_F(FormManagerTest, FillFormNonEmptyField) { |
2321 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 2320 LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
2322 " <INPUT type=\"text\" id=\"firstname\"/>" | 2321 " <INPUT type=\"text\" id=\"firstname\"/>" |
(...skipping 27 matching lines...) Expand all Loading... | |
2350 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 2349 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
2351 EXPECT_EQ(GURL(web_frame->url()), form.origin); | 2350 EXPECT_EQ(GURL(web_frame->url()), form.origin); |
2352 EXPECT_EQ(GURL("http://buh.com"), form.action); | 2351 EXPECT_EQ(GURL("http://buh.com"), form.action); |
2353 | 2352 |
2354 const std::vector<FormField>& fields = form.fields; | 2353 const std::vector<FormField>& fields = form.fields; |
2355 ASSERT_EQ(3U, fields.size()); | 2354 ASSERT_EQ(3U, fields.size()); |
2356 EXPECT_EQ(FormField(string16(), | 2355 EXPECT_EQ(FormField(string16(), |
2357 ASCIIToUTF16("firstname"), | 2356 ASCIIToUTF16("firstname"), |
2358 string16(), | 2357 string16(), |
2359 ASCIIToUTF16("text"), | 2358 ASCIIToUTF16("text"), |
2360 kDefaultMaxLength, | 2359 kDefaultMaxLength(), |
2361 false), | 2360 false), |
2362 fields[0]); | 2361 fields[0]); |
2363 EXPECT_EQ(FormField(string16(), | 2362 EXPECT_EQ(FormField(string16(), |
2364 ASCIIToUTF16("lastname"), | 2363 ASCIIToUTF16("lastname"), |
2365 string16(), | 2364 string16(), |
2366 ASCIIToUTF16("text"), | 2365 ASCIIToUTF16("text"), |
2367 kDefaultMaxLength, | 2366 kDefaultMaxLength(), |
2368 false), | 2367 false), |
2369 fields[1]); | 2368 fields[1]); |
2370 EXPECT_EQ(FormField(string16(), | 2369 EXPECT_EQ(FormField(string16(), |
2371 ASCIIToUTF16("email"), | 2370 ASCIIToUTF16("email"), |
2372 string16(), | 2371 string16(), |
2373 ASCIIToUTF16("text"), | 2372 ASCIIToUTF16("text"), |
2374 kDefaultMaxLength, | 2373 kDefaultMaxLength(), |
2375 false), | 2374 false), |
2376 fields[2]); | 2375 fields[2]); |
2377 | 2376 |
2378 // Fill the form. | 2377 // Fill the form. |
2379 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); | 2378 form.fields[0].set_value(ASCIIToUTF16("Wyatt")); |
2380 form.fields[1].set_value(ASCIIToUTF16("Earp")); | 2379 form.fields[1].set_value(ASCIIToUTF16("Earp")); |
2381 form.fields[2].set_value(ASCIIToUTF16("wyatt@example.com")); | 2380 form.fields[2].set_value(ASCIIToUTF16("wyatt@example.com")); |
2382 EXPECT_TRUE(form_manager.FillForm(form, input_element)); | 2381 EXPECT_TRUE(form_manager.FillForm(form, input_element)); |
2383 | 2382 |
2384 // Find the newly-filled form that contains the input element. | 2383 // Find the newly-filled form that contains the input element. |
2385 FormData form2; | 2384 FormData form2; |
2386 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( | 2385 EXPECT_TRUE(form_manager.FindFormWithFormControlElement( |
2387 input_element, FormManager::REQUIRE_NONE, &form2)); | 2386 input_element, FormManager::REQUIRE_NONE, &form2)); |
2388 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); | 2387 EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name); |
2389 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 2388 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
2390 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 2389 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
2391 | 2390 |
2392 const std::vector<FormField>& fields2 = form2.fields; | 2391 const std::vector<FormField>& fields2 = form2.fields; |
2393 ASSERT_EQ(3U, fields2.size()); | 2392 ASSERT_EQ(3U, fields2.size()); |
2394 EXPECT_EQ(FormField(string16(), | 2393 EXPECT_EQ(FormField(string16(), |
2395 ASCIIToUTF16("firstname"), | 2394 ASCIIToUTF16("firstname"), |
2396 ASCIIToUTF16("Wyatt"), | 2395 ASCIIToUTF16("Wyatt"), |
2397 ASCIIToUTF16("text"), | 2396 ASCIIToUTF16("text"), |
2398 kDefaultMaxLength, | 2397 kDefaultMaxLength(), |
2399 false), | 2398 false), |
2400 fields2[0]); | 2399 fields2[0]); |
2401 EXPECT_EQ(FormField(string16(), | 2400 EXPECT_EQ(FormField(string16(), |
2402 ASCIIToUTF16("lastname"), | 2401 ASCIIToUTF16("lastname"), |
2403 ASCIIToUTF16("Earp"), | 2402 ASCIIToUTF16("Earp"), |
2404 ASCIIToUTF16("text"), | 2403 ASCIIToUTF16("text"), |
2405 kDefaultMaxLength, | 2404 kDefaultMaxLength(), |
2406 false), | 2405 false), |
2407 fields2[1]); | 2406 fields2[1]); |
2408 EXPECT_EQ(FormField(string16(), | 2407 EXPECT_EQ(FormField(string16(), |
2409 ASCIIToUTF16("email"), | 2408 ASCIIToUTF16("email"), |
2410 ASCIIToUTF16("wyatt@example.com"), | 2409 ASCIIToUTF16("wyatt@example.com"), |
2411 ASCIIToUTF16("text"), | 2410 ASCIIToUTF16("text"), |
2412 kDefaultMaxLength, | 2411 kDefaultMaxLength(), |
2413 false), | 2412 false), |
2414 fields2[2]); | 2413 fields2[2]); |
2415 | 2414 |
2416 // Verify that the cursor position has been updated. | 2415 // Verify that the cursor position has been updated. |
2417 EXPECT_EQ(5, input_element.selectionStart()); | 2416 EXPECT_EQ(5, input_element.selectionStart()); |
2418 EXPECT_EQ(5, input_element.selectionEnd()); | 2417 EXPECT_EQ(5, input_element.selectionEnd()); |
2419 } | 2418 } |
2420 | 2419 |
2421 TEST_F(FormManagerTest, ClearFormWithNode) { | 2420 TEST_F(FormManagerTest, ClearFormWithNode) { |
2422 LoadHTML( | 2421 LoadHTML( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2463 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 2462 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
2464 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 2463 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
2465 | 2464 |
2466 const std::vector<FormField>& fields2 = form2.fields; | 2465 const std::vector<FormField>& fields2 = form2.fields; |
2467 ASSERT_EQ(4U, fields2.size()); | 2466 ASSERT_EQ(4U, fields2.size()); |
2468 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( | 2467 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( |
2469 FormField(string16(), | 2468 FormField(string16(), |
2470 ASCIIToUTF16("firstname"), | 2469 ASCIIToUTF16("firstname"), |
2471 string16(), | 2470 string16(), |
2472 ASCIIToUTF16("text"), | 2471 ASCIIToUTF16("text"), |
2473 kDefaultMaxLength, | 2472 kDefaultMaxLength(), |
2474 false))); | 2473 false))); |
2475 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( | 2474 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( |
2476 FormField(string16(), | 2475 FormField(string16(), |
2477 ASCIIToUTF16("lastname"), | 2476 ASCIIToUTF16("lastname"), |
2478 string16(), | 2477 string16(), |
2479 ASCIIToUTF16("text"), | 2478 ASCIIToUTF16("text"), |
2480 kDefaultMaxLength, | 2479 kDefaultMaxLength(), |
2481 false))); | 2480 false))); |
2482 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( | 2481 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( |
2483 FormField(string16(), | 2482 FormField(string16(), |
2484 ASCIIToUTF16("noAC"), | 2483 ASCIIToUTF16("noAC"), |
2485 string16(), | 2484 string16(), |
2486 ASCIIToUTF16("text"), | 2485 ASCIIToUTF16("text"), |
2487 kDefaultMaxLength, | 2486 kDefaultMaxLength(), |
2488 false))); | 2487 false))); |
2489 EXPECT_TRUE(fields2[3].StrictlyEqualsHack( | 2488 EXPECT_TRUE(fields2[3].StrictlyEqualsHack( |
2490 FormField(string16(), | 2489 FormField(string16(), |
2491 ASCIIToUTF16("notenabled"), | 2490 ASCIIToUTF16("notenabled"), |
2492 ASCIIToUTF16("no clear"), | 2491 ASCIIToUTF16("no clear"), |
2493 ASCIIToUTF16("text"), | 2492 ASCIIToUTF16("text"), |
2494 kDefaultMaxLength, | 2493 kDefaultMaxLength(), |
2495 false))); | 2494 false))); |
2496 | 2495 |
2497 // Verify that the cursor position has been updated. | 2496 // Verify that the cursor position has been updated. |
2498 EXPECT_EQ(0, firstname.selectionStart()); | 2497 EXPECT_EQ(0, firstname.selectionStart()); |
2499 EXPECT_EQ(0, firstname.selectionEnd()); | 2498 EXPECT_EQ(0, firstname.selectionEnd()); |
2500 } | 2499 } |
2501 | 2500 |
2502 TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) { | 2501 TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) { |
2503 LoadHTML( | 2502 LoadHTML( |
2504 "<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" | 2503 "<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2548 EXPECT_EQ(GURL(web_frame->url()), form2.origin); | 2547 EXPECT_EQ(GURL(web_frame->url()), form2.origin); |
2549 EXPECT_EQ(GURL("http://buh.com"), form2.action); | 2548 EXPECT_EQ(GURL("http://buh.com"), form2.action); |
2550 | 2549 |
2551 const std::vector<FormField>& fields2 = form2.fields; | 2550 const std::vector<FormField>& fields2 = form2.fields; |
2552 ASSERT_EQ(3U, fields2.size()); | 2551 ASSERT_EQ(3U, fields2.size()); |
2553 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( | 2552 EXPECT_TRUE(fields2[0].StrictlyEqualsHack( |
2554 FormField(string16(), | 2553 FormField(string16(), |
2555 ASCIIToUTF16("firstname"), | 2554 ASCIIToUTF16("firstname"), |
2556 string16(), | 2555 string16(), |
2557 ASCIIToUTF16("text"), | 2556 ASCIIToUTF16("text"), |
2558 kDefaultMaxLength, | 2557 kDefaultMaxLength(), |
2559 false))); | 2558 false))); |
2560 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( | 2559 EXPECT_TRUE(fields2[1].StrictlyEqualsHack( |
2561 FormField(string16(), | 2560 FormField(string16(), |
2562 ASCIIToUTF16("lastname"), | 2561 ASCIIToUTF16("lastname"), |
2563 string16(), | 2562 string16(), |
2564 ASCIIToUTF16("text"), | 2563 ASCIIToUTF16("text"), |
2565 kDefaultMaxLength, | 2564 kDefaultMaxLength(), |
2566 false))); | 2565 false))); |
2567 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( | 2566 EXPECT_TRUE(fields2[2].StrictlyEqualsHack( |
2568 FormField(string16(), | 2567 FormField(string16(), |
2569 ASCIIToUTF16("state"), | 2568 ASCIIToUTF16("state"), |
2570 ASCIIToUTF16("?"), | 2569 ASCIIToUTF16("?"), |
2571 ASCIIToUTF16("select-one"), | 2570 ASCIIToUTF16("select-one"), |
2572 0, | 2571 0, |
2573 false))); | 2572 false))); |
2574 | 2573 |
2575 // Verify that the cursor position has been updated. | 2574 // Verify that the cursor position has been updated. |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2878 EXPECT_EQ(GURL(frame->url()), form.origin); | 2877 EXPECT_EQ(GURL(frame->url()), form.origin); |
2879 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 2878 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
2880 | 2879 |
2881 const std::vector<FormField>& fields = form.fields; | 2880 const std::vector<FormField>& fields = form.fields; |
2882 ASSERT_EQ(3U, fields.size()); | 2881 ASSERT_EQ(3U, fields.size()); |
2883 EXPECT_TRUE(fields[0].StrictlyEqualsHack( | 2882 EXPECT_TRUE(fields[0].StrictlyEqualsHack( |
2884 FormField(string16(), | 2883 FormField(string16(), |
2885 ASCIIToUTF16("firstname"), | 2884 ASCIIToUTF16("firstname"), |
2886 ASCIIToUTF16("John"), | 2885 ASCIIToUTF16("John"), |
2887 ASCIIToUTF16("text"), | 2886 ASCIIToUTF16("text"), |
2888 kDefaultMaxLength, | 2887 kDefaultMaxLength(), |
2889 false))); | 2888 false))); |
2890 EXPECT_TRUE(fields[1].StrictlyEqualsHack( | 2889 EXPECT_TRUE(fields[1].StrictlyEqualsHack( |
2891 FormField(string16(), | 2890 FormField(string16(), |
2892 ASCIIToUTF16("lastname"), | 2891 ASCIIToUTF16("lastname"), |
2893 ASCIIToUTF16("Smith"), | 2892 ASCIIToUTF16("Smith"), |
2894 ASCIIToUTF16("text"), | 2893 ASCIIToUTF16("text"), |
2895 kDefaultMaxLength, | 2894 kDefaultMaxLength(), |
2896 false))); | 2895 false))); |
2897 EXPECT_TRUE(fields[2].StrictlyEqualsHack( | 2896 EXPECT_TRUE(fields[2].StrictlyEqualsHack( |
2898 FormField(string16(), | 2897 FormField(string16(), |
2899 ASCIIToUTF16("country"), | 2898 ASCIIToUTF16("country"), |
2900 ASCIIToUTF16("Albania"), | 2899 ASCIIToUTF16("Albania"), |
2901 ASCIIToUTF16("select-one"), | 2900 ASCIIToUTF16("select-one"), |
2902 0, | 2901 0, |
2903 false))); | 2902 false))); |
2904 | 2903 |
2905 form.fields.clear(); | 2904 form.fields.clear(); |
2906 // Extract the country select-one value as value. | 2905 // Extract the country select-one value as value. |
2907 EXPECT_TRUE(FormManager::WebFormElementToFormData(forms[0], | 2906 EXPECT_TRUE(FormManager::WebFormElementToFormData(forms[0], |
2908 FormManager::REQUIRE_NONE, | 2907 FormManager::REQUIRE_NONE, |
2909 FormManager::EXTRACT_VALUE, | 2908 FormManager::EXTRACT_VALUE, |
2910 &form)); | 2909 &form)); |
2911 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); | 2910 EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); |
2912 EXPECT_EQ(GURL(frame->url()), form.origin); | 2911 EXPECT_EQ(GURL(frame->url()), form.origin); |
2913 EXPECT_EQ(GURL("http://cnn.com"), form.action); | 2912 EXPECT_EQ(GURL("http://cnn.com"), form.action); |
2914 | 2913 |
2915 ASSERT_EQ(3U, fields.size()); | 2914 ASSERT_EQ(3U, fields.size()); |
2916 EXPECT_TRUE(fields[0].StrictlyEqualsHack( | 2915 EXPECT_TRUE(fields[0].StrictlyEqualsHack( |
2917 FormField(string16(), | 2916 FormField(string16(), |
2918 ASCIIToUTF16("firstname"), | 2917 ASCIIToUTF16("firstname"), |
2919 ASCIIToUTF16("John"), | 2918 ASCIIToUTF16("John"), |
2920 ASCIIToUTF16("text"), | 2919 ASCIIToUTF16("text"), |
2921 kDefaultMaxLength, | 2920 kDefaultMaxLength(), |
2922 false))); | 2921 false))); |
2923 EXPECT_TRUE(fields[1].StrictlyEqualsHack( | 2922 EXPECT_TRUE(fields[1].StrictlyEqualsHack( |
2924 FormField(string16(), | 2923 FormField(string16(), |
2925 ASCIIToUTF16("lastname"), | 2924 ASCIIToUTF16("lastname"), |
2926 ASCIIToUTF16("Smith"), | 2925 ASCIIToUTF16("Smith"), |
2927 ASCIIToUTF16("text"), | 2926 ASCIIToUTF16("text"), |
2928 kDefaultMaxLength, | 2927 kDefaultMaxLength(), |
2929 false))); | 2928 false))); |
2930 EXPECT_TRUE(fields[2].StrictlyEqualsHack( | 2929 EXPECT_TRUE(fields[2].StrictlyEqualsHack( |
2931 FormField(string16(), | 2930 FormField(string16(), |
2932 ASCIIToUTF16("country"), | 2931 ASCIIToUTF16("country"), |
2933 ASCIIToUTF16("AL"), | 2932 ASCIIToUTF16("AL"), |
2934 ASCIIToUTF16("select-one"), | 2933 ASCIIToUTF16("select-one"), |
2935 0, | 2934 0, |
2936 false))); | 2935 false))); |
2937 } | 2936 } |
OLD | NEW |