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

Side by Side Diff: components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc

Issue 1075783002: Enable components_browsertests on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix GN build and add java dependency to components/test/DEPS Created 5 years, 8 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
« no previous file with comments | « components/BUILD.gn ('k') | components/components_browsertests.isolate » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/string16.h" 5 #include "base/strings/string16.h"
6 #include "base/strings/string_util.h" 6 #include "base/strings/string_util.h"
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "components/autofill/content/renderer/password_form_conversion_utils.h" 9 #include "components/autofill/content/renderer/password_form_conversion_utils.h"
10 #include "components/autofill/core/common/password_form.h" 10 #include "components/autofill/core/common/password_form.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 std::string ProduceHTML() const { 98 std::string ProduceHTML() const {
99 return html_ + "</FORM>"; 99 return html_ + "</FORM>";
100 } 100 }
101 101
102 private: 102 private:
103 std::string html_; 103 std::string html_;
104 104
105 DISALLOW_COPY_AND_ASSIGN(PasswordFormBuilder); 105 DISALLOW_COPY_AND_ASSIGN(PasswordFormBuilder);
106 }; 106 };
107 107
108 class PasswordFormConversionUtilsTest : public content::RenderViewTest { 108 // RenderVIewTest-based tests crash on Android
109 // http://crbug.com/187500
110 #if defined(OS_ANDROID)
111 #define MAYBE_PasswordFormConversionUtilsTest \
112 DISABLED_PasswordFormConversionUtilsTest
113 #else
114 #define MAYBE_PasswordFormConversionUtilsTest PasswordFormConversionUtilsTest
115 #endif // defined(OS_ANDROID)
116
117 class MAYBE_PasswordFormConversionUtilsTest : public content::RenderViewTest {
109 public: 118 public:
110 PasswordFormConversionUtilsTest() : content::RenderViewTest() {} 119 MAYBE_PasswordFormConversionUtilsTest() : content::RenderViewTest() {}
111 ~PasswordFormConversionUtilsTest() override {} 120 ~MAYBE_PasswordFormConversionUtilsTest() override {}
112 121
113 protected: 122 protected:
114 // Loads the given |html|, retrieves the sole WebFormElement from it, and then 123 // Loads the given |html|, retrieves the sole WebFormElement from it, and then
115 // calls CreatePasswordForm() to convert it into a |password_form|. Note that 124 // calls CreatePasswordForm() to convert it into a |password_form|. Note that
116 // ASSERT() can only be used in void functions, this is why |password_form| is 125 // ASSERT() can only be used in void functions, this is why |password_form| is
117 // passed in as a pointer to a scoped_ptr. 126 // passed in as a pointer to a scoped_ptr.
118 void LoadHTMLAndConvertForm(const std::string& html, 127 void LoadHTMLAndConvertForm(const std::string& html,
119 scoped_ptr<PasswordForm>* password_form) { 128 scoped_ptr<PasswordForm>* password_form) {
120 LoadHTML(html.c_str()); 129 LoadHTML(html.c_str());
121 130
122 WebFrame* frame = GetMainFrame(); 131 WebFrame* frame = GetMainFrame();
123 ASSERT_NE(static_cast<WebFrame*>(NULL), frame); 132 ASSERT_NE(static_cast<WebFrame*>(NULL), frame);
124 133
125 WebVector<WebFormElement> forms; 134 WebVector<WebFormElement> forms;
126 frame->document().forms(forms); 135 frame->document().forms(forms);
127 ASSERT_EQ(1U, forms.size()); 136 ASSERT_EQ(1U, forms.size());
128 137
129 WebVector<WebFormControlElement> control_elements; 138 WebVector<WebFormControlElement> control_elements;
130 forms[0].getFormControlElements(control_elements); 139 forms[0].getFormControlElements(control_elements);
131 for (size_t i = 0; i < control_elements.size(); ++i) { 140 for (size_t i = 0; i < control_elements.size(); ++i) {
132 WebInputElement* input_element = toWebInputElement(&control_elements[i]); 141 WebInputElement* input_element = toWebInputElement(&control_elements[i]);
133 if (input_element->hasAttribute("set-activated-submit")) 142 if (input_element->hasAttribute("set-activated-submit"))
134 input_element->setActivatedSubmit(true); 143 input_element->setActivatedSubmit(true);
135 } 144 }
136 145
137 *password_form = CreatePasswordForm(forms[0], nullptr, nullptr); 146 *password_form = CreatePasswordForm(forms[0], nullptr, nullptr);
138 } 147 }
139 148
140 private: 149 private:
141 DISALLOW_COPY_AND_ASSIGN(PasswordFormConversionUtilsTest); 150 DISALLOW_COPY_AND_ASSIGN(MAYBE_PasswordFormConversionUtilsTest);
142 }; 151 };
143 152
144 } // namespace 153 } // namespace
145 154
146 TEST_F(PasswordFormConversionUtilsTest, BasicFormAttributes) { 155 TEST_F(MAYBE_PasswordFormConversionUtilsTest, BasicFormAttributes) {
147 PasswordFormBuilder builder(kTestFormActionURL); 156 PasswordFormBuilder builder(kTestFormActionURL);
148 builder.AddUsernameField("username", "johnsmith", NULL); 157 builder.AddUsernameField("username", "johnsmith", NULL);
149 builder.AddSubmitButton("inactive_submit", false); 158 builder.AddSubmitButton("inactive_submit", false);
150 builder.AddSubmitButton("active_submit", true); 159 builder.AddSubmitButton("active_submit", true);
151 builder.AddSubmitButton("inactive_submit2", false); 160 builder.AddSubmitButton("inactive_submit2", false);
152 builder.AddPasswordField("password", "secret", NULL); 161 builder.AddPasswordField("password", "secret", NULL);
153 std::string html = builder.ProduceHTML(); 162 std::string html = builder.ProduceHTML();
154 163
155 scoped_ptr<PasswordForm> password_form; 164 scoped_ptr<PasswordForm> password_form;
156 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 165 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
157 ASSERT_TRUE(password_form); 166 ASSERT_TRUE(password_form);
158 167
159 EXPECT_EQ("data:", password_form->signon_realm); 168 EXPECT_EQ("data:", password_form->signon_realm);
160 EXPECT_EQ(GURL(kTestFormActionURL), password_form->action); 169 EXPECT_EQ(GURL(kTestFormActionURL), password_form->action);
161 EXPECT_EQ(base::UTF8ToUTF16("active_submit"), password_form->submit_element); 170 EXPECT_EQ(base::UTF8ToUTF16("active_submit"), password_form->submit_element);
162 EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element); 171 EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element);
163 EXPECT_EQ(base::UTF8ToUTF16("johnsmith"), password_form->username_value); 172 EXPECT_EQ(base::UTF8ToUTF16("johnsmith"), password_form->username_value);
164 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); 173 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element);
165 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); 174 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value);
166 EXPECT_EQ(PasswordForm::SCHEME_HTML, password_form->scheme); 175 EXPECT_EQ(PasswordForm::SCHEME_HTML, password_form->scheme);
167 EXPECT_FALSE(password_form->ssl_valid); 176 EXPECT_FALSE(password_form->ssl_valid);
168 EXPECT_FALSE(password_form->preferred); 177 EXPECT_FALSE(password_form->preferred);
169 EXPECT_FALSE(password_form->blacklisted_by_user); 178 EXPECT_FALSE(password_form->blacklisted_by_user);
170 EXPECT_EQ(PasswordForm::TYPE_MANUAL, password_form->type); 179 EXPECT_EQ(PasswordForm::TYPE_MANUAL, password_form->type);
171 } 180 }
172 181
173 TEST_F(PasswordFormConversionUtilsTest, DisabledFieldsAreIgnored) { 182 TEST_F(MAYBE_PasswordFormConversionUtilsTest, DisabledFieldsAreIgnored) {
174 PasswordFormBuilder builder(kTestFormActionURL); 183 PasswordFormBuilder builder(kTestFormActionURL);
175 builder.AddUsernameField("username", "johnsmith", NULL); 184 builder.AddUsernameField("username", "johnsmith", NULL);
176 builder.AddDisabledUsernameField(); 185 builder.AddDisabledUsernameField();
177 builder.AddDisabledPasswordField(); 186 builder.AddDisabledPasswordField();
178 builder.AddPasswordField("password", "secret", NULL); 187 builder.AddPasswordField("password", "secret", NULL);
179 builder.AddSubmitButton("submit", true); 188 builder.AddSubmitButton("submit", true);
180 std::string html = builder.ProduceHTML(); 189 std::string html = builder.ProduceHTML();
181 190
182 scoped_ptr<PasswordForm> password_form; 191 scoped_ptr<PasswordForm> password_form;
183 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 192 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
184 ASSERT_TRUE(password_form); 193 ASSERT_TRUE(password_form);
185 EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element); 194 EXPECT_EQ(base::UTF8ToUTF16("username"), password_form->username_element);
186 EXPECT_EQ(base::UTF8ToUTF16("johnsmith"), password_form->username_value); 195 EXPECT_EQ(base::UTF8ToUTF16("johnsmith"), password_form->username_value);
187 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); 196 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element);
188 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); 197 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value);
189 } 198 }
190 199
191 TEST_F(PasswordFormConversionUtilsTest, IdentifyingUsernameFields) { 200 TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingUsernameFields) {
192 // Each test case consists of a set of parameters to be plugged into the 201 // Each test case consists of a set of parameters to be plugged into the
193 // PasswordFormBuilder below, plus the corresponding expectations. 202 // PasswordFormBuilder below, plus the corresponding expectations.
194 struct TestCase { 203 struct TestCase {
195 const char* autocomplete[3]; 204 const char* autocomplete[3];
196 const char* expected_username_element; 205 const char* expected_username_element;
197 const char* expected_username_value; 206 const char* expected_username_value;
198 const char* expected_other_possible_usernames; 207 const char* expected_other_possible_usernames;
199 } cases[] = { 208 } cases[] = {
200 // When no elements are marked with autocomplete='username', the text-type 209 // When no elements are marked with autocomplete='username', the text-type
201 // input field before the first password element should get selected as 210 // input field before the first password element should get selected as
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 EXPECT_TRUE(password_form->other_possible_usernames.empty()); 275 EXPECT_TRUE(password_form->other_possible_usernames.empty());
267 } 276 }
268 277
269 // Do a basic sanity check that we are still having a password field. 278 // Do a basic sanity check that we are still having a password field.
270 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element); 279 EXPECT_EQ(base::UTF8ToUTF16("password"), password_form->password_element);
271 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value); 280 EXPECT_EQ(base::UTF8ToUTF16("secret"), password_form->password_value);
272 } 281 }
273 } 282 }
274 } 283 }
275 284
276 TEST_F(PasswordFormConversionUtilsTest, IdentifyingTwoPasswordFields) { 285 TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingTwoPasswordFields) {
277 // Each test case consists of a set of parameters to be plugged into the 286 // Each test case consists of a set of parameters to be plugged into the
278 // PasswordFormBuilder below, plus the corresponding expectations. 287 // PasswordFormBuilder below, plus the corresponding expectations.
279 struct TestCase { 288 struct TestCase {
280 const char* password_values[2]; 289 const char* password_values[2];
281 const char* expected_password_element; 290 const char* expected_password_element;
282 const char* expected_password_value; 291 const char* expected_password_value;
283 const char* expected_new_password_element; 292 const char* expected_new_password_element;
284 const char* expected_new_password_value; 293 const char* expected_new_password_value;
285 } cases[] = { 294 } cases[] = {
286 // Twp non-empty fields with the same value should be treated as a new 295 // Twp non-empty fields with the same value should be treated as a new
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 password_form->new_password_value); 330 password_form->new_password_value);
322 331
323 // Do a basic sanity check that we are still selecting the right username. 332 // Do a basic sanity check that we are still selecting the right username.
324 EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element); 333 EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element);
325 EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); 334 EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value);
326 EXPECT_THAT(password_form->other_possible_usernames, 335 EXPECT_THAT(password_form->other_possible_usernames,
327 testing::ElementsAre(base::UTF8ToUTF16("Smith"))); 336 testing::ElementsAre(base::UTF8ToUTF16("Smith")));
328 } 337 }
329 } 338 }
330 339
331 TEST_F(PasswordFormConversionUtilsTest, IdentifyingThreePasswordFields) { 340 TEST_F(MAYBE_PasswordFormConversionUtilsTest, IdentifyingThreePasswordFields) {
332 // Each test case consists of a set of parameters to be plugged into the 341 // Each test case consists of a set of parameters to be plugged into the
333 // PasswordFormBuilder below, plus the corresponding expectations. 342 // PasswordFormBuilder below, plus the corresponding expectations.
334 struct TestCase { 343 struct TestCase {
335 const char* password_values[3]; 344 const char* password_values[3];
336 const char* expected_password_element; 345 const char* expected_password_element;
337 const char* expected_password_value; 346 const char* expected_password_value;
338 const char* expected_new_password_element; 347 const char* expected_new_password_element;
339 const char* expected_new_password_value; 348 const char* expected_new_password_value;
340 } cases[] = { 349 } cases[] = {
341 // Two fields with the same value, and one different: we should treat this 350 // Two fields with the same value, and one different: we should treat this
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 password_form->new_password_value); 391 password_form->new_password_value);
383 392
384 // Do a basic sanity check that we are still selecting the right username. 393 // Do a basic sanity check that we are still selecting the right username.
385 EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element); 394 EXPECT_EQ(base::UTF8ToUTF16("username1"), password_form->username_element);
386 EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value); 395 EXPECT_EQ(base::UTF8ToUTF16("William"), password_form->username_value);
387 EXPECT_THAT(password_form->other_possible_usernames, 396 EXPECT_THAT(password_form->other_possible_usernames,
388 testing::ElementsAre(base::UTF8ToUTF16("Smith"))); 397 testing::ElementsAre(base::UTF8ToUTF16("Smith")));
389 } 398 }
390 } 399 }
391 400
392 TEST_F(PasswordFormConversionUtilsTest, 401 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
393 IdentifyingPasswordFieldsWithAutocompleteAttributes) { 402 IdentifyingPasswordFieldsWithAutocompleteAttributes) {
394 // Each test case consists of a set of parameters to be plugged into the 403 // Each test case consists of a set of parameters to be plugged into the
395 // PasswordFormBuilder below, plus the corresponding expectations. 404 // PasswordFormBuilder below, plus the corresponding expectations.
396 struct TestCase { 405 struct TestCase {
397 const char* autocomplete[3]; 406 const char* autocomplete[3];
398 const char* expected_password_element; 407 const char* expected_password_element;
399 const char* expected_password_value; 408 const char* expected_password_value;
400 const char* expected_new_password_element; 409 const char* expected_new_password_element;
401 const char* expected_new_password_value; 410 const char* expected_new_password_value;
402 bool expected_new_password_marked_by_site; 411 bool expected_new_password_marked_by_site;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 password_form->password_value); 529 password_form->password_value);
521 EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_new_password_element), 530 EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_new_password_element),
522 password_form->new_password_element); 531 password_form->new_password_element);
523 EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_new_password_value), 532 EXPECT_EQ(base::UTF8ToUTF16(cases[i].expected_new_password_value),
524 password_form->new_password_value); 533 password_form->new_password_value);
525 EXPECT_EQ(cases[i].expected_new_password_marked_by_site, 534 EXPECT_EQ(cases[i].expected_new_password_marked_by_site,
526 password_form->new_password_marked_by_site); 535 password_form->new_password_marked_by_site);
527 } 536 }
528 } 537 }
529 538
530 TEST_F(PasswordFormConversionUtilsTest, InvalidFormDueToBadActionURL) { 539 TEST_F(MAYBE_PasswordFormConversionUtilsTest, InvalidFormDueToBadActionURL) {
531 PasswordFormBuilder builder("invalid_target"); 540 PasswordFormBuilder builder("invalid_target");
532 builder.AddUsernameField("username", "JohnSmith", NULL); 541 builder.AddUsernameField("username", "JohnSmith", NULL);
533 builder.AddSubmitButton("submit", true); 542 builder.AddSubmitButton("submit", true);
534 builder.AddPasswordField("password", "secret", NULL); 543 builder.AddPasswordField("password", "secret", NULL);
535 std::string html = builder.ProduceHTML(); 544 std::string html = builder.ProduceHTML();
536 545
537 scoped_ptr<PasswordForm> password_form; 546 scoped_ptr<PasswordForm> password_form;
538 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 547 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
539 EXPECT_FALSE(password_form); 548 EXPECT_FALSE(password_form);
540 } 549 }
541 550
542 TEST_F(PasswordFormConversionUtilsTest, InvalidFormDueToNoPasswordFields) { 551 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
552 InvalidFormDueToNoPasswordFields) {
543 PasswordFormBuilder builder(kTestFormActionURL); 553 PasswordFormBuilder builder(kTestFormActionURL);
544 builder.AddUsernameField("username1", "John", NULL); 554 builder.AddUsernameField("username1", "John", NULL);
545 builder.AddUsernameField("username2", "Smith", NULL); 555 builder.AddUsernameField("username2", "Smith", NULL);
546 builder.AddSubmitButton("submit", true); 556 builder.AddSubmitButton("submit", true);
547 std::string html = builder.ProduceHTML(); 557 std::string html = builder.ProduceHTML();
548 558
549 scoped_ptr<PasswordForm> password_form; 559 scoped_ptr<PasswordForm> password_form;
550 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 560 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
551 EXPECT_FALSE(password_form); 561 EXPECT_FALSE(password_form);
552 } 562 }
553 563
554 TEST_F(PasswordFormConversionUtilsTest, 564 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
555 InvalidFormsDueToConfusingPasswordFields) { 565 InvalidFormsDueToConfusingPasswordFields) {
556 // Each test case consists of a set of parameters to be plugged into the 566 // Each test case consists of a set of parameters to be plugged into the
557 // PasswordFormBuilder below. 567 // PasswordFormBuilder below.
558 const char* cases[][3] = { 568 const char* cases[][3] = {
559 // No autocomplete attributes to guide us, and we see: 569 // No autocomplete attributes to guide us, and we see:
560 // * three password values that are all different, 570 // * three password values that are all different,
561 // * three password values that are all the same; 571 // * three password values that are all the same;
562 // * three password values with the first and last matching. 572 // * three password values with the first and last matching.
563 // In any case, we should just give up on this form. 573 // In any case, we should just give up on this form.
564 {"alpha", "beta", "gamma"}, 574 {"alpha", "beta", "gamma"},
(...skipping 10 matching lines...) Expand all
575 builder.AddPasswordField("password3", cases[i][2], NULL); 585 builder.AddPasswordField("password3", cases[i][2], NULL);
576 builder.AddSubmitButton("submit", true); 586 builder.AddSubmitButton("submit", true);
577 std::string html = builder.ProduceHTML(); 587 std::string html = builder.ProduceHTML();
578 588
579 scoped_ptr<PasswordForm> password_form; 589 scoped_ptr<PasswordForm> password_form;
580 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 590 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
581 EXPECT_FALSE(password_form); 591 EXPECT_FALSE(password_form);
582 } 592 }
583 } 593 }
584 594
585 TEST_F(PasswordFormConversionUtilsTest, 595 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
586 InvalidFormDueToTooManyPasswordFieldsWithoutAutocompleteAttributes) { 596 InvalidFormDueToTooManyPasswordFieldsWithoutAutocompleteAttributes) {
587 PasswordFormBuilder builder(kTestFormActionURL); 597 PasswordFormBuilder builder(kTestFormActionURL);
588 builder.AddUsernameField("username1", "John", NULL); 598 builder.AddUsernameField("username1", "John", NULL);
589 builder.AddPasswordField("password1", "alpha", NULL); 599 builder.AddPasswordField("password1", "alpha", NULL);
590 builder.AddPasswordField("password2", "alpha", NULL); 600 builder.AddPasswordField("password2", "alpha", NULL);
591 builder.AddPasswordField("password3", "alpha", NULL); 601 builder.AddPasswordField("password3", "alpha", NULL);
592 builder.AddPasswordField("password4", "alpha", NULL); 602 builder.AddPasswordField("password4", "alpha", NULL);
593 builder.AddSubmitButton("submit", true); 603 builder.AddSubmitButton("submit", true);
594 std::string html = builder.ProduceHTML(); 604 std::string html = builder.ProduceHTML();
595 605
596 scoped_ptr<PasswordForm> password_form; 606 scoped_ptr<PasswordForm> password_form;
597 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form)); 607 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(html, &password_form));
598 EXPECT_FALSE(password_form); 608 EXPECT_FALSE(password_form);
599 } 609 }
600 610
601 TEST_F(PasswordFormConversionUtilsTest, LayoutClassificationLogin) { 611 TEST_F(MAYBE_PasswordFormConversionUtilsTest, LayoutClassificationLogin) {
602 PasswordFormBuilder builder(kTestFormActionURL); 612 PasswordFormBuilder builder(kTestFormActionURL);
603 builder.AddHiddenField(); 613 builder.AddHiddenField();
604 builder.AddUsernameField("username", "", nullptr); 614 builder.AddUsernameField("username", "", nullptr);
605 builder.AddPasswordField("password", "", nullptr); 615 builder.AddPasswordField("password", "", nullptr);
606 builder.AddSubmitButton("submit", false); 616 builder.AddSubmitButton("submit", false);
607 std::string login_html = builder.ProduceHTML(); 617 std::string login_html = builder.ProduceHTML();
608 618
609 scoped_ptr<PasswordForm> login_form; 619 scoped_ptr<PasswordForm> login_form;
610 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(login_html, &login_form)); 620 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(login_html, &login_form));
611 ASSERT_TRUE(login_form); 621 ASSERT_TRUE(login_form);
612 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, login_form->layout); 622 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, login_form->layout);
613 } 623 }
614 624
615 TEST_F(PasswordFormConversionUtilsTest, LayoutClassificationSignup) { 625 TEST_F(MAYBE_PasswordFormConversionUtilsTest, LayoutClassificationSignup) {
616 PasswordFormBuilder builder(kTestFormActionURL); 626 PasswordFormBuilder builder(kTestFormActionURL);
617 builder.AddUsernameField("someotherfield", "", nullptr); 627 builder.AddUsernameField("someotherfield", "", nullptr);
618 builder.AddUsernameField("username", "", nullptr); 628 builder.AddUsernameField("username", "", nullptr);
619 builder.AddPasswordField("new_password", "", nullptr); 629 builder.AddPasswordField("new_password", "", nullptr);
620 builder.AddHiddenField(); 630 builder.AddHiddenField();
621 builder.AddPasswordField("new_password2", "", nullptr); 631 builder.AddPasswordField("new_password2", "", nullptr);
622 builder.AddSubmitButton("submit", false); 632 builder.AddSubmitButton("submit", false);
623 std::string signup_html = builder.ProduceHTML(); 633 std::string signup_html = builder.ProduceHTML();
624 634
625 scoped_ptr<PasswordForm> signup_form; 635 scoped_ptr<PasswordForm> signup_form;
626 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(signup_html, &signup_form)); 636 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(signup_html, &signup_form));
627 ASSERT_TRUE(signup_form); 637 ASSERT_TRUE(signup_form);
628 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, signup_form->layout); 638 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, signup_form->layout);
629 } 639 }
630 640
631 TEST_F(PasswordFormConversionUtilsTest, LayoutClassificationChange) { 641 TEST_F(MAYBE_PasswordFormConversionUtilsTest, LayoutClassificationChange) {
632 PasswordFormBuilder builder(kTestFormActionURL); 642 PasswordFormBuilder builder(kTestFormActionURL);
633 builder.AddUsernameField("username", "", nullptr); 643 builder.AddUsernameField("username", "", nullptr);
634 builder.AddPasswordField("old_password", "", nullptr); 644 builder.AddPasswordField("old_password", "", nullptr);
635 builder.AddHiddenField(); 645 builder.AddHiddenField();
636 builder.AddPasswordField("new_password", "", nullptr); 646 builder.AddPasswordField("new_password", "", nullptr);
637 builder.AddPasswordField("new_password2", "", nullptr); 647 builder.AddPasswordField("new_password2", "", nullptr);
638 builder.AddSubmitButton("submit", false); 648 builder.AddSubmitButton("submit", false);
639 std::string change_html = builder.ProduceHTML(); 649 std::string change_html = builder.ProduceHTML();
640 650
641 scoped_ptr<PasswordForm> change_form; 651 scoped_ptr<PasswordForm> change_form;
642 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(change_html, &change_form)); 652 ASSERT_NO_FATAL_FAILURE(LoadHTMLAndConvertForm(change_html, &change_form));
643 ASSERT_TRUE(change_form); 653 ASSERT_TRUE(change_form);
644 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, change_form->layout); 654 EXPECT_EQ(PasswordForm::Layout::LAYOUT_OTHER, change_form->layout);
645 } 655 }
646 656
647 TEST_F(PasswordFormConversionUtilsTest, LayoutClassificationLoginPlusSignup_A) { 657 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
658 LayoutClassificationLoginPlusSignup_A) {
648 PasswordFormBuilder builder(kTestFormActionURL); 659 PasswordFormBuilder builder(kTestFormActionURL);
649 builder.AddUsernameField("username", "", nullptr); 660 builder.AddUsernameField("username", "", nullptr);
650 builder.AddHiddenField(); 661 builder.AddHiddenField();
651 builder.AddPasswordField("password", "", nullptr); 662 builder.AddPasswordField("password", "", nullptr);
652 builder.AddUsernameField("username2", "", nullptr); 663 builder.AddUsernameField("username2", "", nullptr);
653 builder.AddUsernameField("someotherfield", "", nullptr); 664 builder.AddUsernameField("someotherfield", "", nullptr);
654 builder.AddPasswordField("new_password", "", nullptr); 665 builder.AddPasswordField("new_password", "", nullptr);
655 builder.AddPasswordField("new_password2", "", nullptr); 666 builder.AddPasswordField("new_password2", "", nullptr);
656 builder.AddHiddenField(); 667 builder.AddHiddenField();
657 builder.AddSubmitButton("submit", false); 668 builder.AddSubmitButton("submit", false);
658 std::string login_plus_signup_html = builder.ProduceHTML(); 669 std::string login_plus_signup_html = builder.ProduceHTML();
659 670
660 scoped_ptr<PasswordForm> login_plus_signup_form; 671 scoped_ptr<PasswordForm> login_plus_signup_form;
661 ASSERT_NO_FATAL_FAILURE( 672 ASSERT_NO_FATAL_FAILURE(
662 LoadHTMLAndConvertForm(login_plus_signup_html, &login_plus_signup_form)); 673 LoadHTMLAndConvertForm(login_plus_signup_html, &login_plus_signup_form));
663 ASSERT_TRUE(login_plus_signup_form); 674 ASSERT_TRUE(login_plus_signup_form);
664 EXPECT_EQ(PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP, 675 EXPECT_EQ(PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP,
665 login_plus_signup_form->layout); 676 login_plus_signup_form->layout);
666 } 677 }
667 678
668 TEST_F(PasswordFormConversionUtilsTest, LayoutClassificationLoginPlusSignup_B) { 679 TEST_F(MAYBE_PasswordFormConversionUtilsTest,
680 LayoutClassificationLoginPlusSignup_B) {
669 PasswordFormBuilder builder(kTestFormActionURL); 681 PasswordFormBuilder builder(kTestFormActionURL);
670 builder.AddUsernameField("username", "", nullptr); 682 builder.AddUsernameField("username", "", nullptr);
671 builder.AddHiddenField(); 683 builder.AddHiddenField();
672 builder.AddPasswordField("password", "", nullptr); 684 builder.AddPasswordField("password", "", nullptr);
673 builder.AddUsernameField("username2", "", nullptr); 685 builder.AddUsernameField("username2", "", nullptr);
674 builder.AddUsernameField("someotherfield", "", nullptr); 686 builder.AddUsernameField("someotherfield", "", nullptr);
675 builder.AddPasswordField("new_password", "", nullptr); 687 builder.AddPasswordField("new_password", "", nullptr);
676 builder.AddUsernameField("someotherfield2", "", nullptr); 688 builder.AddUsernameField("someotherfield2", "", nullptr);
677 builder.AddHiddenField(); 689 builder.AddHiddenField();
678 builder.AddSubmitButton("submit", false); 690 builder.AddSubmitButton("submit", false);
679 std::string login_plus_signup_html = builder.ProduceHTML(); 691 std::string login_plus_signup_html = builder.ProduceHTML();
680 692
681 scoped_ptr<PasswordForm> login_plus_signup_form; 693 scoped_ptr<PasswordForm> login_plus_signup_form;
682 ASSERT_NO_FATAL_FAILURE( 694 ASSERT_NO_FATAL_FAILURE(
683 LoadHTMLAndConvertForm(login_plus_signup_html, &login_plus_signup_form)); 695 LoadHTMLAndConvertForm(login_plus_signup_html, &login_plus_signup_form));
684 ASSERT_TRUE(login_plus_signup_form); 696 ASSERT_TRUE(login_plus_signup_form);
685 EXPECT_EQ(PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP, 697 EXPECT_EQ(PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP,
686 login_plus_signup_form->layout); 698 login_plus_signup_form->layout);
687 } 699 }
688 700
689 } // namespace autofill 701 } // namespace autofill
OLDNEW
« no previous file with comments | « components/BUILD.gn ('k') | components/components_browsertests.isolate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698