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

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_state_unittest.cc

Issue 2531863002: Delete all the traces of federation providers in the account chooser. (Closed)
Patch Set: android2 Created 4 years 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 2015 The Chromium Authors. All rights reserved. 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 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 "chrome/browser/ui/passwords/manage_passwords_state.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_state.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 test_submitted_form_.username_value = base::ASCIIToUTF16("new one"); 54 test_submitted_form_.username_value = base::ASCIIToUTF16("new one");
55 test_submitted_form_.password_value = base::ASCIIToUTF16("asdfjkl;"); 55 test_submitted_form_.password_value = base::ASCIIToUTF16("asdfjkl;");
56 56
57 test_local_federated_form_ = test_local_form_; 57 test_local_federated_form_ = test_local_form_;
58 test_local_federated_form_.federation_origin = 58 test_local_federated_form_.federation_origin =
59 url::Origin(GURL("https://idp.com")); 59 url::Origin(GURL("https://idp.com"));
60 test_local_federated_form_.password_value.clear(); 60 test_local_federated_form_.password_value.clear();
61 test_local_federated_form_.signon_realm = 61 test_local_federated_form_.signon_realm =
62 "federation://example.com/accounts.com"; 62 "federation://example.com/accounts.com";
63 63
64 test_federated_form_.origin = GURL("https://idp.com");
65 test_federated_form_.username_value = base::ASCIIToUTF16("username");
66
67 passwords_data_.set_client(&stub_client_); 64 passwords_data_.set_client(&stub_client_);
68 } 65 }
69 66
70 autofill::PasswordForm& test_local_form() { return test_local_form_; } 67 autofill::PasswordForm& test_local_form() { return test_local_form_; }
71 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; } 68 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; }
72 autofill::PasswordForm& test_local_federated_form() { 69 autofill::PasswordForm& test_local_federated_form() {
73 return test_local_federated_form_; 70 return test_local_federated_form_;
74 } 71 }
75 autofill::PasswordForm& test_federated_form() { return test_federated_form_; }
76 std::vector<std::unique_ptr<autofill::PasswordForm>>& test_stored_forms() { 72 std::vector<std::unique_ptr<autofill::PasswordForm>>& test_stored_forms() {
77 return test_stored_forms_; 73 return test_stored_forms_;
78 } 74 }
79 ManagePasswordsState& passwords_data() { return passwords_data_; } 75 ManagePasswordsState& passwords_data() { return passwords_data_; }
80 76
81 // Returns a PasswordFormManager containing |test_stored_forms_| as the best 77 // Returns a PasswordFormManager containing |test_stored_forms_| as the best
82 // matches. 78 // matches.
83 std::unique_ptr<password_manager::PasswordFormManager> CreateFormManager(); 79 std::unique_ptr<password_manager::PasswordFormManager> CreateFormManager();
84 80
85 // Returns a PasswordFormManager containing test_federated_form() as a stored 81 // Returns a PasswordFormManager containing test_local_federated_form() as a
86 // federated credential. 82 // stored federated credential.
87 std::unique_ptr<password_manager::PasswordFormManager> 83 std::unique_ptr<password_manager::PasswordFormManager>
88 CreateFormManagerWithFederation(); 84 CreateFormManagerWithFederation();
89 85
90 // Pushes irrelevant updates to |passwords_data_| and checks that they don't 86 // Pushes irrelevant updates to |passwords_data_| and checks that they don't
91 // affect the state. 87 // affect the state.
92 void TestNoisyUpdates(); 88 void TestNoisyUpdates();
93 89
94 // Pushes both relevant and irrelevant updates to |passwords_data_|. 90 // Pushes both relevant and irrelevant updates to |passwords_data_|.
95 void TestAllUpdates(); 91 void TestAllUpdates();
96 92
97 // Pushes a blacklisted form and checks that it doesn't affect the state. 93 // Pushes a blacklisted form and checks that it doesn't affect the state.
98 void TestBlacklistedUpdates(); 94 void TestBlacklistedUpdates();
99 95
100 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*)); 96 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*));
101 97
102 private: 98 private:
103 // Implements both CreateFormManager and CreateFormManagerWithFederation. 99 // Implements both CreateFormManager and CreateFormManagerWithFederation.
104 std::unique_ptr<password_manager::PasswordFormManager> 100 std::unique_ptr<password_manager::PasswordFormManager>
105 CreateFormManagerInternal(bool include_federated); 101 CreateFormManagerInternal(bool include_federated);
106 102
107 password_manager::StubPasswordManagerClient stub_client_; 103 password_manager::StubPasswordManagerClient stub_client_;
108 password_manager::StubPasswordManagerDriver driver_; 104 password_manager::StubPasswordManagerDriver driver_;
109 password_manager::PasswordManager password_manager_; 105 password_manager::PasswordManager password_manager_;
110 106
111 ManagePasswordsState passwords_data_; 107 ManagePasswordsState passwords_data_;
112 autofill::PasswordForm test_local_form_; 108 autofill::PasswordForm test_local_form_;
113 autofill::PasswordForm test_submitted_form_; 109 autofill::PasswordForm test_submitted_form_;
114 autofill::PasswordForm test_local_federated_form_; 110 autofill::PasswordForm test_local_federated_form_;
115 autofill::PasswordForm test_federated_form_;
116 std::vector<std::unique_ptr<autofill::PasswordForm>> test_stored_forms_; 111 std::vector<std::unique_ptr<autofill::PasswordForm>> test_stored_forms_;
117 }; 112 };
118 113
119 std::unique_ptr<password_manager::PasswordFormManager> 114 std::unique_ptr<password_manager::PasswordFormManager>
120 ManagePasswordsStateTest::CreateFormManager() { 115 ManagePasswordsStateTest::CreateFormManager() {
121 return CreateFormManagerInternal(false); 116 return CreateFormManagerInternal(false);
122 } 117 }
123 118
124 std::unique_ptr<password_manager::PasswordFormManager> 119 std::unique_ptr<password_manager::PasswordFormManager>
125 ManagePasswordsStateTest::CreateFormManagerWithFederation() { 120 ManagePasswordsStateTest::CreateFormManagerWithFederation() {
(...skipping 18 matching lines...) Expand all
144 EXPECT_EQ( 139 EXPECT_EQ(
145 test_local_federated_form(), 140 test_local_federated_form(),
146 *test_form_manager->form_fetcher()->GetFederatedMatches().front()); 141 *test_form_manager->form_fetcher()->GetFederatedMatches().front());
147 } 142 }
148 return test_form_manager; 143 return test_form_manager;
149 } 144 }
150 145
151 void ManagePasswordsStateTest::TestNoisyUpdates() { 146 void ManagePasswordsStateTest::TestNoisyUpdates() {
152 const std::vector<const autofill::PasswordForm*> forms = 147 const std::vector<const autofill::PasswordForm*> forms =
153 GetRawPointers(passwords_data_.GetCurrentForms()); 148 GetRawPointers(passwords_data_.GetCurrentForms());
154 const std::vector<const autofill::PasswordForm*> federated_forms =
155 GetRawPointers(passwords_data_.federation_providers_forms());
156 const password_manager::ui::State state = passwords_data_.state(); 149 const password_manager::ui::State state = passwords_data_.state();
157 const GURL origin = passwords_data_.origin(); 150 const GURL origin = passwords_data_.origin();
158 151
159 // Push "Add". 152 // Push "Add".
160 autofill::PasswordForm form; 153 autofill::PasswordForm form;
161 form.origin = GURL("http://3rdparty.com"); 154 form.origin = GURL("http://3rdparty.com");
162 form.username_value = base::ASCIIToUTF16("username"); 155 form.username_value = base::ASCIIToUTF16("username");
163 form.password_value = base::ASCIIToUTF16("12345"); 156 form.password_value = base::ASCIIToUTF16("12345");
164 password_manager::PasswordStoreChange change( 157 password_manager::PasswordStoreChange change(
165 password_manager::PasswordStoreChange::ADD, form); 158 password_manager::PasswordStoreChange::ADD, form);
166 password_manager::PasswordStoreChangeList list(1, change); 159 password_manager::PasswordStoreChangeList list(1, change);
167 passwords_data().ProcessLoginsChanged(list); 160 passwords_data().ProcessLoginsChanged(list);
168 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 161 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
169 EXPECT_EQ(federated_forms,
170 GetRawPointers(passwords_data().federation_providers_forms()));
171 EXPECT_EQ(state, passwords_data().state()); 162 EXPECT_EQ(state, passwords_data().state());
172 EXPECT_EQ(origin, passwords_data().origin()); 163 EXPECT_EQ(origin, passwords_data().origin());
173 164
174 // Update the form. 165 // Update the form.
175 form.password_value = base::ASCIIToUTF16("password"); 166 form.password_value = base::ASCIIToUTF16("password");
176 list[0] = password_manager::PasswordStoreChange( 167 list[0] = password_manager::PasswordStoreChange(
177 password_manager::PasswordStoreChange::UPDATE, form); 168 password_manager::PasswordStoreChange::UPDATE, form);
178 passwords_data().ProcessLoginsChanged(list); 169 passwords_data().ProcessLoginsChanged(list);
179 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 170 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
180 EXPECT_EQ(federated_forms,
181 GetRawPointers(passwords_data().federation_providers_forms()));
182 EXPECT_EQ(state, passwords_data().state()); 171 EXPECT_EQ(state, passwords_data().state());
183 EXPECT_EQ(origin, passwords_data().origin()); 172 EXPECT_EQ(origin, passwords_data().origin());
184 173
185 // Delete the form. 174 // Delete the form.
186 list[0] = password_manager::PasswordStoreChange( 175 list[0] = password_manager::PasswordStoreChange(
187 password_manager::PasswordStoreChange::REMOVE, form); 176 password_manager::PasswordStoreChange::REMOVE, form);
188 passwords_data().ProcessLoginsChanged(list); 177 passwords_data().ProcessLoginsChanged(list);
189 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 178 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
190 EXPECT_EQ(federated_forms,
191 GetRawPointers(passwords_data().federation_providers_forms()));
192 EXPECT_EQ(state, passwords_data().state()); 179 EXPECT_EQ(state, passwords_data().state());
193 EXPECT_EQ(origin, passwords_data().origin()); 180 EXPECT_EQ(origin, passwords_data().origin());
194 } 181 }
195 182
196 void ManagePasswordsStateTest::TestAllUpdates() { 183 void ManagePasswordsStateTest::TestAllUpdates() {
197 const std::vector<const autofill::PasswordForm*> forms = 184 const std::vector<const autofill::PasswordForm*> forms =
198 GetRawPointers(passwords_data_.GetCurrentForms()); 185 GetRawPointers(passwords_data_.GetCurrentForms());
199 const std::vector<const autofill::PasswordForm*> federated_forms =
200 GetRawPointers(passwords_data_.federation_providers_forms());
201 const password_manager::ui::State state = passwords_data_.state(); 186 const password_manager::ui::State state = passwords_data_.state();
202 const GURL origin = passwords_data_.origin(); 187 const GURL origin = passwords_data_.origin();
203 EXPECT_NE(GURL::EmptyGURL(), origin); 188 EXPECT_NE(GURL::EmptyGURL(), origin);
204 189
205 // Push "Add". 190 // Push "Add".
206 autofill::PasswordForm form; 191 autofill::PasswordForm form;
207 form.origin = origin; 192 form.origin = origin;
208 form.username_value = base::ASCIIToUTF16("user15"); 193 form.username_value = base::ASCIIToUTF16("user15");
209 form.password_value = base::ASCIIToUTF16("12345"); 194 form.password_value = base::ASCIIToUTF16("12345");
210 password_manager::PasswordStoreChange change( 195 password_manager::PasswordStoreChange change(
211 password_manager::PasswordStoreChange::ADD, form); 196 password_manager::PasswordStoreChange::ADD, form);
212 password_manager::PasswordStoreChangeList list(1, change); 197 password_manager::PasswordStoreChangeList list(1, change);
213 passwords_data().ProcessLoginsChanged(list); 198 passwords_data().ProcessLoginsChanged(list);
214 EXPECT_THAT(passwords_data().GetCurrentForms(), Contains(Pointee(form))); 199 EXPECT_THAT(passwords_data().GetCurrentForms(), Contains(Pointee(form)));
215 EXPECT_EQ(federated_forms,
216 GetRawPointers(passwords_data().federation_providers_forms()));
217 EXPECT_EQ(state, passwords_data().state()); 200 EXPECT_EQ(state, passwords_data().state());
218 EXPECT_EQ(origin, passwords_data().origin()); 201 EXPECT_EQ(origin, passwords_data().origin());
219 202
220 // Update the form. 203 // Update the form.
221 form.password_value = base::ASCIIToUTF16("password"); 204 form.password_value = base::ASCIIToUTF16("password");
222 list[0] = password_manager::PasswordStoreChange( 205 list[0] = password_manager::PasswordStoreChange(
223 password_manager::PasswordStoreChange::UPDATE, form); 206 password_manager::PasswordStoreChange::UPDATE, form);
224 passwords_data().ProcessLoginsChanged(list); 207 passwords_data().ProcessLoginsChanged(list);
225 EXPECT_THAT(passwords_data().GetCurrentForms(), Contains(Pointee(form))); 208 EXPECT_THAT(passwords_data().GetCurrentForms(), Contains(Pointee(form)));
226 EXPECT_EQ(federated_forms,
227 GetRawPointers(passwords_data().federation_providers_forms()));
228 EXPECT_EQ(state, passwords_data().state()); 209 EXPECT_EQ(state, passwords_data().state());
229 EXPECT_EQ(origin, passwords_data().origin()); 210 EXPECT_EQ(origin, passwords_data().origin());
230 211
231 // Delete the form. 212 // Delete the form.
232 list[0] = password_manager::PasswordStoreChange( 213 list[0] = password_manager::PasswordStoreChange(
233 password_manager::PasswordStoreChange::REMOVE, form); 214 password_manager::PasswordStoreChange::REMOVE, form);
234 passwords_data().ProcessLoginsChanged(list); 215 passwords_data().ProcessLoginsChanged(list);
235 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 216 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
236 EXPECT_EQ(federated_forms,
237 GetRawPointers(passwords_data().federation_providers_forms()));
238 EXPECT_EQ(state, passwords_data().state()); 217 EXPECT_EQ(state, passwords_data().state());
239 EXPECT_EQ(origin, passwords_data().origin()); 218 EXPECT_EQ(origin, passwords_data().origin());
240 219
241 TestNoisyUpdates(); 220 TestNoisyUpdates();
242 } 221 }
243 222
244 void ManagePasswordsStateTest::TestBlacklistedUpdates() { 223 void ManagePasswordsStateTest::TestBlacklistedUpdates() {
245 const std::vector<const autofill::PasswordForm*> forms = 224 const std::vector<const autofill::PasswordForm*> forms =
246 GetRawPointers(passwords_data_.GetCurrentForms()); 225 GetRawPointers(passwords_data_.GetCurrentForms());
247 const std::vector<const autofill::PasswordForm*> federated_forms =
248 GetRawPointers(passwords_data_.federation_providers_forms());
249 const password_manager::ui::State state = passwords_data_.state(); 226 const password_manager::ui::State state = passwords_data_.state();
250 const GURL origin = passwords_data_.origin(); 227 const GURL origin = passwords_data_.origin();
251 EXPECT_NE(GURL::EmptyGURL(), origin); 228 EXPECT_NE(GURL::EmptyGURL(), origin);
252 229
253 // Process the blacklisted form. 230 // Process the blacklisted form.
254 autofill::PasswordForm blacklisted; 231 autofill::PasswordForm blacklisted;
255 blacklisted.blacklisted_by_user = true; 232 blacklisted.blacklisted_by_user = true;
256 blacklisted.origin = origin; 233 blacklisted.origin = origin;
257 password_manager::PasswordStoreChangeList list; 234 password_manager::PasswordStoreChangeList list;
258 list.push_back(password_manager::PasswordStoreChange( 235 list.push_back(password_manager::PasswordStoreChange(
259 password_manager::PasswordStoreChange::ADD, blacklisted)); 236 password_manager::PasswordStoreChange::ADD, blacklisted));
260 passwords_data().ProcessLoginsChanged(list); 237 passwords_data().ProcessLoginsChanged(list);
261 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 238 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
262 EXPECT_EQ(federated_forms,
263 GetRawPointers(passwords_data().federation_providers_forms()));
264 EXPECT_EQ(state, passwords_data().state()); 239 EXPECT_EQ(state, passwords_data().state());
265 EXPECT_EQ(origin, passwords_data().origin()); 240 EXPECT_EQ(origin, passwords_data().origin());
266 241
267 // Delete the blacklisted form. 242 // Delete the blacklisted form.
268 list[0] = password_manager::PasswordStoreChange( 243 list[0] = password_manager::PasswordStoreChange(
269 password_manager::PasswordStoreChange::REMOVE, blacklisted); 244 password_manager::PasswordStoreChange::REMOVE, blacklisted);
270 passwords_data().ProcessLoginsChanged(list); 245 passwords_data().ProcessLoginsChanged(list);
271 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms())); 246 EXPECT_EQ(forms, GetRawPointers(passwords_data().GetCurrentForms()));
272 EXPECT_EQ(federated_forms,
273 GetRawPointers(passwords_data().federation_providers_forms()));
274 EXPECT_EQ(state, passwords_data().state()); 247 EXPECT_EQ(state, passwords_data().state());
275 EXPECT_EQ(origin, passwords_data().origin()); 248 EXPECT_EQ(origin, passwords_data().origin());
276 } 249 }
277 250
278 TEST_F(ManagePasswordsStateTest, DefaultState) { 251 TEST_F(ManagePasswordsStateTest, DefaultState) {
279 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); 252 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty());
280 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
281 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); 253 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state());
282 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); 254 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin());
283 EXPECT_FALSE(passwords_data().form_manager()); 255 EXPECT_FALSE(passwords_data().form_manager());
284 256
285 TestNoisyUpdates(); 257 TestNoisyUpdates();
286 } 258 }
287 259
288 TEST_F(ManagePasswordsStateTest, PasswordSubmitted) { 260 TEST_F(ManagePasswordsStateTest, PasswordSubmitted) {
289 test_stored_forms().push_back( 261 test_stored_forms().push_back(
290 base::MakeUnique<autofill::PasswordForm>(test_local_form())); 262 base::MakeUnique<autofill::PasswordForm>(test_local_form()));
291 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 263 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
292 CreateFormManager()); 264 CreateFormManager());
293 test_form_manager->ProvisionallySave( 265 test_form_manager->ProvisionallySave(
294 test_submitted_form(), 266 test_submitted_form(),
295 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 267 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
296 passwords_data().OnPendingPassword(std::move(test_form_manager)); 268 passwords_data().OnPendingPassword(std::move(test_form_manager));
297 269
298 EXPECT_THAT(passwords_data().GetCurrentForms(), 270 EXPECT_THAT(passwords_data().GetCurrentForms(),
299 ElementsAre(Pointee(test_local_form()))); 271 ElementsAre(Pointee(test_local_form())));
300 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
301 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 272 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
302 passwords_data().state()); 273 passwords_data().state());
303 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 274 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
304 ASSERT_TRUE(passwords_data().form_manager()); 275 ASSERT_TRUE(passwords_data().form_manager());
305 EXPECT_EQ(test_submitted_form(), 276 EXPECT_EQ(test_submitted_form(),
306 passwords_data().form_manager()->pending_credentials()); 277 passwords_data().form_manager()->pending_credentials());
307 TestAllUpdates(); 278 TestAllUpdates();
308 } 279 }
309 280
310 TEST_F(ManagePasswordsStateTest, PasswordSaved) { 281 TEST_F(ManagePasswordsStateTest, PasswordSaved) {
311 test_stored_forms().push_back( 282 test_stored_forms().push_back(
312 base::MakeUnique<autofill::PasswordForm>(test_local_form())); 283 base::MakeUnique<autofill::PasswordForm>(test_local_form()));
313 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 284 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
314 CreateFormManager()); 285 CreateFormManager());
315 test_form_manager->ProvisionallySave( 286 test_form_manager->ProvisionallySave(
316 test_submitted_form(), 287 test_submitted_form(),
317 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 288 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
318 passwords_data().OnPendingPassword(std::move(test_form_manager)); 289 passwords_data().OnPendingPassword(std::move(test_form_manager));
319 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 290 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
320 passwords_data().state()); 291 passwords_data().state());
321 292
322 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); 293 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE);
323 EXPECT_THAT(passwords_data().GetCurrentForms(), 294 EXPECT_THAT(passwords_data().GetCurrentForms(),
324 ElementsAre(Pointee(test_local_form()))); 295 ElementsAre(Pointee(test_local_form())));
325 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
326 EXPECT_EQ(password_manager::ui::MANAGE_STATE, 296 EXPECT_EQ(password_manager::ui::MANAGE_STATE,
327 passwords_data().state()); 297 passwords_data().state());
328 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 298 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
329 TestAllUpdates(); 299 TestAllUpdates();
330 } 300 }
331 301
332 TEST_F(ManagePasswordsStateTest, PasswordSubmittedFederationsPresent) { 302 TEST_F(ManagePasswordsStateTest, PasswordSubmittedFederationsPresent) {
333 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 303 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
334 CreateFormManagerWithFederation()); 304 CreateFormManagerWithFederation());
335 test_form_manager->ProvisionallySave( 305 test_form_manager->ProvisionallySave(
336 test_submitted_form(), 306 test_submitted_form(),
337 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 307 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
338 passwords_data().OnPendingPassword(std::move(test_form_manager)); 308 passwords_data().OnPendingPassword(std::move(test_form_manager));
339 309
340 EXPECT_THAT(passwords_data().GetCurrentForms(), 310 EXPECT_THAT(passwords_data().GetCurrentForms(),
341 ElementsAre(Pointee(test_local_federated_form()))); 311 ElementsAre(Pointee(test_local_federated_form())));
342 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
343 } 312 }
344 313
345 TEST_F(ManagePasswordsStateTest, OnRequestCredentials) { 314 TEST_F(ManagePasswordsStateTest, OnRequestCredentials) {
346 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 315 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
347 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 316 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
348 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
349 federated_credentials.emplace_back(
350 new autofill::PasswordForm(test_federated_form()));
351 const GURL origin = test_local_form().origin; 317 const GURL origin = test_local_form().origin;
352 passwords_data().OnRequestCredentials( 318 passwords_data().OnRequestCredentials(std::move(local_credentials), origin);
353 std::move(local_credentials), std::move(federated_credentials), origin);
354 passwords_data().set_credentials_callback(base::Bind( 319 passwords_data().set_credentials_callback(base::Bind(
355 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); 320 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this)));
356 EXPECT_THAT(passwords_data().GetCurrentForms(), 321 EXPECT_THAT(passwords_data().GetCurrentForms(),
357 ElementsAre(Pointee(test_local_form()))); 322 ElementsAre(Pointee(test_local_form())));
358 EXPECT_THAT(passwords_data().federation_providers_forms(),
359 ElementsAre(Pointee(test_federated_form())));
360 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 323 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
361 passwords_data().state()); 324 passwords_data().state());
362 EXPECT_EQ(origin, passwords_data().origin()); 325 EXPECT_EQ(origin, passwords_data().origin());
363 TestAllUpdates(); 326 TestAllUpdates();
364 327
365 EXPECT_CALL(*this, CredentialCallback(nullptr)); 328 EXPECT_CALL(*this, CredentialCallback(nullptr));
366 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); 329 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE);
367 EXPECT_TRUE(passwords_data().credentials_callback().is_null()); 330 EXPECT_TRUE(passwords_data().credentials_callback().is_null());
368 EXPECT_THAT(passwords_data().GetCurrentForms(), 331 EXPECT_THAT(passwords_data().GetCurrentForms(),
369 ElementsAre(Pointee(test_local_form()))); 332 ElementsAre(Pointee(test_local_form())));
370 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
371 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 333 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
372 EXPECT_EQ(origin, passwords_data().origin()); 334 EXPECT_EQ(origin, passwords_data().origin());
373 TestAllUpdates(); 335 TestAllUpdates();
374 } 336 }
375 337
376 TEST_F(ManagePasswordsStateTest, AutoSignin) { 338 TEST_F(ManagePasswordsStateTest, AutoSignin) {
377 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 339 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
378 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 340 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
379 passwords_data().OnAutoSignin(std::move(local_credentials), 341 passwords_data().OnAutoSignin(std::move(local_credentials),
380 test_local_form().origin); 342 test_local_form().origin);
381 EXPECT_THAT(passwords_data().GetCurrentForms(), 343 EXPECT_THAT(passwords_data().GetCurrentForms(),
382 ElementsAre(Pointee(test_local_form()))); 344 ElementsAre(Pointee(test_local_form())));
383 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
384 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); 345 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state());
385 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); 346 EXPECT_EQ(test_local_form().origin, passwords_data().origin());
386 TestAllUpdates(); 347 TestAllUpdates();
387 348
388 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); 349 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE);
389 EXPECT_THAT(passwords_data().GetCurrentForms(), 350 EXPECT_THAT(passwords_data().GetCurrentForms(),
390 ElementsAre(Pointee(test_local_form()))); 351 ElementsAre(Pointee(test_local_form())));
391 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
392 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 352 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
393 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); 353 EXPECT_EQ(test_local_form().origin, passwords_data().origin());
394 TestAllUpdates(); 354 TestAllUpdates();
395 } 355 }
396 356
397 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSave) { 357 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSave) {
398 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 358 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
399 CreateFormManager()); 359 CreateFormManager());
400 test_form_manager->ProvisionallySave( 360 test_form_manager->ProvisionallySave(
401 test_submitted_form(), 361 test_submitted_form(),
402 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 362 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
403 363
404 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); 364 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager));
405 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state()); 365 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state());
406 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 366 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
407 ASSERT_TRUE(passwords_data().form_manager()); 367 ASSERT_TRUE(passwords_data().form_manager());
408 EXPECT_EQ(test_submitted_form(), 368 EXPECT_EQ(test_submitted_form(),
409 passwords_data().form_manager()->pending_credentials()); 369 passwords_data().form_manager()->pending_credentials());
410 TestAllUpdates(); 370 TestAllUpdates();
411 371
412 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); 372 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE);
413 EXPECT_THAT(passwords_data().GetCurrentForms(), 373 EXPECT_THAT(passwords_data().GetCurrentForms(),
414 ElementsAre(Pointee(test_submitted_form()))); 374 ElementsAre(Pointee(test_submitted_form())));
415 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
416 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 375 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
417 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 376 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
418 TestAllUpdates(); 377 TestAllUpdates();
419 } 378 }
420 379
421 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveWithFederations) { 380 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveWithFederations) {
422 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 381 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
423 CreateFormManagerWithFederation()); 382 CreateFormManagerWithFederation());
424 test_form_manager->ProvisionallySave( 383 test_form_manager->ProvisionallySave(
425 test_submitted_form(), 384 test_submitted_form(),
426 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 385 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
427 386
428 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); 387 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager));
429 EXPECT_THAT(passwords_data().GetCurrentForms(), 388 EXPECT_THAT(passwords_data().GetCurrentForms(),
430 UnorderedElementsAre(Pointee(test_submitted_form()), 389 UnorderedElementsAre(Pointee(test_submitted_form()),
431 Pointee(test_local_federated_form()))); 390 Pointee(test_local_federated_form())));
432 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
433 } 391 }
434 392
435 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { 393 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) {
436 std::map<base::string16, const autofill::PasswordForm*> password_form_map; 394 std::map<base::string16, const autofill::PasswordForm*> password_form_map;
437 password_form_map.insert( 395 password_form_map.insert(
438 std::make_pair(test_local_form().username_value, &test_local_form())); 396 std::make_pair(test_local_form().username_value, &test_local_form()));
439 GURL origin("https://example.com"); 397 GURL origin("https://example.com");
440 passwords_data().OnPasswordAutofilled(password_form_map, origin, nullptr); 398 passwords_data().OnPasswordAutofilled(password_form_map, origin, nullptr);
441 399
442 EXPECT_THAT(passwords_data().GetCurrentForms(), 400 EXPECT_THAT(passwords_data().GetCurrentForms(),
443 ElementsAre(Pointee(test_local_form()))); 401 ElementsAre(Pointee(test_local_form())));
444 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
445 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 402 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
446 EXPECT_EQ(origin, passwords_data().origin()); 403 EXPECT_EQ(origin, passwords_data().origin());
447 404
448 TestAllUpdates(); 405 TestAllUpdates();
449 } 406 }
450 407
451 TEST_F(ManagePasswordsStateTest, PasswordAutofillWithSavedFederations) { 408 TEST_F(ManagePasswordsStateTest, PasswordAutofillWithSavedFederations) {
452 std::map<base::string16, const autofill::PasswordForm*> password_form_map; 409 std::map<base::string16, const autofill::PasswordForm*> password_form_map;
453 password_form_map.insert( 410 password_form_map.insert(
454 std::make_pair(test_local_form().username_value, &test_local_form())); 411 std::make_pair(test_local_form().username_value, &test_local_form()));
455 GURL origin("https://example.com"); 412 GURL origin("https://example.com");
456 std::vector<const autofill::PasswordForm*> federated; 413 std::vector<const autofill::PasswordForm*> federated;
457 federated.push_back(&test_local_federated_form()); 414 federated.push_back(&test_local_federated_form());
458 passwords_data().OnPasswordAutofilled(password_form_map, origin, &federated); 415 passwords_data().OnPasswordAutofilled(password_form_map, origin, &federated);
459 416
460 // |federated| represents the locally saved federations. These are bundled in 417 // |federated| represents the locally saved federations. These are bundled in
461 // the "current forms". 418 // the "current forms".
462 EXPECT_THAT(passwords_data().GetCurrentForms(), 419 EXPECT_THAT(passwords_data().GetCurrentForms(),
463 UnorderedElementsAre(Pointee(test_local_form()), 420 UnorderedElementsAre(Pointee(test_local_form()),
464 Pointee(test_local_federated_form()))); 421 Pointee(test_local_federated_form())));
465 // |federated_credentials_forms()| do not refer to the saved federations. 422 // |federated_credentials_forms()| do not refer to the saved federations.
466 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
467 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 423 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
468 } 424 }
469 425
470 TEST_F(ManagePasswordsStateTest, ActiveOnMixedPSLAndNonPSLMatched) { 426 TEST_F(ManagePasswordsStateTest, ActiveOnMixedPSLAndNonPSLMatched) {
471 std::map<base::string16, const autofill::PasswordForm*> password_form_map; 427 std::map<base::string16, const autofill::PasswordForm*> password_form_map;
472 password_form_map.insert( 428 password_form_map.insert(
473 std::make_pair(test_local_form().username_value, &test_local_form())); 429 std::make_pair(test_local_form().username_value, &test_local_form()));
474 autofill::PasswordForm psl_matched_test_form = test_local_form(); 430 autofill::PasswordForm psl_matched_test_form = test_local_form();
475 psl_matched_test_form.is_public_suffix_match = true; 431 psl_matched_test_form.is_public_suffix_match = true;
476 password_form_map.insert(std::make_pair(psl_matched_test_form.username_value, 432 password_form_map.insert(std::make_pair(psl_matched_test_form.username_value,
477 &psl_matched_test_form)); 433 &psl_matched_test_form));
478 GURL origin("https://example.com"); 434 GURL origin("https://example.com");
479 passwords_data().OnPasswordAutofilled(password_form_map, origin, nullptr); 435 passwords_data().OnPasswordAutofilled(password_form_map, origin, nullptr);
480 436
481 EXPECT_THAT(passwords_data().GetCurrentForms(), 437 EXPECT_THAT(passwords_data().GetCurrentForms(),
482 ElementsAre(Pointee(test_local_form()))); 438 ElementsAre(Pointee(test_local_form())));
483 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
484 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); 439 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state());
485 EXPECT_EQ(origin, passwords_data().origin()); 440 EXPECT_EQ(origin, passwords_data().origin());
486 441
487 TestAllUpdates(); 442 TestAllUpdates();
488 } 443 }
489 444
490 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) { 445 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) {
491 autofill::PasswordForm psl_matched_test_form = test_local_form(); 446 autofill::PasswordForm psl_matched_test_form = test_local_form();
492 psl_matched_test_form.is_public_suffix_match = true; 447 psl_matched_test_form.is_public_suffix_match = true;
493 std::map<base::string16, const autofill::PasswordForm*> password_form_map; 448 std::map<base::string16, const autofill::PasswordForm*> password_form_map;
494 password_form_map.insert(std::make_pair(psl_matched_test_form.username_value, 449 password_form_map.insert(std::make_pair(psl_matched_test_form.username_value,
495 &psl_matched_test_form)); 450 &psl_matched_test_form));
496 passwords_data().OnPasswordAutofilled( 451 passwords_data().OnPasswordAutofilled(
497 password_form_map, GURL("https://m.example.com/"), nullptr); 452 password_form_map, GURL("https://m.example.com/"), nullptr);
498 453
499 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); 454 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty());
500 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
501 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); 455 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state());
502 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); 456 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin());
503 EXPECT_FALSE(passwords_data().form_manager()); 457 EXPECT_FALSE(passwords_data().form_manager());
504 } 458 }
505 459
506 TEST_F(ManagePasswordsStateTest, OnInactive) { 460 TEST_F(ManagePasswordsStateTest, OnInactive) {
507 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 461 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
508 CreateFormManager()); 462 CreateFormManager());
509 test_form_manager->ProvisionallySave( 463 test_form_manager->ProvisionallySave(
510 test_submitted_form(), 464 test_submitted_form(),
511 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 465 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
512 passwords_data().OnPendingPassword(std::move(test_form_manager)); 466 passwords_data().OnPendingPassword(std::move(test_form_manager));
513 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 467 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
514 passwords_data().state()); 468 passwords_data().state());
515 passwords_data().OnInactive(); 469 passwords_data().OnInactive();
516 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); 470 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty());
517 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
518 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); 471 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state());
519 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); 472 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin());
520 EXPECT_FALSE(passwords_data().form_manager()); 473 EXPECT_FALSE(passwords_data().form_manager());
521 TestNoisyUpdates(); 474 TestNoisyUpdates();
522 } 475 }
523 476
524 TEST_F(ManagePasswordsStateTest, PendingPasswordAddBlacklisted) { 477 TEST_F(ManagePasswordsStateTest, PendingPasswordAddBlacklisted) {
525 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 478 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
526 CreateFormManager()); 479 CreateFormManager());
527 test_form_manager->ProvisionallySave( 480 test_form_manager->ProvisionallySave(
528 test_submitted_form(), 481 test_submitted_form(),
529 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 482 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
530 passwords_data().OnPendingPassword(std::move(test_form_manager)); 483 passwords_data().OnPendingPassword(std::move(test_form_manager));
531 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 484 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
532 passwords_data().state()); 485 passwords_data().state());
533 486
534 TestBlacklistedUpdates(); 487 TestBlacklistedUpdates();
535 } 488 }
536 489
537 TEST_F(ManagePasswordsStateTest, RequestCredentialsAddBlacklisted) { 490 TEST_F(ManagePasswordsStateTest, RequestCredentialsAddBlacklisted) {
538 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 491 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
539 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 492 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
540 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
541 federated_credentials.emplace_back(
542 new autofill::PasswordForm(test_federated_form()));
543 const GURL origin = test_local_form().origin; 493 const GURL origin = test_local_form().origin;
544 passwords_data().OnRequestCredentials( 494 passwords_data().OnRequestCredentials(std::move(local_credentials), origin);
545 std::move(local_credentials), std::move(federated_credentials), origin);
546 passwords_data().set_credentials_callback(base::Bind( 495 passwords_data().set_credentials_callback(base::Bind(
547 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); 496 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this)));
548 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 497 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
549 passwords_data().state()); 498 passwords_data().state());
550 499
551 TestBlacklistedUpdates(); 500 TestBlacklistedUpdates();
552 } 501 }
553 502
554 TEST_F(ManagePasswordsStateTest, AutoSigninAddBlacklisted) { 503 TEST_F(ManagePasswordsStateTest, AutoSigninAddBlacklisted) {
555 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 504 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 base::MakeUnique<autofill::PasswordForm>(test_local_form())); 551 base::MakeUnique<autofill::PasswordForm>(test_local_form()));
603 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 552 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
604 CreateFormManager()); 553 CreateFormManager());
605 test_form_manager->ProvisionallySave( 554 test_form_manager->ProvisionallySave(
606 test_submitted_form(), 555 test_submitted_form(),
607 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 556 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
608 passwords_data().OnUpdatePassword(std::move(test_form_manager)); 557 passwords_data().OnUpdatePassword(std::move(test_form_manager));
609 558
610 EXPECT_THAT(passwords_data().GetCurrentForms(), 559 EXPECT_THAT(passwords_data().GetCurrentForms(),
611 ElementsAre(Pointee(test_local_form()))); 560 ElementsAre(Pointee(test_local_form())));
612 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
613 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 561 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
614 passwords_data().state()); 562 passwords_data().state());
615 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 563 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
616 ASSERT_TRUE(passwords_data().form_manager()); 564 ASSERT_TRUE(passwords_data().form_manager());
617 EXPECT_EQ(test_submitted_form(), 565 EXPECT_EQ(test_submitted_form(),
618 passwords_data().form_manager()->pending_credentials()); 566 passwords_data().form_manager()->pending_credentials());
619 TestAllUpdates(); 567 TestAllUpdates();
620 } 568 }
621 569
622 TEST_F(ManagePasswordsStateTest, AndroidPasswordUpdateSubmitted) { 570 TEST_F(ManagePasswordsStateTest, AndroidPasswordUpdateSubmitted) {
623 autofill::PasswordForm android_form; 571 autofill::PasswordForm android_form;
624 android_form.signon_realm = "android://dHJhc2g=@com.example.android/"; 572 android_form.signon_realm = "android://dHJhc2g=@com.example.android/";
625 android_form.origin = GURL(android_form.signon_realm); 573 android_form.origin = GURL(android_form.signon_realm);
626 android_form.username_value = test_submitted_form().username_value; 574 android_form.username_value = test_submitted_form().username_value;
627 android_form.password_value = base::ASCIIToUTF16("old pass"); 575 android_form.password_value = base::ASCIIToUTF16("old pass");
628 test_stored_forms().push_back( 576 test_stored_forms().push_back(
629 base::MakeUnique<autofill::PasswordForm>(android_form)); 577 base::MakeUnique<autofill::PasswordForm>(android_form));
630 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 578 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
631 CreateFormManager()); 579 CreateFormManager());
632 test_form_manager->ProvisionallySave( 580 test_form_manager->ProvisionallySave(
633 test_submitted_form(), 581 test_submitted_form(),
634 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 582 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
635 passwords_data().OnUpdatePassword(std::move(test_form_manager)); 583 passwords_data().OnUpdatePassword(std::move(test_form_manager));
636 584
637 EXPECT_THAT(passwords_data().GetCurrentForms(), 585 EXPECT_THAT(passwords_data().GetCurrentForms(),
638 ElementsAre(Pointee(android_form))); 586 ElementsAre(Pointee(android_form)));
639 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
640 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 587 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
641 passwords_data().state()); 588 passwords_data().state());
642 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); 589 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin());
643 ASSERT_TRUE(passwords_data().form_manager()); 590 ASSERT_TRUE(passwords_data().form_manager());
644 android_form.password_value = test_submitted_form().password_value; 591 android_form.password_value = test_submitted_form().password_value;
645 EXPECT_EQ(android_form, 592 EXPECT_EQ(android_form,
646 passwords_data().form_manager()->pending_credentials()); 593 passwords_data().form_manager()->pending_credentials());
647 TestAllUpdates(); 594 TestAllUpdates();
648 } 595 }
649 596
650 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmittedWithFederations) { 597 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmittedWithFederations) {
651 test_stored_forms().push_back( 598 test_stored_forms().push_back(
652 base::MakeUnique<autofill::PasswordForm>(test_local_form())); 599 base::MakeUnique<autofill::PasswordForm>(test_local_form()));
653 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 600 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
654 CreateFormManagerWithFederation()); 601 CreateFormManagerWithFederation());
655 test_form_manager->ProvisionallySave( 602 test_form_manager->ProvisionallySave(
656 test_submitted_form(), 603 test_submitted_form(),
657 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 604 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
658 passwords_data().OnUpdatePassword(std::move(test_form_manager)); 605 passwords_data().OnUpdatePassword(std::move(test_form_manager));
659 606
660 EXPECT_THAT(passwords_data().GetCurrentForms(), 607 EXPECT_THAT(passwords_data().GetCurrentForms(),
661 UnorderedElementsAre(Pointee(test_local_form()), 608 UnorderedElementsAre(Pointee(test_local_form()),
662 Pointee(test_local_federated_form()))); 609 Pointee(test_local_federated_form())));
663 EXPECT_THAT(passwords_data().federation_providers_forms(), IsEmpty());
664 } 610 }
665 611
666 TEST_F(ManagePasswordsStateTest, ChooseCredentialLocal) { 612 TEST_F(ManagePasswordsStateTest, ChooseCredentialLocal) {
667 passwords_data().OnRequestCredentials( 613 passwords_data().OnRequestCredentials(
668 std::vector<std::unique_ptr<autofill::PasswordForm>>(), 614 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
669 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
670 test_local_form().origin); 615 test_local_form().origin);
671 passwords_data().set_credentials_callback(base::Bind( 616 passwords_data().set_credentials_callback(base::Bind(
672 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); 617 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this)));
673 EXPECT_CALL(*this, CredentialCallback(&test_local_form())); 618 EXPECT_CALL(*this, CredentialCallback(&test_local_form()));
674 passwords_data().ChooseCredential(&test_local_form()); 619 passwords_data().ChooseCredential(&test_local_form());
675 } 620 }
676 621
677 TEST_F(ManagePasswordsStateTest, ChooseCredentialEmpty) { 622 TEST_F(ManagePasswordsStateTest, ChooseCredentialEmpty) {
678 passwords_data().OnRequestCredentials( 623 passwords_data().OnRequestCredentials(
679 std::vector<std::unique_ptr<autofill::PasswordForm>>(), 624 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
680 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
681 test_local_form().origin); 625 test_local_form().origin);
682 passwords_data().set_credentials_callback(base::Bind( 626 passwords_data().set_credentials_callback(base::Bind(
683 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); 627 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this)));
684 password_manager::CredentialInfo credential_info(
685 test_federated_form(),
686 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
687 EXPECT_CALL(*this, CredentialCallback(nullptr)); 628 EXPECT_CALL(*this, CredentialCallback(nullptr));
688 passwords_data().ChooseCredential(nullptr); 629 passwords_data().ChooseCredential(nullptr);
689 } 630 }
690 631
691 TEST_F(ManagePasswordsStateTest, ChooseCredentialLocalWithNonEmptyFederation) { 632 TEST_F(ManagePasswordsStateTest, ChooseCredentialLocalWithNonEmptyFederation) {
692 passwords_data().OnRequestCredentials( 633 passwords_data().OnRequestCredentials(
693 std::vector<std::unique_ptr<autofill::PasswordForm>>(), 634 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
694 std::vector<std::unique_ptr<autofill::PasswordForm>>(),
695 test_local_form().origin); 635 test_local_form().origin);
696 passwords_data().set_credentials_callback(base::Bind( 636 passwords_data().set_credentials_callback(base::Bind(
697 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); 637 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this)));
698 EXPECT_CALL(*this, CredentialCallback(&test_local_federated_form())); 638 EXPECT_CALL(*this, CredentialCallback(&test_local_federated_form()));
699 passwords_data().ChooseCredential(&test_local_federated_form()); 639 passwords_data().ChooseCredential(&test_local_federated_form());
700 } 640 }
701 641
702 } // namespace 642 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_state.cc ('k') | chrome/browser/ui/passwords/manage_passwords_ui_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698