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

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

Issue 441643007: ManagePasswordsUIController should make a deep copy of values which it doesn't own. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/metrics/histogram_samples.h" 5 #include "base/metrics/histogram_samples.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/test/statistics_delta_reader.h" 8 #include "base/test/statistics_delta_reader.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { 87 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) {
88 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 88 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
89 autofill::PasswordFormMap map; 89 autofill::PasswordFormMap map;
90 map[kTestUsername] = &test_form(); 90 map[kTestUsername] = &test_form();
91 controller()->OnPasswordAutofilled(map); 91 controller()->OnPasswordAutofilled(map);
92 92
93 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 93 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state());
94 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 94 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
95 EXPECT_EQ(test_form().origin, controller()->origin()); 95 EXPECT_EQ(test_form().origin, controller()->origin());
96 EXPECT_EQ(1u, controller()->best_matches().size());
97 ASSERT_EQ(1u, controller()->best_matches().count(kTestUsername));
98
99 // Controller should store a separate copy of the form as it doesn't own it.
100 EXPECT_NE(&test_form(),
101 controller()->best_matches().find(kTestUsername)->second);
96 102
97 ManagePasswordsIconMock mock; 103 ManagePasswordsIconMock mock;
98 controller()->UpdateIconAndBubbleState(&mock); 104 controller()->UpdateIconAndBubbleState(&mock);
99 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); 105 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
100 } 106 }
101 107
102 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { 108 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) {
103 password_manager::StubPasswordManagerClient client; 109 password_manager::StubPasswordManagerClient client;
104 password_manager::StubPasswordManagerDriver driver; 110 password_manager::StubPasswordManagerDriver driver;
105 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 111 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 TEST_F(ManagePasswordsUIControllerTest, BlacklistBlockedAutofill) { 235 TEST_F(ManagePasswordsUIControllerTest, BlacklistBlockedAutofill) {
230 test_form().blacklisted_by_user = true; 236 test_form().blacklisted_by_user = true;
231 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 237 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
232 autofill::PasswordFormMap map; 238 autofill::PasswordFormMap map;
233 map[kTestUsername] = &test_form(); 239 map[kTestUsername] = &test_form();
234 controller()->OnBlacklistBlockedAutofill(map); 240 controller()->OnBlacklistBlockedAutofill(map);
235 241
236 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); 242 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state());
237 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 243 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
238 EXPECT_EQ(test_form().origin, controller()->origin()); 244 EXPECT_EQ(test_form().origin, controller()->origin());
245 EXPECT_EQ(1u, controller()->best_matches().size());
246 ASSERT_EQ(1u, controller()->best_matches().count(kTestUsername));
247
248 // Controller should store a separate copy of the form as it doesn't own it.
249 EXPECT_NE(&test_form(),
250 controller()->best_matches().find(kTestUsername)->second);
239 251
240 ManagePasswordsIconMock mock; 252 ManagePasswordsIconMock mock;
241 controller()->UpdateIconAndBubbleState(&mock); 253 controller()->UpdateIconAndBubbleState(&mock);
242 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state()); 254 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state());
243 } 255 }
244 256
245 TEST_F(ManagePasswordsUIControllerTest, ClickedUnblacklist) { 257 TEST_F(ManagePasswordsUIControllerTest, ClickedUnblacklist) {
246 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 258 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
247 autofill::PasswordFormMap map; 259 autofill::PasswordFormMap map;
248 map[kTestUsername] = &test_form(); 260 map[kTestUsername] = &test_form();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 new password_manager::PasswordFormManager( 319 new password_manager::PasswordFormManager(
308 NULL, &client, &driver, test_form(), false)); 320 NULL, &client, &driver, test_form(), false));
309 321
310 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); 322 controller()->OnAutomaticPasswordSave(test_form_manager.Pass());
311 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state()); 323 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state());
312 324
313 ManagePasswordsIconMock mock; 325 ManagePasswordsIconMock mock;
314 controller()->UpdateIconAndBubbleState(&mock); 326 controller()->UpdateIconAndBubbleState(&mock);
315 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); 327 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
316 } 328 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698