Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
index f375f0e95b1f8cca3b9b3bdcabb7a2264d407e60..6499ffd3364383fbfc635c06b4795198ffad7830 100644 |
--- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
+++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
@@ -8,9 +8,9 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/renderer/autofill/fake_content_password_manager_driver.h" |
+#include "chrome/renderer/autofill/fake_password_manager_client.h" |
#include "chrome/renderer/autofill/password_generation_test_utils.h" |
#include "chrome/test/base/chrome_render_view_test.h" |
-#include "components/autofill/content/common/autofill_messages.h" |
#include "components/autofill/content/renderer/autofill_agent.h" |
#include "components/autofill/content/renderer/form_autofill_util.h" |
#include "components/autofill/content/renderer/password_autofill_agent.h" |
@@ -22,6 +22,7 @@ |
#include <components/autofill/core/common/password_form.h> |
#include "components/autofill/core/common/password_form_field_prediction_map.h" |
#include "components/password_manager/core/common/password_manager_features.h" |
+#include "content/public/common/associated_interface_provider.h" |
#include "content/public/renderer/render_frame.h" |
#include "content/public/renderer/render_view.h" |
#include "services/shell/public/cpp/interface_provider.h" |
@@ -333,6 +334,15 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
mojom::PasswordManagerDriver::Name_, |
base::Bind(&PasswordAutofillAgentTest::BindPasswordManagerDriver, |
base::Unretained(this))); |
+ |
+ // Because the test cases only involve the main frame in this test, |
+ // the fake password client is only used for the main frame. |
+ content::AssociatedInterfaceProvider* remote_associated_interfaces = |
+ view_->GetMainRenderFrame()->GetRemoteAssociatedInterfaces(); |
+ remote_associated_interfaces->OverrideBinderForTesting( |
+ mojom::PasswordManagerClient::Name_, |
+ base::Bind(&PasswordAutofillAgentTest::BindPasswordManagerClient, |
+ base::Unretained(this))); |
} |
void SetFillOnAccountSelect() { |
@@ -535,12 +545,24 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
EXPECT_EQ(ASCIIToUTF16(new_password_value), form.new_password_value); |
} |
+ bool GetCalledShowPasswordGenerationPopup() { |
+ fake_pw_client_.Flush(); |
+ return fake_pw_client_.called_show_pw_generation_popup(); |
+ } |
+ |
void BindPasswordManagerDriver(mojo::ScopedMessagePipeHandle handle) { |
fake_driver_.BindRequest( |
mojo::MakeRequest<mojom::PasswordManagerDriver>(std::move(handle))); |
} |
+ void BindPasswordManagerClient(mojo::ScopedInterfaceEndpointHandle handle) { |
+ fake_pw_client_.BindRequest( |
+ mojo::MakeAssociatedRequest<mojom::PasswordManagerClient>( |
+ std::move(handle))); |
+ } |
+ |
FakeContentPasswordManagerDriver fake_driver_; |
+ FakePasswordManagerClient fake_pw_client_; |
base::string16 username1_; |
base::string16 username2_; |
@@ -1983,8 +2005,7 @@ TEST_F(PasswordAutofillAgentTest, PasswordGenerationSupersedesAutofill) { |
SetFocused(password_element_); |
SimulateElementClick("new_password"); |
EXPECT_FALSE(GetCalledShowPasswordSuggestions()); |
- EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
- AutofillHostMsg_ShowPasswordGenerationPopup::ID)); |
+ EXPECT_TRUE(GetCalledShowPasswordGenerationPopup()); |
} |
// Tests that a password change form is properly filled with the username and |