| Index: chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
|
| diff --git a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
|
| index 304975dcc946f166af83ffa38a6ccedaecb699be..e96af456c5d21fc2c50c8da3fec01eb507f7ab72 100644
|
| --- a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
|
| +++ b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
|
| @@ -8,7 +8,10 @@
|
|
|
| #include "chrome/common/chrome_version_info.h"
|
| #include "chrome/test/base/chrome_render_view_host_test_harness.h"
|
| +#include "chrome/test/base/testing_profile.h"
|
| #include "components/autofill/content/common/autofill_messages.h"
|
| +#include "components/password_manager/content/browser/password_manager_internals_service_factory.h"
|
| +#include "components/password_manager/core/browser/password_manager_internals_service.h"
|
| #include "components/password_manager/core/browser/password_manager_logger.h"
|
| #include "components/password_manager/core/common/password_manager_switches.h"
|
| #include "content/public/browser/browser_context.h"
|
| @@ -24,11 +27,8 @@ namespace {
|
|
|
| const char kTestText[] = "abcd1234";
|
|
|
| -class MockPasswordManagerLogger
|
| - : public password_manager::PasswordManagerLogger {
|
| +class MockLogReceiver : public password_manager::PasswordManagerLogger {
|
| public:
|
| - MockPasswordManagerLogger() {}
|
| -
|
| MOCK_METHOD1(LogSavePasswordProgress, void(const std::string&));
|
| };
|
|
|
| @@ -36,6 +36,8 @@ class MockPasswordManagerLogger
|
|
|
| class ChromePasswordManagerClientTest : public ChromeRenderViewHostTestHarness {
|
| public:
|
| + ChromePasswordManagerClientTest();
|
| +
|
| virtual void SetUp() OVERRIDE;
|
|
|
| protected:
|
| @@ -46,13 +48,22 @@ class ChromePasswordManagerClientTest : public ChromeRenderViewHostTestHarness {
|
| // returns false.
|
| bool WasLoggingActivationMessageSent(bool* activation_flag);
|
|
|
| - testing::StrictMock<MockPasswordManagerLogger> logger_;
|
| + password_manager::PasswordManagerInternalsService* service_;
|
| +
|
| + testing::StrictMock<MockLogReceiver> receiver_;
|
| };
|
|
|
| +ChromePasswordManagerClientTest::ChromePasswordManagerClientTest()
|
| + : service_(NULL) {
|
| +}
|
| +
|
| void ChromePasswordManagerClientTest::SetUp() {
|
| ChromeRenderViewHostTestHarness::SetUp();
|
| ChromePasswordManagerClient::CreateForWebContentsWithAutofillManagerDelegate(
|
| web_contents(), NULL);
|
| + service_ = password_manager::PasswordManagerInternalsServiceFactory::
|
| + GetForBrowserContext(profile());
|
| + ASSERT_TRUE(service_);
|
| }
|
|
|
| ChromePasswordManagerClient* ChromePasswordManagerClientTest::GetClient() {
|
| @@ -73,34 +84,39 @@ bool ChromePasswordManagerClientTest::WasLoggingActivationMessageSent(
|
| return true;
|
| }
|
|
|
| -TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressNoLogger) {
|
| +TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressNoReceiver) {
|
| ChromePasswordManagerClient* client = GetClient();
|
|
|
| - EXPECT_CALL(logger_, LogSavePasswordProgress(kTestText)).Times(0);
|
| - // Before attaching the logger, no text should be passed.
|
| + EXPECT_CALL(receiver_, LogSavePasswordProgress(kTestText)).Times(0);
|
| + // Before attaching the receiver, no text should be passed.
|
| client->LogSavePasswordProgress(kTestText);
|
| EXPECT_FALSE(client->IsLoggingActive());
|
| }
|
|
|
| -TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressAttachLogger) {
|
| +TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressAttachReceiver) {
|
| ChromePasswordManagerClient* client = GetClient();
|
| + EXPECT_FALSE(client->IsLoggingActive());
|
|
|
| // After attaching the logger, text should be passed.
|
| - client->SetLogger(&logger_);
|
| - EXPECT_CALL(logger_, LogSavePasswordProgress(kTestText)).Times(1);
|
| - client->LogSavePasswordProgress(kTestText);
|
| + service_->RegisterReceiver(&receiver_);
|
| EXPECT_TRUE(client->IsLoggingActive());
|
| + EXPECT_CALL(receiver_, LogSavePasswordProgress(kTestText)).Times(1);
|
| + client->LogSavePasswordProgress(kTestText);
|
| + service_->UnregisterReceiver(&receiver_);
|
| + EXPECT_FALSE(client->IsLoggingActive());
|
| }
|
|
|
| -TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressDetachLogger) {
|
| +TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressDetachReceiver) {
|
| ChromePasswordManagerClient* client = GetClient();
|
|
|
| - client->SetLogger(&logger_);
|
| + service_->RegisterReceiver(&receiver_);
|
| + EXPECT_TRUE(client->IsLoggingActive());
|
| + service_->UnregisterReceiver(&receiver_);
|
| + EXPECT_FALSE(client->IsLoggingActive());
|
| +
|
| // After detaching the logger, no text should be passed.
|
| - client->SetLogger(NULL);
|
| - EXPECT_CALL(logger_, LogSavePasswordProgress(kTestText)).Times(0);
|
| + EXPECT_CALL(receiver_, LogSavePasswordProgress(kTestText)).Times(0);
|
| client->LogSavePasswordProgress(kTestText);
|
| - EXPECT_FALSE(client->IsLoggingActive());
|
| }
|
|
|
| TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressNotifyRenderer) {
|
| @@ -110,11 +126,13 @@ TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressNotifyRenderer) {
|
| // Initially, the logging should be off, so no IPC messages.
|
| EXPECT_FALSE(WasLoggingActivationMessageSent(&logging_active));
|
|
|
| - client->SetLogger(&logger_);
|
| + service_->RegisterReceiver(&receiver_);
|
| + EXPECT_TRUE(client->IsLoggingActive());
|
| EXPECT_TRUE(WasLoggingActivationMessageSent(&logging_active));
|
| EXPECT_TRUE(logging_active);
|
|
|
| - client->SetLogger(NULL);
|
| + service_->UnregisterReceiver(&receiver_);
|
| + EXPECT_FALSE(client->IsLoggingActive());
|
| EXPECT_TRUE(WasLoggingActivationMessageSent(&logging_active));
|
| EXPECT_FALSE(logging_active);
|
| }
|
| @@ -133,3 +151,15 @@ TEST_F(ChromePasswordManagerClientTest,
|
| else
|
| EXPECT_FALSE(GetClient()->IsAutomaticPasswordSavingEnabled());
|
| }
|
| +
|
| +TEST_F(ChromePasswordManagerClientTest, LogToAReceiver) {
|
| + ChromePasswordManagerClient* client = GetClient();
|
| + service_->RegisterReceiver(&receiver_);
|
| + EXPECT_TRUE(client->IsLoggingActive());
|
| +
|
| + EXPECT_CALL(receiver_, LogSavePasswordProgress(kTestText)).Times(1);
|
| + client->LogSavePasswordProgress(kTestText);
|
| +
|
| + service_->UnregisterReceiver(&receiver_);
|
| + EXPECT_FALSE(client->IsLoggingActive());
|
| +}
|
|
|