Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: chrome/browser/password_manager/save_password_infobar_delegate_unittest.cc

Issue 1045173003: Fix blacklisting for desktop infobars. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/strings/utf_string_conversions.h"
6 #include "chrome/browser/password_manager/save_password_infobar_delegate.h"
7 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
8 #include "components/autofill/core/common/password_form.h"
9 #include "components/password_manager/core/browser/password_form_manager.h"
10 #include "components/password_manager/core/browser/password_manager_client.h"
11 #include "components/password_manager/core/browser/stub_password_manager_client. h"
12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace {
16 class MockPasswordFormManager : public password_manager::PasswordFormManager {
17 public:
18 MOCK_METHOD0(PermanentlyBlacklist, void());
19
20 MockPasswordFormManager(password_manager::StubPasswordManagerClient* client,
21 const autofill::PasswordForm& form)
22 : PasswordFormManager(
23 nullptr,
24 client,
25 base::WeakPtr<password_manager::PasswordManagerDriver>(),
26 form,
27 false) {}
28
29 ~MockPasswordFormManager() override {}
30
31 private:
32 DISALLOW_COPY_AND_ASSIGN(MockPasswordFormManager);
33 };
34
35 class TestSavePasswordInfobarDelegate : public SavePasswordInfoBarDelegate {
36 public:
37 TestSavePasswordInfobarDelegate(
38 scoped_ptr<password_manager::PasswordFormManager> form_to_save,
39 password_manager::CredentialSourceType source_type)
40 : SavePasswordInfoBarDelegate(form_to_save.Pass(),
41 std::string(),
42 source_type) {}
43 ~TestSavePasswordInfobarDelegate() override {}
44 };
45
46 } // namespace
47
48 class SavePasswordInfoBarDelegateTest : public ChromeRenderViewHostTestHarness {
49 public:
50 SavePasswordInfoBarDelegateTest();
51 ~SavePasswordInfoBarDelegateTest() override{};
52
53 void SetUp() override;
54 void TearDown() override;
55
56 const autofill::PasswordForm& test_form() { return test_form_; }
57 MockPasswordFormManager* CreateMockFormManager();
58
59 protected:
60 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate(
61 MockPasswordFormManager* password_form_manager,
62 password_manager::CredentialSourceType type);
63
64 password_manager::StubPasswordManagerClient client_;
65 autofill::PasswordForm test_form_;
66
67 private:
68 DISALLOW_COPY_AND_ASSIGN(SavePasswordInfoBarDelegateTest);
69 };
70
71 SavePasswordInfoBarDelegateTest::SavePasswordInfoBarDelegateTest() {
72 test_form_.origin = GURL("http://example.com");
73 test_form_.username_value = base::ASCIIToUTF16("username");
74 test_form_.password_value = base::ASCIIToUTF16("12345");
75 }
76
77 MockPasswordFormManager*
78 SavePasswordInfoBarDelegateTest::CreateMockFormManager() {
79 return new MockPasswordFormManager(&client_, test_form());
80 }
81
82 scoped_ptr<ConfirmInfoBarDelegate>
83 SavePasswordInfoBarDelegateTest::CreateDelegate(
84 MockPasswordFormManager* password_form_manager,
85 password_manager::CredentialSourceType type) {
86 scoped_ptr<ConfirmInfoBarDelegate> delegate(
87 new TestSavePasswordInfobarDelegate(
88 scoped_ptr<password_manager::PasswordFormManager>(
89 password_form_manager),
90 type));
91 return delegate.Pass();
92 }
93
94 void SavePasswordInfoBarDelegateTest::SetUp() {
95 ChromeRenderViewHostTestHarness::SetUp();
96 }
97
98 void SavePasswordInfoBarDelegateTest::TearDown() {
99 ChromeRenderViewHostTestHarness::TearDown();
100 }
101
102 TEST_F(SavePasswordInfoBarDelegateTest, CancelTestCredentialSourceAPI) {
103 // SavePasswordInfoBarDelegate::Create takes ownership of
vabr (Chromium) 2015/04/07 07:51:37 Why not just use scoped_ptr? Raw pointers are frag
104 // password_form_manager_ptr;
105 MockPasswordFormManager* password_form_manager_ptr = CreateMockFormManager();
106 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(
107 password_form_manager_ptr,
108 password_manager::CredentialSourceType::CREDENTIAL_SOURCE_API));
109 EXPECT_CALL(*password_form_manager_ptr, PermanentlyBlacklist())
110 .Times(testing::Exactly(0));
111 EXPECT_TRUE(infobar->Cancel());
112 }
113
114 TEST_F(SavePasswordInfoBarDelegateTest,
115 CancelTestCredentialSourcePasswordManager) {
116 // SavePasswordInfoBarDelegate::Create takes ownership of
117 // password_form_manager_ptr;
118 MockPasswordFormManager* password_form_manager_ptr = CreateMockFormManager();
119 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(
120 password_form_manager_ptr, password_manager::CredentialSourceType::
121 CREDENTIAL_SOURCE_PASSWORD_MANAGER));
122 EXPECT_CALL(*password_form_manager_ptr, PermanentlyBlacklist())
123 .Times(testing::Exactly(1));
124 EXPECT_TRUE(infobar->Cancel());
125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698