| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <tuple> | 5 #include <tuple> |
| 6 | 6 |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 const std::string& fname, | 104 const std::string& fname, |
| 105 const std::string& lname, | 105 const std::string& lname, |
| 106 bool expect_submitted_message) { | 106 bool expect_submitted_message) { |
| 107 ASSERT_TRUE(fake_driver.form_will_submit()); | 107 ASSERT_TRUE(fake_driver.form_will_submit()); |
| 108 ASSERT_EQ(expect_submitted_message, fake_driver.form_submitted() != nullptr); | 108 ASSERT_EQ(expect_submitted_message, fake_driver.form_submitted() != nullptr); |
| 109 | 109 |
| 110 // The tuple also includes a timestamp, which is ignored. | 110 // The tuple also includes a timestamp, which is ignored. |
| 111 const FormData& will_submit_form = *(fake_driver.form_will_submit()); | 111 const FormData& will_submit_form = *(fake_driver.form_will_submit()); |
| 112 ASSERT_LE(2U, will_submit_form.fields.size()); | 112 ASSERT_LE(2U, will_submit_form.fields.size()); |
| 113 | 113 |
| 114 EXPECT_EQ(WebString("fname"), will_submit_form.fields[0].name); | 114 EXPECT_EQ(base::ASCIIToUTF16("fname"), will_submit_form.fields[0].name); |
| 115 EXPECT_EQ(WebString(base::UTF8ToUTF16(fname)), | 115 EXPECT_EQ(base::UTF8ToUTF16(fname), will_submit_form.fields[0].value); |
| 116 will_submit_form.fields[0].value); | 116 EXPECT_EQ(base::ASCIIToUTF16("lname"), will_submit_form.fields[1].name); |
| 117 EXPECT_EQ(WebString("lname"), will_submit_form.fields[1].name); | 117 EXPECT_EQ(base::UTF8ToUTF16(lname), will_submit_form.fields[1].value); |
| 118 EXPECT_EQ(WebString(base::UTF8ToUTF16(lname)), | |
| 119 will_submit_form.fields[1].value); | |
| 120 | 118 |
| 121 if (expect_submitted_message) { | 119 if (expect_submitted_message) { |
| 122 const FormData& submitted_form = *(fake_driver.form_submitted()); | 120 const FormData& submitted_form = *(fake_driver.form_submitted()); |
| 123 ASSERT_LE(2U, submitted_form.fields.size()); | 121 ASSERT_LE(2U, submitted_form.fields.size()); |
| 124 | 122 |
| 125 EXPECT_EQ(WebString("fname"), submitted_form.fields[0].name); | 123 EXPECT_EQ(base::ASCIIToUTF16("fname"), submitted_form.fields[0].name); |
| 126 EXPECT_EQ(WebString(base::UTF8ToUTF16(fname)), | 124 EXPECT_EQ(base::UTF8ToUTF16(fname), submitted_form.fields[0].value); |
| 127 submitted_form.fields[0].value); | 125 EXPECT_EQ(base::ASCIIToUTF16("lname"), submitted_form.fields[1].name); |
| 128 EXPECT_EQ(WebString("lname"), submitted_form.fields[1].name); | 126 EXPECT_EQ(base::UTF8ToUTF16(lname), submitted_form.fields[1].value); |
| 129 EXPECT_EQ(WebString(base::UTF8ToUTF16(lname)), | |
| 130 submitted_form.fields[1].value); | |
| 131 } | 127 } |
| 132 } | 128 } |
| 133 | 129 |
| 134 // Helper function to verify that NO form-related messages are received from the | 130 // Helper function to verify that NO form-related messages are received from the |
| 135 // renderer. | 131 // renderer. |
| 136 void VerifyNoSubmitMessagesReceived( | 132 void VerifyNoSubmitMessagesReceived( |
| 137 const FakeContentAutofillDriver& fake_driver) { | 133 const FakeContentAutofillDriver& fake_driver) { |
| 138 // No submission messages sent. | 134 // No submission messages sent. |
| 139 EXPECT_EQ(nullptr, fake_driver.form_will_submit()); | 135 EXPECT_EQ(nullptr, fake_driver.form_will_submit()); |
| 140 EXPECT_EQ(nullptr, fake_driver.form_submitted()); | 136 EXPECT_EQ(nullptr, fake_driver.form_submitted()); |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 "</select>" | 510 "</select>" |
| 515 "<form><input type='text' name='excluded'/></form>" | 511 "<form><input type='text' name='excluded'/></form>" |
| 516 "</html>"); | 512 "</html>"); |
| 517 | 513 |
| 518 FormData result; | 514 FormData result; |
| 519 autofill_agent_->CollectFormlessElements(&result); | 515 autofill_agent_->CollectFormlessElements(&result); |
| 520 | 516 |
| 521 // Asserting size 4 also ensures that 'excluded' field inside <form> is not | 517 // Asserting size 4 also ensures that 'excluded' field inside <form> is not |
| 522 // collected. | 518 // collected. |
| 523 ASSERT_EQ(4U, result.fields.size()); | 519 ASSERT_EQ(4U, result.fields.size()); |
| 524 EXPECT_EQ(WebString("text_input"), result.fields[0].name); | 520 EXPECT_EQ(base::ASCIIToUTF16("text_input"), result.fields[0].name); |
| 525 EXPECT_EQ(WebString("check_input"), result.fields[1].name); | 521 EXPECT_EQ(base::ASCIIToUTF16("check_input"), result.fields[1].name); |
| 526 EXPECT_EQ(WebString("number_input"), result.fields[2].name); | 522 EXPECT_EQ(base::ASCIIToUTF16("number_input"), result.fields[2].name); |
| 527 EXPECT_EQ(WebString("select_input"), result.fields[3].name); | 523 EXPECT_EQ(base::ASCIIToUTF16("select_input"), result.fields[3].name); |
| 528 } | 524 } |
| 529 | 525 |
| 530 // Test that a FocusNoLongerOnForm message is sent if focus goes from an | 526 // Test that a FocusNoLongerOnForm message is sent if focus goes from an |
| 531 // interacted form to an element outside the form. | 527 // interacted form to an element outside the form. |
| 532 TEST_F(FormAutocompleteTest, | 528 TEST_F(FormAutocompleteTest, |
| 533 InteractedFormNoLongerFocused_FocusNoLongerOnForm) { | 529 InteractedFormNoLongerFocused_FocusNoLongerOnForm) { |
| 534 // Load a form. | 530 // Load a form. |
| 535 LoadHTML( | 531 LoadHTML( |
| 536 "<html><input type='text' id='different'/>" | 532 "<html><input type='text' id='different'/>" |
| 537 "<form id='myForm' action='http://example.com/blade.php'>" | 533 "<form id='myForm' action='http://example.com/blade.php'>" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 | 644 |
| 649 // Submit the form. | 645 // Submit the form. |
| 650 ExecuteJavaScriptForTests("document.getElementById('myForm').submit();"); | 646 ExecuteJavaScriptForTests("document.getElementById('myForm').submit();"); |
| 651 ProcessPendingMessages(); | 647 ProcessPendingMessages(); |
| 652 | 648 |
| 653 VerifyReceivedRendererMessages(fake_driver_, "Rick", "Deckard", | 649 VerifyReceivedRendererMessages(fake_driver_, "Rick", "Deckard", |
| 654 true /* expect_submitted_message */); | 650 true /* expect_submitted_message */); |
| 655 } | 651 } |
| 656 | 652 |
| 657 } // namespace autofill | 653 } // namespace autofill |
| OLD | NEW |