Index: chrome/renderer/autofill/password_generation_agent_browsertest.cc |
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
index 161180907dbc203af117f5f73ff25d8a4592db77..30306f0fd41851276d05c0790b7a9d58c5df6b29 100644 |
--- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
+++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc |
@@ -7,10 +7,8 @@ |
#include <memory> |
#include "base/macros.h" |
-#include "base/run_loop.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/test/histogram_tester.h" |
-#include "chrome/renderer/autofill/fake_content_password_manager_driver.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" |
@@ -18,9 +16,6 @@ |
#include "components/autofill/content/renderer/test_password_generation_agent.h" |
#include "components/autofill/core/common/form_data.h" |
#include "components/autofill/core/common/password_generation_util.h" |
-#include "content/public/renderer/render_frame.h" |
-#include "content/public/renderer/render_view.h" |
-#include "services/shell/public/cpp/interface_provider.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
#include "third_party/WebKit/public/web/WebDocument.h" |
@@ -39,18 +34,6 @@ |
class PasswordGenerationAgentTest : public ChromeRenderViewTest { |
public: |
PasswordGenerationAgentTest() {} |
- |
- void RegisterMainFrameRemoteInterfaces() override { |
- // We only use the fake driver for main frame |
- // because our test cases only involve the main frame. |
- shell::InterfaceProvider* remote_interfaces = |
- view_->GetMainRenderFrame()->GetRemoteInterfaces(); |
- shell::InterfaceProvider::TestApi test_api(remote_interfaces); |
- test_api.SetBinderForName( |
- mojom::PasswordManagerDriver::Name_, |
- base::Bind(&PasswordGenerationAgentTest::BindPasswordManagerDriver, |
- base::Unretained(this))); |
- } |
void TearDown() override { |
LoadHTML(""); |
@@ -90,35 +73,34 @@ |
} |
void AllowToRunFormClassifier() { |
- password_generation_->AllowToRunFormClassifier(); |
+ AutofillMsg_AllowToRunFormClassifier msg(0); |
+ static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
} |
void ExpectFormClassifierVoteReceived( |
bool received, |
const base::string16& expected_generation_element) { |
- base::RunLoop().RunUntilIdle(); |
+ const IPC::Message* message = |
+ render_thread_->sink().GetFirstMessageMatching( |
+ AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::ID); |
if (received) { |
- ASSERT_TRUE(fake_driver_.called_save_generation_field()); |
- EXPECT_EQ(expected_generation_element, |
- fake_driver_.save_generation_field()); |
+ ASSERT_TRUE(message); |
+ std::tuple<autofill::PasswordForm, base::string16> actual_parameters; |
+ AutofillHostMsg_SaveGenerationFieldDetectedByClassifier::Read( |
+ message, &actual_parameters); |
+ EXPECT_EQ(expected_generation_element, std::get<1>(actual_parameters)); |
} else { |
- ASSERT_FALSE(fake_driver_.called_save_generation_field()); |
+ ASSERT_FALSE(message); |
} |
- fake_driver_.reset_save_generation_field(); |
+ render_thread_->sink().ClearMessages(); |
} |
void ShowGenerationPopUpManually(const char* element_id) { |
FocusField(element_id); |
- password_generation_->UserTriggeredGeneratePassword(); |
- } |
- |
- void BindPasswordManagerDriver(mojo::ScopedMessagePipeHandle handle) { |
- fake_driver_.BindRequest( |
- mojo::MakeRequest<mojom::PasswordManagerDriver>(std::move(handle))); |
- } |
- |
- FakeContentPasswordManagerDriver fake_driver_; |
+ AutofillMsg_UserTriggeredGeneratePassword msg(0); |
+ static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
+ } |
private: |
DISALLOW_COPY_AND_ASSIGN(PasswordGenerationAgentTest); |
@@ -306,7 +288,8 @@ |
EXPECT_TRUE(second_password_element.value().isNull()); |
base::string16 password = base::ASCIIToUTF16("random_password"); |
- password_generation_->GeneratedPasswordAccepted(password); |
+ AutofillMsg_GeneratedPasswordAccepted msg(0, password); |
+ static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
// Password fields are filled out and set as being autofilled. |
EXPECT_EQ(password, first_password_element.value()); |
@@ -352,7 +335,8 @@ |
WebInputElement second_password_element = element.to<WebInputElement>(); |
base::string16 password = base::ASCIIToUTF16("random_password"); |
- password_generation_->GeneratedPasswordAccepted(password); |
+ AutofillMsg_GeneratedPasswordAccepted msg(0, password); |
+ static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
// Passwords start out the same. |
EXPECT_EQ(password, first_password_element.value()); |
@@ -368,7 +352,6 @@ |
// Clear any uninteresting sent messages. |
render_thread_->sink().ClearMessages(); |
- fake_driver_.reset_called_password_no_longer_generated(); |
// Verify that password mirroring works correctly even when the password |
// is deleted. |
@@ -378,8 +361,8 @@ |
// Should have notified the browser that the password is no longer generated |
// and trigger generation again. |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_TRUE(fake_driver_.called_password_no_longer_generated()); |
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
+ AutofillHostMsg_PasswordNoLongerGenerated::ID)); |
EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
AutofillHostMsg_ShowPasswordGenerationPopup::ID)); |
} |
@@ -667,23 +650,24 @@ |
ExpectGenerationAvailable(test_case.generation_element, true); |
base::string16 password = base::ASCIIToUTF16("random_password"); |
- password_generation_->GeneratedPasswordAccepted(password); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_TRUE(fake_driver_.called_presave_generated_password()); |
- fake_driver_.reset_called_presave_generated_password(); |
+ AutofillMsg_GeneratedPasswordAccepted msg(0, password); |
+ static_cast<IPC::Listener*>(password_generation_)->OnMessageReceived(msg); |
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
+ AutofillHostMsg_PresaveGeneratedPassword::ID)); |
+ render_thread_->sink().ClearMessages(); |
FocusField(test_case.generation_element); |
SimulateUserTypingASCIICharacter('a', true); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_TRUE(fake_driver_.called_presave_generated_password()); |
- fake_driver_.reset_called_presave_generated_password(); |
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
+ AutofillHostMsg_PresaveGeneratedPassword::ID)); |
+ render_thread_->sink().ClearMessages(); |
for (size_t i = 0; i < password.length(); ++i) |
SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false); |
SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_TRUE(fake_driver_.called_password_no_longer_generated()); |
- fake_driver_.reset_called_password_no_longer_generated(); |
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( |
+ AutofillHostMsg_PasswordNoLongerGenerated::ID)); |
+ render_thread_->sink().ClearMessages(); |
} |
} |