| Index: chrome/browser/password_manager/password_manager_unittest.cc
|
| diff --git a/chrome/browser/password_manager/password_manager_unittest.cc b/chrome/browser/password_manager/password_manager_unittest.cc
|
| index 9afc2b27abe7f4aa7d884159bfd0da15db522058..756fef975692314fa0526617a848866915ee0d47 100644
|
| --- a/chrome/browser/password_manager/password_manager_unittest.cc
|
| +++ b/chrome/browser/password_manager/password_manager_unittest.cc
|
| @@ -24,6 +24,8 @@
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +class PasswordGenerationManager;
|
| +
|
| using autofill::PasswordForm;
|
| using base::ASCIIToUTF16;
|
| using testing::_;
|
| @@ -45,6 +47,8 @@ class MockPasswordManagerDriver : public PasswordManagerDriver {
|
| public:
|
| MOCK_METHOD1(FillPasswordForm, void(const autofill::PasswordFormFillData&));
|
| MOCK_METHOD0(DidLastPageLoadEncounterSSLErrors, bool());
|
| + MOCK_METHOD0(GetPasswordGenerationManager, PasswordGenerationManager*());
|
| + MOCK_METHOD0(GetPasswordManager, PasswordManager*());
|
| };
|
|
|
| ACTION_P(InvokeConsumer, forms) {
|
| @@ -66,14 +70,6 @@ class TestPasswordManager : public PasswordManager {
|
| PasswordManager::OnPasswordFormSubmitted(form);
|
| }
|
|
|
| - static TestPasswordManager* CreateForWebContentsAndDelegate(
|
| - content::WebContents* contents,
|
| - PasswordManagerDelegate* delegate) {
|
| - TestPasswordManager* tpm = new TestPasswordManager(contents, delegate);
|
| - contents->SetUserData(UserDataKey(), tpm);
|
| - return tpm;
|
| - }
|
| -
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(TestPasswordManager);
|
| };
|
| @@ -90,14 +86,23 @@ class PasswordManagerTest : public ChromeRenderViewHostTestHarness {
|
|
|
| EXPECT_CALL(delegate_, GetProfile()).WillRepeatedly(Return(profile()));
|
| EXPECT_CALL(delegate_, GetDriver()).WillRepeatedly(Return(&driver_));
|
| - manager_ = TestPasswordManager::CreateForWebContentsAndDelegate(
|
| - web_contents(), &delegate_);
|
| +
|
| + manager_.reset(new TestPasswordManager(web_contents(), &delegate_));
|
| +
|
| EXPECT_CALL(driver_, DidLastPageLoadEncounterSSLErrors())
|
| .WillRepeatedly(Return(false));
|
| + EXPECT_CALL(driver_, GetPasswordGenerationManager())
|
| + .WillRepeatedly(Return(static_cast<PasswordGenerationManager*>(NULL)));
|
| + EXPECT_CALL(driver_, GetPasswordManager())
|
| + .WillRepeatedly(Return(manager_.get()));
|
| }
|
|
|
| virtual void TearDown() {
|
| store_ = NULL;
|
| +
|
| + // Destroy the PasswordManager before tearing down the Profile to avoid
|
| + // crashes due to prefs accesses.
|
| + manager_.reset();
|
| ChromeRenderViewHostTestHarness::TearDown();
|
| }
|
|
|
| @@ -170,9 +175,7 @@ class PasswordManagerTest : public ChromeRenderViewHostTestHarness {
|
| return true;
|
| }
|
|
|
| - TestPasswordManager* manager() {
|
| - return manager_;
|
| - }
|
| + TestPasswordManager* manager() { return manager_.get(); }
|
|
|
| void OnPasswordFormSubmitted(const autofill::PasswordForm& form) {
|
| manager()->OnPasswordFormSubmitted(form);
|
| @@ -188,9 +191,9 @@ class PasswordManagerTest : public ChromeRenderViewHostTestHarness {
|
| }
|
|
|
| scoped_refptr<MockPasswordStore> store_;
|
| - TestPasswordManager* manager_;
|
| - MockPasswordManagerDelegate delegate_; // Owned by manager_.
|
| + MockPasswordManagerDelegate delegate_;
|
| MockPasswordManagerDriver driver_;
|
| + scoped_ptr<TestPasswordManager> manager_;
|
| PasswordForm submitted_form_;
|
| };
|
|
|
|
|