OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 CommandLine *cl = CommandLine::ForCurrentProcess(); | 108 CommandLine *cl = CommandLine::ForCurrentProcess(); |
109 cl->AppendSwitch(switches::kTestType); | 109 cl->AppendSwitch(switches::kTestType); |
110 #endif | 110 #endif |
111 } | 111 } |
112 | 112 |
113 virtual void TearDown() { | 113 virtual void TearDown() { |
114 profile_manager_.reset(); | 114 profile_manager_.reset(); |
115 message_loop_.RunAllPending(); | 115 message_loop_.RunAllPending(); |
116 } | 116 } |
117 | 117 |
118 class MockObserver : public ProfileManagerObserver { | 118 class MockObserver { |
119 public: | 119 public: |
120 MOCK_METHOD2(OnProfileCreated, void(Profile* profile, Status status)); | 120 MOCK_METHOD2(OnProfileCreated, |
| 121 void(Profile* profile, Profile::CreateStatus status)); |
121 }; | 122 }; |
122 | 123 |
123 #if defined(OS_CHROMEOS) | 124 #if defined(OS_CHROMEOS) |
124 // Do not change order of stub_cros_enabler_, which needs to be constructed | 125 // Do not change order of stub_cros_enabler_, which needs to be constructed |
125 // before io_thread_ which requires CrosLibrary to be initialized to construct | 126 // before io_thread_ which requires CrosLibrary to be initialized to construct |
126 // its data member pref_proxy_config_tracker_ on ChromeOS. | 127 // its data member pref_proxy_config_tracker_ on ChromeOS. |
127 chromeos::ScopedStubCrosEnabler stub_cros_enabler_; | 128 chromeos::ScopedStubCrosEnabler stub_cros_enabler_; |
128 #endif | 129 #endif |
129 | 130 |
130 // The path to temporary directory used to contain the test operations. | 131 // The path to temporary directory used to contain the test operations. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 // Make sure any pending tasks run before we destroy the profiles. | 222 // Make sure any pending tasks run before we destroy the profiles. |
222 message_loop_.RunAllPending(); | 223 message_loop_.RunAllPending(); |
223 | 224 |
224 profile_manager_.reset(); | 225 profile_manager_.reset(); |
225 | 226 |
226 // Make sure history cleans up correctly. | 227 // Make sure history cleans up correctly. |
227 message_loop_.RunAllPending(); | 228 message_loop_.RunAllPending(); |
228 } | 229 } |
229 | 230 |
230 MATCHER(NotFail, "Profile creation failure status is not reported.") { | 231 MATCHER(NotFail, "Profile creation failure status is not reported.") { |
231 return arg == ProfileManagerObserver::STATUS_CREATED || | 232 return arg == Profile::CREATE_STATUS_CREATED || |
232 arg == ProfileManagerObserver::STATUS_INITIALIZED; | 233 arg == Profile::CREATE_STATUS_INITIALIZED; |
233 } | 234 } |
234 | 235 |
235 // Tests asynchronous profile creation mechanism. | 236 // Tests asynchronous profile creation mechanism. |
236 TEST_F(ProfileManagerTest, DISABLED_CreateProfileAsync) { | 237 TEST_F(ProfileManagerTest, DISABLED_CreateProfileAsync) { |
237 FilePath dest_path = | 238 FilePath dest_path = |
238 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile")); | 239 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile")); |
239 | 240 |
240 MockObserver mock_observer; | 241 MockObserver mock_observer; |
241 EXPECT_CALL(mock_observer, OnProfileCreated( | 242 EXPECT_CALL(mock_observer, OnProfileCreated( |
242 testing::NotNull(), NotFail())).Times(testing::AtLeast(1)); | 243 testing::NotNull(), NotFail())).Times(testing::AtLeast(1)); |
243 | 244 |
244 profile_manager_->CreateProfileAsync(dest_path, &mock_observer); | 245 profile_manager_->CreateProfileAsync(dest_path, |
| 246 base::Bind(&MockObserver::OnProfileCreated, |
| 247 base::Unretained(&mock_observer))); |
245 | 248 |
246 message_loop_.RunAllPending(); | 249 message_loop_.RunAllPending(); |
247 } | 250 } |
248 | 251 |
249 MATCHER(SameNotNull, "The same non-NULL value for all calls.") { | 252 MATCHER(SameNotNull, "The same non-NULL value for all calls.") { |
250 if (!g_created_profile) | 253 if (!g_created_profile) |
251 g_created_profile = arg; | 254 g_created_profile = arg; |
252 return arg != NULL && arg == g_created_profile; | 255 return arg != NULL && arg == g_created_profile; |
253 } | 256 } |
254 | 257 |
255 TEST_F(ProfileManagerTest, CreateProfileAsyncMultipleRequests) { | 258 TEST_F(ProfileManagerTest, CreateProfileAsyncMultipleRequests) { |
256 FilePath dest_path = | 259 FilePath dest_path = |
257 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile")); | 260 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile")); |
258 | 261 |
259 g_created_profile = NULL; | 262 g_created_profile = NULL; |
260 | 263 |
261 MockObserver mock_observer1; | 264 MockObserver mock_observer1; |
262 EXPECT_CALL(mock_observer1, OnProfileCreated( | 265 EXPECT_CALL(mock_observer1, OnProfileCreated( |
263 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); | 266 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); |
264 MockObserver mock_observer2; | 267 MockObserver mock_observer2; |
265 EXPECT_CALL(mock_observer2, OnProfileCreated( | 268 EXPECT_CALL(mock_observer2, OnProfileCreated( |
266 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); | 269 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); |
267 MockObserver mock_observer3; | 270 MockObserver mock_observer3; |
268 EXPECT_CALL(mock_observer3, OnProfileCreated( | 271 EXPECT_CALL(mock_observer3, OnProfileCreated( |
269 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); | 272 SameNotNull(), NotFail())).Times(testing::AtLeast(1)); |
270 | 273 |
271 profile_manager_->CreateProfileAsync(dest_path, &mock_observer1); | 274 profile_manager_->CreateProfileAsync(dest_path, |
272 profile_manager_->CreateProfileAsync(dest_path, &mock_observer2); | 275 base::Bind(&MockObserver::OnProfileCreated, |
273 profile_manager_->CreateProfileAsync(dest_path, &mock_observer3); | 276 base::Unretained(&mock_observer1))); |
| 277 profile_manager_->CreateProfileAsync(dest_path, |
| 278 base::Bind(&MockObserver::OnProfileCreated, |
| 279 base::Unretained(&mock_observer2))); |
| 280 profile_manager_->CreateProfileAsync(dest_path, |
| 281 base::Bind(&MockObserver::OnProfileCreated, |
| 282 base::Unretained(&mock_observer3))); |
274 | 283 |
275 message_loop_.RunAllPending(); | 284 message_loop_.RunAllPending(); |
276 } | 285 } |
277 | 286 |
278 TEST_F(ProfileManagerTest, CreateProfilesAsync) { | 287 TEST_F(ProfileManagerTest, CreateProfilesAsync) { |
279 FilePath dest_path1 = | 288 FilePath dest_path1 = |
280 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile 1")); | 289 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile 1")); |
281 FilePath dest_path2 = | 290 FilePath dest_path2 = |
282 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile 2")); | 291 temp_dir_.path().Append(FILE_PATH_LITERAL("New Profile 2")); |
283 | 292 |
284 MockObserver mock_observer; | 293 MockObserver mock_observer; |
285 EXPECT_CALL(mock_observer, OnProfileCreated( | 294 EXPECT_CALL(mock_observer, OnProfileCreated( |
286 testing::NotNull(), NotFail())).Times(testing::AtLeast(3)); | 295 testing::NotNull(), NotFail())).Times(testing::AtLeast(3)); |
287 | 296 |
288 profile_manager_->CreateProfileAsync(dest_path1, &mock_observer); | 297 profile_manager_->CreateProfileAsync(dest_path1, |
289 profile_manager_->CreateProfileAsync(dest_path2, &mock_observer); | 298 base::Bind(&MockObserver::OnProfileCreated, |
| 299 base::Unretained(&mock_observer))); |
| 300 profile_manager_->CreateProfileAsync(dest_path2, |
| 301 base::Bind(&MockObserver::OnProfileCreated, |
| 302 base::Unretained(&mock_observer))); |
290 | 303 |
291 message_loop_.RunAllPending(); | 304 message_loop_.RunAllPending(); |
292 } | 305 } |
293 | 306 |
294 TEST_F(ProfileManagerTest, AutoloadProfilesWithBackgroundApps) { | 307 TEST_F(ProfileManagerTest, AutoloadProfilesWithBackgroundApps) { |
295 ProfileInfoCache& cache = profile_manager_->GetProfileInfoCache(); | 308 ProfileInfoCache& cache = profile_manager_->GetProfileInfoCache(); |
296 | 309 |
297 EXPECT_EQ(0u, cache.GetNumberOfProfiles()); | 310 EXPECT_EQ(0u, cache.GetNumberOfProfiles()); |
298 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_1"), | 311 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_1"), |
299 ASCIIToUTF16("name_1"), string16(), 0); | 312 ASCIIToUTF16("name_1"), string16(), 0); |
300 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_2"), | 313 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_2"), |
301 ASCIIToUTF16("name_2"), string16(), 0); | 314 ASCIIToUTF16("name_2"), string16(), 0); |
302 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_3"), | 315 cache.AddProfileToCache(cache.GetUserDataDir().AppendASCII("path_3"), |
303 ASCIIToUTF16("name_3"), string16(), 0); | 316 ASCIIToUTF16("name_3"), string16(), 0); |
304 cache.SetBackgroundStatusOfProfileAtIndex(0, true); | 317 cache.SetBackgroundStatusOfProfileAtIndex(0, true); |
305 cache.SetBackgroundStatusOfProfileAtIndex(2, true); | 318 cache.SetBackgroundStatusOfProfileAtIndex(2, true); |
306 EXPECT_EQ(3u, cache.GetNumberOfProfiles()); | 319 EXPECT_EQ(3u, cache.GetNumberOfProfiles()); |
307 | 320 |
308 profile_manager_->AutoloadProfiles(); | 321 profile_manager_->AutoloadProfiles(); |
309 | 322 |
310 EXPECT_EQ(2u, profile_manager_->GetLoadedProfiles().size()); | 323 EXPECT_EQ(2u, profile_manager_->GetLoadedProfiles().size()); |
311 } | 324 } |
OLD | NEW |