| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/password_manager/save_password_infobar_delegate.h" | 5 #include "chrome/browser/password_manager/save_password_infobar_delegate.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 ~MockPasswordFormManager() override {} | 38 ~MockPasswordFormManager() override {} |
| 39 | 39 |
| 40 private: | 40 private: |
| 41 DISALLOW_COPY_AND_ASSIGN(MockPasswordFormManager); | 41 DISALLOW_COPY_AND_ASSIGN(MockPasswordFormManager); |
| 42 }; | 42 }; |
| 43 | 43 |
| 44 class TestSavePasswordInfobarDelegate : public SavePasswordInfoBarDelegate { | 44 class TestSavePasswordInfobarDelegate : public SavePasswordInfoBarDelegate { |
| 45 public: | 45 public: |
| 46 TestSavePasswordInfobarDelegate( | 46 TestSavePasswordInfobarDelegate( |
| 47 content::WebContents* web_contents, | 47 content::WebContents* web_contents, |
| 48 scoped_ptr<password_manager::PasswordFormManager> form_to_save, | 48 std::unique_ptr<password_manager::PasswordFormManager> form_to_save, |
| 49 bool should_show_first_run_experience) | 49 bool should_show_first_run_experience) |
| 50 : SavePasswordInfoBarDelegate(web_contents, | 50 : SavePasswordInfoBarDelegate(web_contents, |
| 51 std::move(form_to_save), | 51 std::move(form_to_save), |
| 52 true /* is_smartlock_branding_enabled */, | 52 true /* is_smartlock_branding_enabled */, |
| 53 should_show_first_run_experience) {} | 53 should_show_first_run_experience) {} |
| 54 | 54 |
| 55 ~TestSavePasswordInfobarDelegate() override {} | 55 ~TestSavePasswordInfobarDelegate() override {} |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 } // namespace | 58 } // namespace |
| 59 | 59 |
| 60 class SavePasswordInfoBarDelegateTest : public ChromeRenderViewHostTestHarness { | 60 class SavePasswordInfoBarDelegateTest : public ChromeRenderViewHostTestHarness { |
| 61 public: | 61 public: |
| 62 SavePasswordInfoBarDelegateTest(); | 62 SavePasswordInfoBarDelegateTest(); |
| 63 ~SavePasswordInfoBarDelegateTest() override{}; | 63 ~SavePasswordInfoBarDelegateTest() override{}; |
| 64 | 64 |
| 65 void SetUp() override; | 65 void SetUp() override; |
| 66 void TearDown() override; | 66 void TearDown() override; |
| 67 | 67 |
| 68 PrefService* prefs(); | 68 PrefService* prefs(); |
| 69 const autofill::PasswordForm& test_form() { return test_form_; } | 69 const autofill::PasswordForm& test_form() { return test_form_; } |
| 70 scoped_ptr<MockPasswordFormManager> CreateMockFormManager(); | 70 std::unique_ptr<MockPasswordFormManager> CreateMockFormManager(); |
| 71 | 71 |
| 72 protected: | 72 protected: |
| 73 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate( | 73 std::unique_ptr<ConfirmInfoBarDelegate> CreateDelegate( |
| 74 scoped_ptr<password_manager::PasswordFormManager> password_form_manager, | 74 std::unique_ptr<password_manager::PasswordFormManager> |
| 75 password_form_manager, |
| 75 bool should_show_first_run_experience); | 76 bool should_show_first_run_experience); |
| 76 | 77 |
| 77 password_manager::StubPasswordManagerClient client_; | 78 password_manager::StubPasswordManagerClient client_; |
| 78 password_manager::StubPasswordManagerDriver driver_; | 79 password_manager::StubPasswordManagerDriver driver_; |
| 79 password_manager::PasswordManager password_manager_; | 80 password_manager::PasswordManager password_manager_; |
| 80 | 81 |
| 81 autofill::PasswordForm test_form_; | 82 autofill::PasswordForm test_form_; |
| 82 | 83 |
| 83 private: | 84 private: |
| 84 DISALLOW_COPY_AND_ASSIGN(SavePasswordInfoBarDelegateTest); | 85 DISALLOW_COPY_AND_ASSIGN(SavePasswordInfoBarDelegateTest); |
| 85 }; | 86 }; |
| 86 | 87 |
| 87 SavePasswordInfoBarDelegateTest::SavePasswordInfoBarDelegateTest() | 88 SavePasswordInfoBarDelegateTest::SavePasswordInfoBarDelegateTest() |
| 88 : password_manager_(&client_) { | 89 : password_manager_(&client_) { |
| 89 test_form_.origin = GURL("http://example.com"); | 90 test_form_.origin = GURL("http://example.com"); |
| 90 test_form_.username_value = base::ASCIIToUTF16("username"); | 91 test_form_.username_value = base::ASCIIToUTF16("username"); |
| 91 test_form_.password_value = base::ASCIIToUTF16("12345"); | 92 test_form_.password_value = base::ASCIIToUTF16("12345"); |
| 92 } | 93 } |
| 93 | 94 |
| 94 PrefService* SavePasswordInfoBarDelegateTest::prefs() { | 95 PrefService* SavePasswordInfoBarDelegateTest::prefs() { |
| 95 Profile* profile = | 96 Profile* profile = |
| 96 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 97 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
| 97 return profile->GetPrefs(); | 98 return profile->GetPrefs(); |
| 98 } | 99 } |
| 99 | 100 |
| 100 scoped_ptr<MockPasswordFormManager> | 101 std::unique_ptr<MockPasswordFormManager> |
| 101 SavePasswordInfoBarDelegateTest::CreateMockFormManager() { | 102 SavePasswordInfoBarDelegateTest::CreateMockFormManager() { |
| 102 return scoped_ptr<MockPasswordFormManager>(new MockPasswordFormManager( | 103 return std::unique_ptr<MockPasswordFormManager>(new MockPasswordFormManager( |
| 103 &password_manager_, &client_, driver_.AsWeakPtr(), test_form())); | 104 &password_manager_, &client_, driver_.AsWeakPtr(), test_form())); |
| 104 } | 105 } |
| 105 | 106 |
| 106 scoped_ptr<ConfirmInfoBarDelegate> | 107 std::unique_ptr<ConfirmInfoBarDelegate> |
| 107 SavePasswordInfoBarDelegateTest::CreateDelegate( | 108 SavePasswordInfoBarDelegateTest::CreateDelegate( |
| 108 scoped_ptr<password_manager::PasswordFormManager> password_form_manager, | 109 std::unique_ptr<password_manager::PasswordFormManager> |
| 110 password_form_manager, |
| 109 bool should_show_first_run_experience) { | 111 bool should_show_first_run_experience) { |
| 110 scoped_ptr<ConfirmInfoBarDelegate> delegate( | 112 std::unique_ptr<ConfirmInfoBarDelegate> delegate( |
| 111 new TestSavePasswordInfobarDelegate( | 113 new TestSavePasswordInfobarDelegate(web_contents(), |
| 112 web_contents(), std::move(password_form_manager), | 114 std::move(password_form_manager), |
| 113 should_show_first_run_experience)); | 115 should_show_first_run_experience)); |
| 114 return delegate; | 116 return delegate; |
| 115 } | 117 } |
| 116 | 118 |
| 117 void SavePasswordInfoBarDelegateTest::SetUp() { | 119 void SavePasswordInfoBarDelegateTest::SetUp() { |
| 118 ChromeRenderViewHostTestHarness::SetUp(); | 120 ChromeRenderViewHostTestHarness::SetUp(); |
| 119 } | 121 } |
| 120 | 122 |
| 121 void SavePasswordInfoBarDelegateTest::TearDown() { | 123 void SavePasswordInfoBarDelegateTest::TearDown() { |
| 122 ChromeRenderViewHostTestHarness::TearDown(); | 124 ChromeRenderViewHostTestHarness::TearDown(); |
| 123 } | 125 } |
| 124 | 126 |
| 125 TEST_F(SavePasswordInfoBarDelegateTest, CancelTestCredentialSourceAPI) { | 127 TEST_F(SavePasswordInfoBarDelegateTest, CancelTestCredentialSourceAPI) { |
| 126 scoped_ptr<MockPasswordFormManager> password_form_manager( | 128 std::unique_ptr<MockPasswordFormManager> password_form_manager( |
| 127 CreateMockFormManager()); | 129 CreateMockFormManager()); |
| 128 EXPECT_CALL(*password_form_manager.get(), PermanentlyBlacklist()); | 130 EXPECT_CALL(*password_form_manager.get(), PermanentlyBlacklist()); |
| 129 scoped_ptr<ConfirmInfoBarDelegate> infobar( | 131 std::unique_ptr<ConfirmInfoBarDelegate> infobar( |
| 130 CreateDelegate(std::move(password_form_manager), false)); | 132 CreateDelegate(std::move(password_form_manager), false)); |
| 131 EXPECT_TRUE(infobar->Cancel()); | 133 EXPECT_TRUE(infobar->Cancel()); |
| 132 } | 134 } |
| 133 | 135 |
| 134 TEST_F(SavePasswordInfoBarDelegateTest, | 136 TEST_F(SavePasswordInfoBarDelegateTest, |
| 135 CancelTestCredentialSourcePasswordManager) { | 137 CancelTestCredentialSourcePasswordManager) { |
| 136 scoped_ptr<MockPasswordFormManager> password_form_manager( | 138 std::unique_ptr<MockPasswordFormManager> password_form_manager( |
| 137 CreateMockFormManager()); | 139 CreateMockFormManager()); |
| 138 EXPECT_CALL(*password_form_manager.get(), PermanentlyBlacklist()); | 140 EXPECT_CALL(*password_form_manager.get(), PermanentlyBlacklist()); |
| 139 scoped_ptr<ConfirmInfoBarDelegate> infobar( | 141 std::unique_ptr<ConfirmInfoBarDelegate> infobar( |
| 140 CreateDelegate(std::move(password_form_manager), false)); | 142 CreateDelegate(std::move(password_form_manager), false)); |
| 141 EXPECT_TRUE(infobar->Cancel()); | 143 EXPECT_TRUE(infobar->Cancel()); |
| 142 } | 144 } |
| 143 | 145 |
| 144 TEST_F(SavePasswordInfoBarDelegateTest, | 146 TEST_F(SavePasswordInfoBarDelegateTest, |
| 145 CheckResetOfPrefAfterFirstRunMessageWasShown) { | 147 CheckResetOfPrefAfterFirstRunMessageWasShown) { |
| 146 using password_manager::CredentialSourceType; | 148 using password_manager::CredentialSourceType; |
| 147 prefs()->SetBoolean( | 149 prefs()->SetBoolean( |
| 148 password_manager::prefs::kWasSavePrompFirstRunExperienceShown, false); | 150 password_manager::prefs::kWasSavePrompFirstRunExperienceShown, false); |
| 149 scoped_ptr<MockPasswordFormManager> password_form_manager( | 151 std::unique_ptr<MockPasswordFormManager> password_form_manager( |
| 150 CreateMockFormManager()); | 152 CreateMockFormManager()); |
| 151 scoped_ptr<ConfirmInfoBarDelegate> infobar( | 153 std::unique_ptr<ConfirmInfoBarDelegate> infobar( |
| 152 CreateDelegate(std::move(password_form_manager), true)); | 154 CreateDelegate(std::move(password_form_manager), true)); |
| 153 EXPECT_TRUE(infobar->Cancel()); | 155 EXPECT_TRUE(infobar->Cancel()); |
| 154 infobar.reset(); | 156 infobar.reset(); |
| 155 EXPECT_TRUE(prefs()->GetBoolean( | 157 EXPECT_TRUE(prefs()->GetBoolean( |
| 156 password_manager::prefs::kWasSavePrompFirstRunExperienceShown)); | 158 password_manager::prefs::kWasSavePrompFirstRunExperienceShown)); |
| 157 } | 159 } |
| 158 | 160 |
| 159 TEST_F(SavePasswordInfoBarDelegateTest, | 161 TEST_F(SavePasswordInfoBarDelegateTest, |
| 160 CheckNoStateOfPrefChangeWhenNoFirstRunExperienceShown) { | 162 CheckNoStateOfPrefChangeWhenNoFirstRunExperienceShown) { |
| 161 using password_manager::CredentialSourceType; | 163 using password_manager::CredentialSourceType; |
| 162 prefs()->SetBoolean( | 164 prefs()->SetBoolean( |
| 163 password_manager::prefs::kWasSavePrompFirstRunExperienceShown, false); | 165 password_manager::prefs::kWasSavePrompFirstRunExperienceShown, false); |
| 164 scoped_ptr<MockPasswordFormManager> password_form_manager( | 166 std::unique_ptr<MockPasswordFormManager> password_form_manager( |
| 165 CreateMockFormManager()); | 167 CreateMockFormManager()); |
| 166 scoped_ptr<ConfirmInfoBarDelegate> infobar( | 168 std::unique_ptr<ConfirmInfoBarDelegate> infobar( |
| 167 CreateDelegate(std::move(password_form_manager), false)); | 169 CreateDelegate(std::move(password_form_manager), false)); |
| 168 EXPECT_TRUE(infobar->Cancel()); | 170 EXPECT_TRUE(infobar->Cancel()); |
| 169 infobar.reset(); | 171 infobar.reset(); |
| 170 EXPECT_FALSE(prefs()->GetBoolean( | 172 EXPECT_FALSE(prefs()->GetBoolean( |
| 171 password_manager::prefs::kWasSavePrompFirstRunExperienceShown)); | 173 password_manager::prefs::kWasSavePrompFirstRunExperienceShown)); |
| 172 } | 174 } |
| OLD | NEW |