Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: chrome/renderer/autofill/form_manager_browsertest.cc

Issue 6437001: Pull in a named constant from WebKit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Namespace. Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_merge_unittest.cc ('k') | chrome/renderer/render_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698