| OLD | NEW |
| 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/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/password_manager/password_store_factory.h" | 9 #include "chrome/browser/password_manager/password_store_factory.h" |
| 10 #include "chrome/browser/profiles/profile_info_cache.h" | 10 #include "chrome/browser/profiles/profile_info_cache.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 | 71 |
| 72 virtual ~ProfileRemovalObserver() { | 72 virtual ~ProfileRemovalObserver() { |
| 73 g_browser_process->profile_manager()->GetProfileInfoCache().RemoveObserver( | 73 g_browser_process->profile_manager()->GetProfileInfoCache().RemoveObserver( |
| 74 this); | 74 this); |
| 75 } | 75 } |
| 76 | 76 |
| 77 std::string last_used_profile_name() { return last_used_profile_name_; } | 77 std::string last_used_profile_name() { return last_used_profile_name_; } |
| 78 | 78 |
| 79 // ProfileInfoCacheObserver overrides: | 79 // ProfileInfoCacheObserver overrides: |
| 80 virtual void OnProfileWillBeRemoved( | 80 virtual void OnProfileWillBeRemoved( |
| 81 const base::FilePath& profile_path) OVERRIDE { | 81 const base::FilePath& profile_path) override { |
| 82 last_used_profile_name_ = g_browser_process->local_state()->GetString( | 82 last_used_profile_name_ = g_browser_process->local_state()->GetString( |
| 83 prefs::kProfileLastUsed); | 83 prefs::kProfileLastUsed); |
| 84 } | 84 } |
| 85 | 85 |
| 86 private: | 86 private: |
| 87 std::string last_used_profile_name_; | 87 std::string last_used_profile_name_; |
| 88 | 88 |
| 89 DISALLOW_COPY_AND_ASSIGN(ProfileRemovalObserver); | 89 DISALLOW_COPY_AND_ASSIGN(ProfileRemovalObserver); |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 // The class serves to retrieve passwords from PasswordStore asynchronously. It | 92 // The class serves to retrieve passwords from PasswordStore asynchronously. It |
| 93 // used by ProfileManagerBrowserTest.DeletePasswords on some platforms. | 93 // used by ProfileManagerBrowserTest.DeletePasswords on some platforms. |
| 94 class PasswordStoreConsumerVerifier : | 94 class PasswordStoreConsumerVerifier : |
| 95 public password_manager::PasswordStoreConsumer { | 95 public password_manager::PasswordStoreConsumer { |
| 96 public: | 96 public: |
| 97 PasswordStoreConsumerVerifier() : called_(false) {} | 97 PasswordStoreConsumerVerifier() : called_(false) {} |
| 98 | 98 |
| 99 virtual void OnGetPasswordStoreResults( | 99 virtual void OnGetPasswordStoreResults( |
| 100 const std::vector<autofill::PasswordForm*>& results) OVERRIDE { | 100 const std::vector<autofill::PasswordForm*>& results) override { |
| 101 EXPECT_FALSE(called_); | 101 EXPECT_FALSE(called_); |
| 102 called_ = true; | 102 called_ = true; |
| 103 password_entries_.clear(); | 103 password_entries_.clear(); |
| 104 password_entries_.assign(results.begin(), results.end()); | 104 password_entries_.assign(results.begin(), results.end()); |
| 105 } | 105 } |
| 106 | 106 |
| 107 bool IsCalled() const { return called_; } | 107 bool IsCalled() const { return called_; } |
| 108 | 108 |
| 109 const std::vector<autofill::PasswordForm*>& GetPasswords() const { | 109 const std::vector<autofill::PasswordForm*>& GetPasswords() const { |
| 110 return password_entries_.get(); | 110 return password_entries_.get(); |
| 111 } | 111 } |
| 112 private: | 112 private: |
| 113 ScopedVector<autofill::PasswordForm> password_entries_; | 113 ScopedVector<autofill::PasswordForm> password_entries_; |
| 114 bool called_; | 114 bool called_; |
| 115 }; | 115 }; |
| 116 | 116 |
| 117 } // namespace | 117 } // namespace |
| 118 | 118 |
| 119 // This file contains tests for the ProfileManager that require a heavyweight | 119 // This file contains tests for the ProfileManager that require a heavyweight |
| 120 // InProcessBrowserTest. These include tests involving profile deletion. | 120 // InProcessBrowserTest. These include tests involving profile deletion. |
| 121 | 121 |
| 122 // TODO(jeremy): crbug.com/103355 - These tests should be enabled on all | 122 // TODO(jeremy): crbug.com/103355 - These tests should be enabled on all |
| 123 // platforms. | 123 // platforms. |
| 124 class ProfileManagerBrowserTest : public InProcessBrowserTest { | 124 class ProfileManagerBrowserTest : public InProcessBrowserTest { |
| 125 protected: | 125 protected: |
| 126 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 126 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 127 #if defined(OS_CHROMEOS) | 127 #if defined(OS_CHROMEOS) |
| 128 command_line->AppendSwitch( | 128 command_line->AppendSwitch( |
| 129 chromeos::switches::kIgnoreUserProfileMappingForTests); | 129 chromeos::switches::kIgnoreUserProfileMappingForTests); |
| 130 #endif | 130 #endif |
| 131 } | 131 } |
| 132 }; | 132 }; |
| 133 | 133 |
| 134 #if defined(OS_MACOSX) | 134 #if defined(OS_MACOSX) |
| 135 | 135 |
| 136 // Delete single profile and make sure a new one is created. | 136 // Delete single profile and make sure a new one is created. |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 // Make sure that last used profile preference is set correctly. | 209 // Make sure that last used profile preference is set correctly. |
| 210 Profile* last_used = ProfileManager::GetLastUsedProfile(); | 210 Profile* last_used = ProfileManager::GetLastUsedProfile(); |
| 211 EXPECT_EQ(new_profile_path, last_used->GetPath()); | 211 EXPECT_EQ(new_profile_path, last_used->GetPath()); |
| 212 } | 212 } |
| 213 #endif // OS_MACOSX | 213 #endif // OS_MACOSX |
| 214 | 214 |
| 215 #if defined(OS_CHROMEOS) | 215 #if defined(OS_CHROMEOS) |
| 216 | 216 |
| 217 class ProfileManagerCrOSBrowserTest : public ProfileManagerBrowserTest { | 217 class ProfileManagerCrOSBrowserTest : public ProfileManagerBrowserTest { |
| 218 protected: | 218 protected: |
| 219 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 219 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 220 // Use a user hash other than the default chrome::kTestUserProfileDir | 220 // Use a user hash other than the default chrome::kTestUserProfileDir |
| 221 // so that the prefix case is tested. | 221 // so that the prefix case is tested. |
| 222 command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, | 222 command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, |
| 223 "test-user-hash"); | 223 "test-user-hash"); |
| 224 } | 224 } |
| 225 }; | 225 }; |
| 226 | 226 |
| 227 IN_PROC_BROWSER_TEST_F(ProfileManagerCrOSBrowserTest, GetLastUsedProfile) { | 227 IN_PROC_BROWSER_TEST_F(ProfileManagerCrOSBrowserTest, GetLastUsedProfile) { |
| 228 // Make sure that last used profile is correct. | 228 // Make sure that last used profile is correct. |
| 229 Profile* last_used_profile = ProfileManager::GetLastUsedProfile(); | 229 Profile* last_used_profile = ProfileManager::GetLastUsedProfile(); |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 run_loop.QuitClosure()); | 443 run_loop.QuitClosure()); |
| 444 EXPECT_TRUE(password_store->ScheduleTask(task)); | 444 EXPECT_TRUE(password_store->ScheduleTask(task)); |
| 445 run_loop.Run(); | 445 run_loop.Run(); |
| 446 | 446 |
| 447 EXPECT_TRUE(verify_add.IsCalled()); | 447 EXPECT_TRUE(verify_add.IsCalled()); |
| 448 EXPECT_EQ(1u, verify_add.GetPasswords().size()); | 448 EXPECT_EQ(1u, verify_add.GetPasswords().size()); |
| 449 EXPECT_TRUE(verify_delete.IsCalled()); | 449 EXPECT_TRUE(verify_delete.IsCalled()); |
| 450 EXPECT_EQ(0u, verify_delete.GetPasswords().size()); | 450 EXPECT_EQ(0u, verify_delete.GetPasswords().size()); |
| 451 } | 451 } |
| 452 #endif // !defined(OS_WIN) && !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 452 #endif // !defined(OS_WIN) && !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
| OLD | NEW |