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

Side by Side Diff: components/password_manager/content/browser/content_credential_manager_dispatcher_unittest.cc

Issue 848723002: Credential Manager API: Showing both local and federated logins. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review, please Created 5 years, 11 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698