| OLD | NEW |
| 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 <string.h> | 5 #include <string.h> |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 render_thread_->sink().GetFirstMessageMatching( | 65 render_thread_->sink().GetFirstMessageMatching( |
| 66 AutofillHostMsg_ShowPasswordGenerationPopup::ID); | 66 AutofillHostMsg_ShowPasswordGenerationPopup::ID); |
| 67 if (available) | 67 if (available) |
| 68 ASSERT_TRUE(message); | 68 ASSERT_TRUE(message); |
| 69 else | 69 else |
| 70 ASSERT_FALSE(message); | 70 ASSERT_FALSE(message); |
| 71 | 71 |
| 72 render_thread_->sink().ClearMessages(); | 72 render_thread_->sink().ClearMessages(); |
| 73 } | 73 } |
| 74 | 74 |
| 75 void AllowToRunFormClassifier() { |
| 76 AutofillMsg_AllowToRunFormClassifier msg(0); |
| 77 static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
| 78 } |
| 79 |
| 75 void ExpectFormClassifierVoteReceived( | 80 void ExpectFormClassifierVoteReceived( |
| 81 bool received, |
| 76 const base::string16& expected_generation_element) { | 82 const base::string16& expected_generation_element) { |
| 77 const IPC::Message* message = | 83 const IPC::Message* message = |
| 78 render_thread_->sink().GetFirstMessageMatching( | 84 render_thread_->sink().GetFirstMessageMatching( |
| 79 AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::ID); | 85 AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::ID); |
| 80 ASSERT_TRUE(message); | 86 if (received) { |
| 81 std::tuple<autofill::PasswordForm, base::string16> actual_parameters; | 87 ASSERT_TRUE(message); |
| 82 AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::Read( | 88 std::tuple<autofill::PasswordForm, base::string16> actual_parameters; |
| 83 message, &actual_parameters); | 89 AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::Read( |
| 84 EXPECT_EQ(expected_generation_element, std::get<1>(actual_parameters)); | 90 message, &actual_parameters); |
| 91 EXPECT_EQ(expected_generation_element, std::get<1>(actual_parameters)); |
| 92 } else { |
| 93 ASSERT_FALSE(message); |
| 94 } |
| 95 |
| 85 render_thread_->sink().ClearMessages(); | 96 render_thread_->sink().ClearMessages(); |
| 86 } | 97 } |
| 87 | 98 |
| 88 void ShowGenerationPopUpManually(const char* element_id) { | 99 void ShowGenerationPopUpManually(const char* element_id) { |
| 89 FocusField(element_id); | 100 FocusField(element_id); |
| 90 AutofillMsg_UserTriggeredGeneratePassword msg(0); | 101 AutofillMsg_UserTriggeredGeneratePassword msg(0); |
| 91 static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); | 102 static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
| 92 } | 103 } |
| 93 | 104 |
| 94 private: | 105 private: |
| (...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 for (size_t i = 0; i < password.length(); ++i) | 665 for (size_t i = 0; i < password.length(); ++i) |
| 655 SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false); | 666 SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false); |
| 656 SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true); | 667 SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true); |
| 657 EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( | 668 EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
| 658 AutofillHostMsg_PasswordNoLongerGenerated::ID)); | 669 AutofillHostMsg_PasswordNoLongerGenerated::ID)); |
| 659 render_thread_->sink().ClearMessages(); | 670 render_thread_->sink().ClearMessages(); |
| 660 } | 671 } |
| 661 } | 672 } |
| 662 | 673 |
| 663 TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSignupForm) { | 674 TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSignupForm) { |
| 675 AllowToRunFormClassifier(); |
| 664 LoadHTMLWithUserGesture(kAccountCreationFormHTML); | 676 LoadHTMLWithUserGesture(kAccountCreationFormHTML); |
| 665 ExpectFormClassifierVoteReceived(base::ASCIIToUTF16("first_password")); | 677 ExpectFormClassifierVoteReceived(true /* vote is expected */, |
| 678 base::ASCIIToUTF16("first_password")); |
| 666 } | 679 } |
| 667 | 680 |
| 668 TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSigninForm) { | 681 TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSigninForm) { |
| 682 AllowToRunFormClassifier(); |
| 669 LoadHTMLWithUserGesture(kSigninFormHTML); | 683 LoadHTMLWithUserGesture(kSigninFormHTML); |
| 670 ExpectFormClassifierVoteReceived(base::string16()); | 684 ExpectFormClassifierVoteReceived(true /* vote is expected */, |
| 685 base::string16()); |
| 686 } |
| 687 |
| 688 TEST_F(PasswordGenerationAgentTest, FormClassifierDisabled) { |
| 689 LoadHTMLWithUserGesture(kSigninFormHTML); |
| 690 ExpectFormClassifierVoteReceived(false /* vote is not expected */, |
| 691 base::string16()); |
| 671 } | 692 } |
| 672 | 693 |
| 673 } // namespace autofill | 694 } // namespace autofill |
| OLD | NEW |