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

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: 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/credential_manager_dispatc her.h" 5 #include "components/password_manager/content/browser/credential_manager_dispatc her.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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
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,
55 base::Callback<void(const password_manager::CredentialInfo&)> callback) 55 base::Callback<void(const password_manager::CredentialInfo&)> callback)
56 override { 56 override {
57 // TODO(melandory): Use ScopedVector instead of std::vector in arguments.
58 // ContentCredentialManagerDispatcher::OnGetPasswordStoreResults contains a
59 // memory leak because of this.
57 EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); 60 EXPECT_FALSE(local_forms.empty() && federated_forms.empty());
58 did_prompt_user_to_choose_ = true; 61 did_prompt_user_to_choose_ = true;
59 ScopedVector<autofill::PasswordForm> local_entries; 62 ScopedVector<autofill::PasswordForm> local_entries;
60 local_entries.assign(local_forms.begin(), local_forms.end()); 63 local_entries.assign(local_forms.begin(), local_forms.end());
61 ScopedVector<autofill::PasswordForm> federated_entries; 64 ScopedVector<autofill::PasswordForm> federated_entries;
62 federated_entries.assign(federated_forms.begin(), federated_forms.end()); 65 federated_entries.assign(federated_forms.begin(), federated_forms.end());
63 // TODO(vasilii): Do something clever with |federated_forms|. 66 password_manager::CredentialInfo info(
64 password_manager::CredentialInfo info(*local_entries[0]); 67 local_forms.empty() ? *federated_forms[0] : *local_entries[0],
68 local_forms.empty()
69 ? password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED
70 : password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
65 base::MessageLoop::current()->PostTask(FROM_HERE, 71 base::MessageLoop::current()->PostTask(FROM_HERE,
66 base::Bind(callback, info)); 72 base::Bind(callback, info));
67 return true; 73 return true;
68 } 74 }
69 75
70 bool did_prompt_user_to_save() const { return did_prompt_user_to_save_; } 76 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_; } 77 bool did_prompt_user_to_choose() const { return did_prompt_user_to_choose_; }
72 78
73 password_manager::PasswordFormManager* pending_manager() const { 79 password_manager::PasswordFormManager* pending_manager() const {
74 return manager_.get(); 80 return manager_.get();
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 dispatcher()->OnNotifyFailedSignIn(kRequestId, info); 179 dispatcher()->OnNotifyFailedSignIn(kRequestId, info);
174 180
175 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID; 181 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeFailedSignIn::ID;
176 const IPC::Message* message = 182 const IPC::Message* message =
177 process()->sink().GetFirstMessageMatching(kMsgID); 183 process()->sink().GetFirstMessageMatching(kMsgID);
178 EXPECT_TRUE(message); 184 EXPECT_TRUE(message);
179 process()->sink().ClearMessages(); 185 process()->sink().ClearMessages();
180 } 186 }
181 187
182 TEST_F(CredentialManagerDispatcherTest, CredentialManagerOnNotifySignedIn) { 188 TEST_F(CredentialManagerDispatcherTest, CredentialManagerOnNotifySignedIn) {
183 CredentialInfo info(form_); 189 CredentialInfo info(form_,
190 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
184 dispatcher()->OnNotifySignedIn(kRequestId, info); 191 dispatcher()->OnNotifySignedIn(kRequestId, info);
185 192
186 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeSignedIn::ID; 193 const uint32 kMsgID = CredentialManagerMsg_AcknowledgeSignedIn::ID;
187 const IPC::Message* message = 194 const IPC::Message* message =
188 process()->sink().GetFirstMessageMatching(kMsgID); 195 process()->sink().GetFirstMessageMatching(kMsgID);
189 EXPECT_TRUE(message); 196 EXPECT_TRUE(message);
190 process()->sink().ClearMessages(); 197 process()->sink().ClearMessages();
191 198
192 // Allow the PasswordFormManager to talk to the password store, determine 199 // Allow the PasswordFormManager to talk to the password store, determine
193 // that the form is new, and set it as pending. 200 // that the form is new, and set it as pending.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 message = process()->sink().GetFirstMessageMatching(kMsgID); 306 message = process()->sink().GetFirstMessageMatching(kMsgID);
300 EXPECT_TRUE(message); 307 EXPECT_TRUE(message);
301 CredentialManagerMsg_SendCredential::Param send_param; 308 CredentialManagerMsg_SendCredential::Param send_param;
302 CredentialManagerMsg_SendCredential::Read(message, &send_param); 309 CredentialManagerMsg_SendCredential::Read(message, &send_param);
303 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); 310 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type);
304 process()->sink().ClearMessages(); 311 process()->sink().ClearMessages();
305 EXPECT_TRUE(client_->did_prompt_user_to_choose()); 312 EXPECT_TRUE(client_->did_prompt_user_to_choose());
306 } 313 }
307 314
308 } // namespace password_manager 315 } // namespace password_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698