OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/password_manager/content/browser/content_credential_manager
_dispatcher.h" | 5 #include "components/password_manager/content/browser/content_credential_manager
_dispatcher.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 TestPasswordManagerClient(password_manager::PasswordStore* store) | 35 TestPasswordManagerClient(password_manager::PasswordStore* store) |
36 : did_prompt_user_to_save_(false), | 36 : did_prompt_user_to_save_(false), |
37 did_prompt_user_to_choose_(false), | 37 did_prompt_user_to_choose_(false), |
38 store_(store) {} | 38 store_(store) {} |
39 ~TestPasswordManagerClient() override {} | 39 ~TestPasswordManagerClient() override {} |
40 | 40 |
41 password_manager::PasswordStore* GetPasswordStore() override { | 41 password_manager::PasswordStore* GetPasswordStore() override { |
42 return store_; | 42 return store_; |
43 } | 43 } |
44 | 44 |
45 password_manager::PasswordManagerDriver* GetDriver() override { | |
46 return &driver_; | |
47 } | |
48 | |
49 bool PromptUserToSavePassword( | 45 bool PromptUserToSavePassword( |
50 scoped_ptr<password_manager::PasswordFormManager> manager) override { | 46 scoped_ptr<password_manager::PasswordFormManager> manager) override { |
51 did_prompt_user_to_save_ = true; | 47 did_prompt_user_to_save_ = true; |
52 manager_.reset(manager.release()); | 48 manager_.reset(manager.release()); |
53 return true; | 49 return true; |
54 } | 50 } |
55 | 51 |
56 bool PromptUserToChooseCredentials( | 52 bool PromptUserToChooseCredentials( |
57 const std::vector<autofill::PasswordForm*>& forms, | 53 const std::vector<autofill::PasswordForm*>& forms, |
58 base::Callback<void(const password_manager::CredentialInfo&)> | 54 base::Callback<void(const password_manager::CredentialInfo&)> |
(...skipping 12 matching lines...) Expand all Loading... |
71 bool did_prompt_user_to_choose() const { return did_prompt_user_to_choose_; } | 67 bool did_prompt_user_to_choose() const { return did_prompt_user_to_choose_; } |
72 | 68 |
73 password_manager::PasswordFormManager* pending_manager() const { | 69 password_manager::PasswordFormManager* pending_manager() const { |
74 return manager_.get(); | 70 return manager_.get(); |
75 } | 71 } |
76 | 72 |
77 private: | 73 private: |
78 bool did_prompt_user_to_save_; | 74 bool did_prompt_user_to_save_; |
79 bool did_prompt_user_to_choose_; | 75 bool did_prompt_user_to_choose_; |
80 password_manager::PasswordStore* store_; | 76 password_manager::PasswordStore* store_; |
81 password_manager::StubPasswordManagerDriver driver_; | |
82 scoped_ptr<password_manager::PasswordFormManager> manager_; | 77 scoped_ptr<password_manager::PasswordFormManager> manager_; |
83 }; | 78 }; |
84 | 79 |
85 void RunAllPendingTasks() { | 80 void RunAllPendingTasks() { |
86 base::RunLoop run_loop; | 81 base::RunLoop run_loop; |
87 base::MessageLoop::current()->PostTask( | 82 base::MessageLoop::current()->PostTask( |
88 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); | 83 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); |
89 run_loop.Run(); | 84 run_loop.Run(); |
90 } | 85 } |
91 | 86 |
92 } // namespace | 87 } // namespace |
93 | 88 |
94 namespace password_manager { | 89 namespace password_manager { |
95 | 90 |
96 class ContentCredentialManagerDispatcherTest | 91 class ContentCredentialManagerDispatcherTest |
97 : public content::RenderViewHostTestHarness { | 92 : public content::RenderViewHostTestHarness { |
98 public: | 93 public: |
99 ContentCredentialManagerDispatcherTest() {} | 94 ContentCredentialManagerDispatcherTest() {} |
100 | 95 |
101 void SetUp() override { | 96 void SetUp() override { |
102 content::RenderViewHostTestHarness::SetUp(); | 97 content::RenderViewHostTestHarness::SetUp(); |
103 store_ = new TestPasswordStore; | 98 store_ = new TestPasswordStore; |
104 client_.reset(new TestPasswordManagerClient(store_.get())); | 99 client_.reset(new TestPasswordManagerClient(store_.get())); |
105 dispatcher_.reset( | 100 dispatcher_.reset( |
106 new ContentCredentialManagerDispatcher(web_contents(), client_.get())); | 101 new ContentCredentialManagerDispatcher(web_contents(), client_.get())); |
| 102 dispatcher_->set_password_manager_driver(&stub_driver_); |
107 | 103 |
108 NavigateAndCommit(GURL("https://example.com/test.html")); | 104 NavigateAndCommit(GURL("https://example.com/test.html")); |
109 | 105 |
110 form_.username_value = base::ASCIIToUTF16("Username"); | 106 form_.username_value = base::ASCIIToUTF16("Username"); |
111 form_.display_name = base::ASCIIToUTF16("Display Name"); | 107 form_.display_name = base::ASCIIToUTF16("Display Name"); |
112 form_.password_value = base::ASCIIToUTF16("Password"); | 108 form_.password_value = base::ASCIIToUTF16("Password"); |
113 form_.origin = web_contents()->GetLastCommittedURL().GetOrigin(); | 109 form_.origin = web_contents()->GetLastCommittedURL().GetOrigin(); |
114 form_.signon_realm = form_.origin.spec(); | 110 form_.signon_realm = form_.origin.spec(); |
115 form_.scheme = autofill::PasswordForm::SCHEME_HTML; | 111 form_.scheme = autofill::PasswordForm::SCHEME_HTML; |
116 | 112 |
117 store_->Clear(); | 113 store_->Clear(); |
118 EXPECT_TRUE(store_->IsEmpty()); | 114 EXPECT_TRUE(store_->IsEmpty()); |
119 } | 115 } |
120 | 116 |
121 void TearDown() override { | 117 void TearDown() override { |
122 store_->Shutdown(); | 118 store_->Shutdown(); |
123 content::RenderViewHostTestHarness::TearDown(); | 119 content::RenderViewHostTestHarness::TearDown(); |
124 } | 120 } |
125 | 121 |
126 ContentCredentialManagerDispatcher* dispatcher() { return dispatcher_.get(); } | 122 ContentCredentialManagerDispatcher* dispatcher() { return dispatcher_.get(); } |
127 | 123 |
128 protected: | 124 protected: |
129 autofill::PasswordForm form_; | 125 autofill::PasswordForm form_; |
130 scoped_refptr<TestPasswordStore> store_; | 126 scoped_refptr<TestPasswordStore> store_; |
131 scoped_ptr<ContentCredentialManagerDispatcher> dispatcher_; | 127 scoped_ptr<ContentCredentialManagerDispatcher> dispatcher_; |
132 scoped_ptr<TestPasswordManagerClient> client_; | 128 scoped_ptr<TestPasswordManagerClient> client_; |
| 129 StubPasswordManagerDriver stub_driver_; |
133 }; | 130 }; |
134 | 131 |
135 TEST_F(ContentCredentialManagerDispatcherTest, | 132 TEST_F(ContentCredentialManagerDispatcherTest, |
136 CredentialManagerOnNotifyFailedSignIn) { | 133 CredentialManagerOnNotifyFailedSignIn) { |
137 CredentialInfo info; | 134 CredentialInfo info; |
138 info.type = CREDENTIAL_TYPE_LOCAL; | 135 info.type = CREDENTIAL_TYPE_LOCAL; |
139 dispatcher()->OnNotifyFailedSignIn(kRequestId, info); | 136 dispatcher()->OnNotifyFailedSignIn(kRequestId, info); |
140 | 137 |
141 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID; | 138 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID; |
142 const IPC::Message* message = | 139 const IPC::Message* message = |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 EXPECT_TRUE(message); | 245 EXPECT_TRUE(message); |
249 CredentialManagerMsg_SendCredential::Param send_param; | 246 CredentialManagerMsg_SendCredential::Param send_param; |
250 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 247 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
251 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 248 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
252 EXPECT_NE(CREDENTIAL_TYPE_EMPTY, send_param.b.type); | 249 EXPECT_NE(CREDENTIAL_TYPE_EMPTY, send_param.b.type); |
253 process()->sink().ClearMessages(); | 250 process()->sink().ClearMessages(); |
254 EXPECT_TRUE(client_->did_prompt_user_to_choose()); | 251 EXPECT_TRUE(client_->did_prompt_user_to_choose()); |
255 } | 252 } |
256 | 253 |
257 } // namespace password_manager | 254 } // namespace password_manager |
OLD | NEW |