Chromium Code Reviews| 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 44 | 44 |
| 45 bool PromptUserToSavePassword( | 45 bool PromptUserToSavePassword( |
| 46 scoped_ptr<password_manager::PasswordFormManager> manager) override { | 46 scoped_ptr<password_manager::PasswordFormManager> manager) override { |
| 47 did_prompt_user_to_save_ = true; | 47 did_prompt_user_to_save_ = true; |
| 48 manager_.reset(manager.release()); | 48 manager_.reset(manager.release()); |
| 49 return true; | 49 return true; |
| 50 } | 50 } |
| 51 | 51 |
| 52 bool PromptUserToChooseCredentials( | 52 bool PromptUserToChooseCredentials( |
| 53 const std::vector<autofill::PasswordForm*>& local_forms, | 53 const std::vector<autofill::PasswordForm*>& local_forms, |
| 54 const std::vector<autofill::PasswordForm*>& federated_forms, | 54 const std::vector<autofill::PasswordForm*>& federated_forms, |
|
vasilii
2015/01/13 18:13:28
We should use ScopedVector here. ContentCredentia
melandory
2015/01/15 10:04:30
Do you mind if I add TODO? I think it's better to
vasilii
2015/01/15 12:16:57
Sure.
| |
| 55 base::Callback<void(const password_manager::CredentialInfo&)> | 55 base::Callback<void(const password_manager::CredentialInfo&)> |
| 56 callback) override { | 56 callback) override { |
| 57 EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); | 57 EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); |
|
vasilii
2015/01/13 18:13:29
The function crashes if local_forms.empty()
melandory
2015/01/16 12:53:20
Done.
| |
| 58 did_prompt_user_to_choose_ = true; | 58 did_prompt_user_to_choose_ = true; |
| 59 ScopedVector<autofill::PasswordForm> local_entries; | 59 ScopedVector<autofill::PasswordForm> local_entries; |
| 60 local_entries.assign(local_forms.begin(), local_forms.end()); | 60 local_entries.assign(local_forms.begin(), local_forms.end()); |
| 61 ScopedVector<autofill::PasswordForm> federated_entries; | 61 ScopedVector<autofill::PasswordForm> federated_entries; |
| 62 federated_entries.assign(federated_forms.begin(), federated_forms.end()); | 62 federated_entries.assign(federated_forms.begin(), federated_forms.end()); |
| 63 // TODO(vasilii): Do something clever with |federated_forms|. | 63 // TODO(vasilii): Do something clever with |federated_forms|. |
|
vasilii
2015/01/13 18:13:29
TODO is irrelevant
melandory
2015/01/16 12:53:20
Done.
| |
| 64 password_manager::CredentialInfo info(*local_entries[0]); | 64 password_manager::CredentialInfo info( |
| 65 *local_entries[0], | |
| 66 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); | |
| 65 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, | 67 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, |
| 66 info)); | 68 info)); |
| 67 return true; | 69 return true; |
| 68 } | 70 } |
| 69 | 71 |
| 70 bool did_prompt_user_to_save() const { return did_prompt_user_to_save_; } | 72 bool did_prompt_user_to_save() const { return did_prompt_user_to_save_; } |
| 71 bool did_prompt_user_to_choose() const { return did_prompt_user_to_choose_; } | 73 bool did_prompt_user_to_choose() const { return did_prompt_user_to_choose_; } |
| 72 | 74 |
| 73 password_manager::PasswordFormManager* pending_manager() const { | 75 password_manager::PasswordFormManager* pending_manager() const { |
| 74 return manager_.get(); | 76 return manager_.get(); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 177 | 179 |
| 178 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID; | 180 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID; |
| 179 const IPC::Message* message = | 181 const IPC::Message* message = |
| 180 process()->sink().GetFirstMessageMatching(kMsgID); | 182 process()->sink().GetFirstMessageMatching(kMsgID); |
| 181 EXPECT_TRUE(message); | 183 EXPECT_TRUE(message); |
| 182 process()->sink().ClearMessages(); | 184 process()->sink().ClearMessages(); |
| 183 } | 185 } |
| 184 | 186 |
| 185 TEST_F(ContentCredentialManagerDispatcherTest, | 187 TEST_F(ContentCredentialManagerDispatcherTest, |
| 186 CredentialManagerOnNotifySignedIn) { | 188 CredentialManagerOnNotifySignedIn) { |
| 187 CredentialInfo info(form_); | 189 CredentialInfo info(form_, |
| 190 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); | |
| 188 dispatcher()->OnNotifySignedIn(kRequestId, info); | 191 dispatcher()->OnNotifySignedIn(kRequestId, info); |
| 189 | 192 |
| 190 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeSignedIn::ID; | 193 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeSignedIn::ID; |
| 191 const IPC::Message* message = | 194 const IPC::Message* message = |
| 192 process()->sink().GetFirstMessageMatching(kMsgID); | 195 process()->sink().GetFirstMessageMatching(kMsgID); |
| 193 EXPECT_TRUE(message); | 196 EXPECT_TRUE(message); |
| 194 process()->sink().ClearMessages(); | 197 process()->sink().ClearMessages(); |
| 195 | 198 |
| 196 // Allow the PasswordFormManager to talk to the password store, determine | 199 // Allow the PasswordFormManager to talk to the password store, determine |
| 197 // that the form is new, and set it as pending. | 200 // that the form is new, and set it as pending. |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 304 message = process()->sink().GetFirstMessageMatching(kMsgID); | 307 message = process()->sink().GetFirstMessageMatching(kMsgID); |
| 305 EXPECT_TRUE(message); | 308 EXPECT_TRUE(message); |
| 306 CredentialManagerMsg_SendCredential::Param send_param; | 309 CredentialManagerMsg_SendCredential::Param send_param; |
| 307 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 310 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 308 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); | 311 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); |
| 309 process()->sink().ClearMessages(); | 312 process()->sink().ClearMessages(); |
| 310 EXPECT_TRUE(client_->did_prompt_user_to_choose()); | 313 EXPECT_TRUE(client_->did_prompt_user_to_choose()); |
| 311 } | 314 } |
| 312 | 315 |
| 313 } // namespace password_manager | 316 } // namespace password_manager |
| OLD | NEW |