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

Side by Side Diff: components/password_manager/core/browser/password_form_manager_unittest.cc

Issue 1096983002: Update usages of std::map to use ScopedPtrMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@passwordmanager-scopedmemory
Patch Set: Rebase. Created 5 years, 5 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/location.h" 5 #include "base/location.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/prefs/pref_registry_simple.h" 7 #include "base/prefs/pref_registry_simple.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/prefs/testing_pref_service.h" 9 #include "base/prefs/testing_pref_service.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 class TestPasswordManager : public PasswordManager { 131 class TestPasswordManager : public PasswordManager {
132 public: 132 public:
133 explicit TestPasswordManager(TestPasswordManagerClient* client) 133 explicit TestPasswordManager(TestPasswordManagerClient* client)
134 : PasswordManager(client), wait_for_username_(false) {} 134 : PasswordManager(client), wait_for_username_(false) {}
135 135
136 void Autofill(password_manager::PasswordManagerDriver* driver, 136 void Autofill(password_manager::PasswordManagerDriver* driver,
137 const autofill::PasswordForm& form_for_autofill, 137 const autofill::PasswordForm& form_for_autofill,
138 const autofill::PasswordFormMap& best_matches, 138 const autofill::PasswordFormMap& best_matches,
139 const autofill::PasswordForm& preferred_match, 139 const autofill::PasswordForm& preferred_match,
140 bool wait_for_username) const override { 140 bool wait_for_username) const override {
141 best_matches_ = best_matches; 141 best_matches_ = &best_matches;
142 wait_for_username_ = wait_for_username; 142 wait_for_username_ = wait_for_username;
143 } 143 }
144 144
145 const autofill::PasswordFormMap& GetLatestBestMatches() { 145 const autofill::PasswordFormMap& GetLatestBestMatches() {
146 return best_matches_; 146 return *best_matches_;
147 } 147 }
148 148
149 bool GetLatestWaitForUsername() { return wait_for_username_; } 149 bool GetLatestWaitForUsername() { return wait_for_username_; }
150 150
151 private: 151 private:
152 // Points to a PasswordFormMap owned by PasswordFormManager.
152 // Marked mutable to get around constness of Autofill(). 153 // Marked mutable to get around constness of Autofill().
153 // TODO(vabr): This should be rewritten as a mock of PasswordManager, and the 154 // TODO(vabr): This should be rewritten as a mock of PasswordManager, and the
154 // interesting arguments should be saved via GMock actions instead. 155 // interesting arguments should be saved via GMock actions instead.
155 mutable autofill::PasswordFormMap best_matches_; 156 mutable const autofill::PasswordFormMap* best_matches_;
156 mutable bool wait_for_username_; 157 mutable bool wait_for_username_;
157 }; 158 };
158 159
159 } // namespace 160 } // namespace
160 161
161 class PasswordFormManagerTest : public testing::Test { 162 class PasswordFormManagerTest : public testing::Test {
162 public: 163 public:
163 PasswordFormManagerTest() {} 164 PasswordFormManagerTest() {}
164 165
165 // Types of possible outcomes of simulated matching, see 166 // Types of possible outcomes of simulated matching, see
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 return &p->pending_credentials_; 215 return &p->pending_credentials_;
215 } 216 }
216 217
217 void SimulateMatchingPhase(PasswordFormManager* p, 218 void SimulateMatchingPhase(PasswordFormManager* p,
218 ResultOfSimulatedMatching result) { 219 ResultOfSimulatedMatching result) {
219 // Roll up the state to mock out the matching phase. 220 // Roll up the state to mock out the matching phase.
220 p->state_ = PasswordFormManager::POST_MATCHING_PHASE; 221 p->state_ = PasswordFormManager::POST_MATCHING_PHASE;
221 if (result == RESULT_NO_MATCH) 222 if (result == RESULT_NO_MATCH)
222 return; 223 return;
223 224
224 PasswordForm* match = new PasswordForm(saved_match_); 225 scoped_ptr<PasswordForm> match(new PasswordForm(saved_match_));
225 // Heap-allocated form is owned by p. 226 p->preferred_match_ = match.get();
226 p->best_matches_[match->username_value] = match; 227 base::string16 username = match->username_value;
227 p->preferred_match_ = match; 228 p->best_matches_.insert(username, match.Pass());
228 } 229 }
229 230
230 void SanitizePossibleUsernames(PasswordFormManager* p, PasswordForm* form) { 231 void SanitizePossibleUsernames(PasswordFormManager* p, PasswordForm* form) {
231 p->SanitizePossibleUsernames(form); 232 p->SanitizePossibleUsernames(form);
232 } 233 }
233 234
234 bool IgnoredResult(PasswordFormManager* p, PasswordForm* form) { 235 bool IgnoredResult(PasswordFormManager* p, PasswordForm* form) {
235 return p->ShouldIgnoreResult(*form); 236 return p->ShouldIgnoreResult(*form);
236 } 237 }
237 238
(...skipping 1300 matching lines...) Expand 10 before | Expand all | Expand 10 after
1538 manager_creds.OnGetPasswordStoreResults(simulated_results.Pass()); 1539 manager_creds.OnGetPasswordStoreResults(simulated_results.Pass());
1539 Mock::VerifyAndClearExpectations(client()->mock_driver()); 1540 Mock::VerifyAndClearExpectations(client()->mock_driver());
1540 1541
1541 // Check that Autofill message was sent. 1542 // Check that Autofill message was sent.
1542 EXPECT_EQ(1u, password_manager.GetLatestBestMatches().size()); 1543 EXPECT_EQ(1u, password_manager.GetLatestBestMatches().size());
1543 // Check that we suggest, not autofill. 1544 // Check that we suggest, not autofill.
1544 EXPECT_TRUE(password_manager.GetLatestWaitForUsername()); 1545 EXPECT_TRUE(password_manager.GetLatestWaitForUsername());
1545 } 1546 }
1546 1547
1547 } // namespace password_manager 1548 } // namespace password_manager
OLDNEW
« no previous file with comments | « components/password_manager/core/browser/password_form_manager.cc ('k') | components/policy/core/common/schema.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698