OLD | NEW |
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 <map> | 5 #include <map> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 105 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
106 LoginManagerTest::SetUpInProcessBrowserTestFixture(); | 106 LoginManagerTest::SetUpInProcessBrowserTestFixture(); |
107 | 107 |
108 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); | 108 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); |
109 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); | 109 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); |
110 } | 110 } |
111 | 111 |
112 virtual void SetUpOnMainThread() OVERRIDE { | 112 virtual void SetUpOnMainThread() OVERRIDE { |
113 LoginManagerTest::SetUpOnMainThread(); | 113 LoginManagerTest::SetUpOnMainThread(); |
114 local_state_ = g_browser_process->local_state(); | 114 local_state_ = g_browser_process->local_state(); |
115 UserManager::Get()->AddObserver(this); | 115 GetUserManager()->AddObserver(this); |
116 } | 116 } |
117 | 117 |
118 virtual void TearDownOnMainThread() OVERRIDE { | 118 virtual void TearDownOnMainThread() OVERRIDE { |
119 UserManager::Get()->RemoveObserver(this); | 119 GetUserManager()->RemoveObserver(this); |
120 LoginManagerTest::TearDownOnMainThread(); | 120 LoginManagerTest::TearDownOnMainThread(); |
121 } | 121 } |
122 | 122 |
123 // UserManager::Observer overrides: | 123 // UserManager::Observer overrides: |
124 virtual void LocalStateChanged(UserManager* user_manager) OVERRIDE { | 124 virtual void LocalStateChanged(UserManager* user_manager) OVERRIDE { |
125 if (run_loop_) | 125 if (run_loop_) |
126 run_loop_->Quit(); | 126 run_loop_->Quit(); |
127 } | 127 } |
128 | 128 |
129 // Logs in |username|. | 129 // Logs in |username|. |
130 void LogIn(const std::string& username) { | 130 void LogIn(const std::string& username) { |
131 UserManager::Get()->UserLoggedIn(username, username, false); | 131 GetUserManager()->UserLoggedIn(username, username, false); |
132 } | 132 } |
133 | 133 |
134 // Stores old (pre-migration) user image info. | 134 // Stores old (pre-migration) user image info. |
135 void SetOldUserImageInfo(const std::string& username, | 135 void SetOldUserImageInfo(const std::string& username, |
136 int image_index, | 136 int image_index, |
137 const base::FilePath& image_path) { | 137 const base::FilePath& image_path) { |
138 RegisterUser(username); | 138 RegisterUser(username); |
139 DictionaryPrefUpdate images_pref(local_state_, "UserImages"); | 139 DictionaryPrefUpdate images_pref(local_state_, "UserImages"); |
140 base::DictionaryValue* image_properties = new base::DictionaryValue(); | 140 base::DictionaryValue* image_properties = new base::DictionaryValue(); |
141 image_properties->Set( | 141 image_properties->Set( |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 // Completes the download of all non-image profile data for the user | 218 // Completes the download of all non-image profile data for the user |
219 // |username|. This method must only be called after a profile data | 219 // |username|. This method must only be called after a profile data |
220 // download has been started. |url_fetcher_factory| will capture | 220 // download has been started. |url_fetcher_factory| will capture |
221 // the net::TestURLFetcher created by the ProfileDownloader to | 221 // the net::TestURLFetcher created by the ProfileDownloader to |
222 // download the profile image. | 222 // download the profile image. |
223 void CompleteProfileMetadataDownload( | 223 void CompleteProfileMetadataDownload( |
224 const std::string& username, | 224 const std::string& username, |
225 net::TestURLFetcherFactory* url_fetcher_factory) { | 225 net::TestURLFetcherFactory* url_fetcher_factory) { |
226 ProfileDownloader* profile_downloader = | 226 ProfileDownloader* profile_downloader = |
227 reinterpret_cast<UserImageManagerImpl*>( | 227 reinterpret_cast<UserImageManagerImpl*>( |
228 UserManager::Get()->GetUserImageManager(username))-> | 228 GetUserManager()->GetUserImageManager(username)) |
229 profile_downloader_.get(); | 229 ->profile_downloader_.get(); |
230 ASSERT_TRUE(profile_downloader); | 230 ASSERT_TRUE(profile_downloader); |
231 | 231 |
232 static_cast<OAuth2TokenService::Consumer*>(profile_downloader)-> | 232 static_cast<OAuth2TokenService::Consumer*>(profile_downloader)-> |
233 OnGetTokenSuccess(NULL, | 233 OnGetTokenSuccess(NULL, |
234 std::string(), | 234 std::string(), |
235 base::Time::Now() + base::TimeDelta::FromDays(1)); | 235 base::Time::Now() + base::TimeDelta::FromDays(1)); |
236 | 236 |
237 net::TestURLFetcher* fetcher = | 237 net::TestURLFetcher* fetcher = |
238 url_fetcher_factory->GetFetcherByID(0); | 238 url_fetcher_factory->GetFetcherByID(0); |
239 ASSERT_TRUE(fetcher); | 239 ASSERT_TRUE(fetcher); |
(...skipping 27 matching lines...) Expand all Loading... |
267 pref_change_registrar.Add("UserDisplayName", run_loop.QuitClosure()); | 267 pref_change_registrar.Add("UserDisplayName", run_loop.QuitClosure()); |
268 net::TestURLFetcher* fetcher = url_fetcher_factory->GetFetcherByID(0); | 268 net::TestURLFetcher* fetcher = url_fetcher_factory->GetFetcherByID(0); |
269 ASSERT_TRUE(fetcher); | 269 ASSERT_TRUE(fetcher); |
270 fetcher->SetResponseString(profile_image_data); | 270 fetcher->SetResponseString(profile_image_data); |
271 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, | 271 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, |
272 net::OK)); | 272 net::OK)); |
273 fetcher->set_response_code(200); | 273 fetcher->set_response_code(200); |
274 fetcher->delegate()->OnURLFetchComplete(fetcher); | 274 fetcher->delegate()->OnURLFetchComplete(fetcher); |
275 run_loop.Run(); | 275 run_loop.Run(); |
276 | 276 |
277 const User* user = UserManager::Get()->GetLoggedInUser(); | 277 const User* user = GetUserManager()->GetLoggedInUser(); |
278 ASSERT_TRUE(user); | 278 ASSERT_TRUE(user); |
279 UserImageManagerImpl* uim = reinterpret_cast<UserImageManagerImpl*>( | 279 UserImageManagerImpl* uim = reinterpret_cast<UserImageManagerImpl*>( |
280 UserManager::Get()->GetUserImageManager(user->email())); | 280 GetUserManager()->GetUserImageManager(user->email())); |
281 if (uim->job_.get()) { | 281 if (uim->job_.get()) { |
282 run_loop_.reset(new base::RunLoop); | 282 run_loop_.reset(new base::RunLoop); |
283 run_loop_->Run(); | 283 run_loop_->Run(); |
284 } | 284 } |
285 } | 285 } |
286 | 286 |
287 base::FilePath test_data_dir_; | 287 base::FilePath test_data_dir_; |
288 base::FilePath user_data_dir_; | 288 base::FilePath user_data_dir_; |
289 | 289 |
290 PrefService* local_state_; | 290 PrefService* local_state_; |
291 | 291 |
292 scoped_ptr<gfx::ImageSkia> decoded_image_; | 292 scoped_ptr<gfx::ImageSkia> decoded_image_; |
293 | 293 |
294 scoped_ptr<base::RunLoop> run_loop_; | 294 scoped_ptr<base::RunLoop> run_loop_; |
295 | 295 |
296 private: | 296 private: |
297 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); | 297 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); |
298 }; | 298 }; |
299 | 299 |
300 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { | 300 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { |
301 // Setup an old default (stock) user image. | 301 // Setup an old default (stock) user image. |
302 ScopedUserManagerEnabler(new MockUserManager); | 302 ScopedUserManagerEnabler(new MockUserManager); |
303 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 303 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
304 } | 304 } |
305 | 305 |
306 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { | 306 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { |
307 UserManager::Get()->GetUsers(); // Load users. | 307 GetUserManager()->GetUsers(); // Load users. |
308 // Old info preserved. | 308 // Old info preserved. |
309 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 309 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
310 LogIn(kTestUser1); | 310 LogIn(kTestUser1); |
311 // Image info is migrated now. | 311 // Image info is migrated now. |
312 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 312 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
313 } | 313 } |
314 | 314 |
315 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { | 315 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { |
316 // Setup two users with stock images. | 316 // Setup two users with stock images. |
317 ScopedUserManagerEnabler(new MockUserManager); | 317 ScopedUserManagerEnabler(new MockUserManager); |
318 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 318 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
319 SetOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 319 SetOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, |
320 base::FilePath()); | 320 base::FilePath()); |
321 } | 321 } |
322 | 322 |
323 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { | 323 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { |
324 UserManager::Get()->GetUsers(); // Load users. | 324 GetUserManager()->GetUsers(); // Load users. |
325 // Old info preserved. | 325 // Old info preserved. |
326 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 326 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
327 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 327 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, |
328 base::FilePath()); | 328 base::FilePath()); |
329 LogIn(kTestUser1); | 329 LogIn(kTestUser1); |
330 // Image info is migrated for the first user and unaffected for the rest. | 330 // Image info is migrated for the first user and unaffected for the rest. |
331 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 331 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
332 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 332 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, |
333 base::FilePath()); | 333 base::FilePath()); |
334 } | 334 } |
335 | 335 |
336 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { | 336 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { |
337 // Setup a user with non-JPEG image. | 337 // Setup a user with non-JPEG image. |
338 ScopedUserManagerEnabler(new MockUserManager); | 338 ScopedUserManagerEnabler(new MockUserManager); |
339 SaveUserImagePNG( | 339 SaveUserImagePNG( |
340 kTestUser1, kDefaultImageResourceIDs[kFirstDefaultImageIndex]); | 340 kTestUser1, kDefaultImageResourceIDs[kFirstDefaultImageIndex]); |
341 } | 341 } |
342 | 342 |
343 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { | 343 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { |
344 UserManager::Get()->GetUsers(); // Load users. | 344 GetUserManager()->GetUsers(); // Load users. |
345 // Old info preserved. | 345 // Old info preserved. |
346 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex, | 346 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex, |
347 GetUserImagePath(kTestUser1, "png")); | 347 GetUserImagePath(kTestUser1, "png")); |
348 const User* user = UserManager::Get()->FindUser(kTestUser1); | 348 const User* user = GetUserManager()->FindUser(kTestUser1); |
349 EXPECT_TRUE(user->image_is_stub()); | 349 EXPECT_TRUE(user->image_is_stub()); |
350 | 350 |
351 base::RunLoop run_loop; | 351 base::RunLoop run_loop; |
352 PrefChangeRegistrar pref_change_registrar_; | 352 PrefChangeRegistrar pref_change_registrar_; |
353 pref_change_registrar_.Init(local_state_); | 353 pref_change_registrar_.Init(local_state_); |
354 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); | 354 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); |
355 LogIn(kTestUser1); | 355 LogIn(kTestUser1); |
356 | 356 |
357 // Wait for migration. | 357 // Wait for migration. |
358 run_loop.Run(); | 358 run_loop.Run(); |
359 | 359 |
360 // Image info is migrated and the image is converted to JPG. | 360 // Image info is migrated and the image is converted to JPG. |
361 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex, | 361 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex, |
362 GetUserImagePath(kTestUser1, "jpg")); | 362 GetUserImagePath(kTestUser1, "jpg")); |
363 user = UserManager::Get()->GetLoggedInUser(); | 363 user = GetUserManager()->GetLoggedInUser(); |
364 ASSERT_TRUE(user); | 364 ASSERT_TRUE(user); |
365 EXPECT_FALSE(user->image_is_safe_format()); | 365 EXPECT_FALSE(user->image_is_safe_format()); |
366 // Check image dimensions. | 366 // Check image dimensions. |
367 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); | 367 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); |
368 EXPECT_EQ(saved_image.width(), user->GetImage().width()); | 368 EXPECT_EQ(saved_image.width(), user->GetImage().width()); |
369 EXPECT_EQ(saved_image.height(), user->GetImage().height()); | 369 EXPECT_EQ(saved_image.height(), user->GetImage().height()); |
370 } | 370 } |
371 | 371 |
372 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { | 372 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { |
373 UserManager::Get()->GetUsers(); // Load users. | 373 GetUserManager()->GetUsers(); // Load users. |
374 const User* user = UserManager::Get()->FindUser(kTestUser1); | 374 const User* user = GetUserManager()->FindUser(kTestUser1); |
375 ASSERT_TRUE(user); | 375 ASSERT_TRUE(user); |
376 // Wait for image load. | 376 // Wait for image load. |
377 if (user->image_index() == User::kInvalidImageIndex) { | 377 if (user->image_index() == User::kInvalidImageIndex) { |
378 content::WindowedNotificationObserver( | 378 content::WindowedNotificationObserver( |
379 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 379 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
380 content::NotificationService::AllSources()).Wait(); | 380 content::NotificationService::AllSources()).Wait(); |
381 } | 381 } |
382 // Now the migrated image is used. | 382 // Now the migrated image is used. |
383 EXPECT_TRUE(user->image_is_safe_format()); | 383 EXPECT_TRUE(user->image_is_safe_format()); |
384 // Check image dimensions. Images can't be compared since JPEG is lossy. | 384 // Check image dimensions. Images can't be compared since JPEG is lossy. |
385 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); | 385 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); |
386 EXPECT_EQ(saved_image.width(), user->GetImage().width()); | 386 EXPECT_EQ(saved_image.width(), user->GetImage().width()); |
387 EXPECT_EQ(saved_image.height(), user->GetImage().height()); | 387 EXPECT_EQ(saved_image.height(), user->GetImage().height()); |
388 } | 388 } |
389 | 389 |
390 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { | 390 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { |
391 RegisterUser(kTestUser1); | 391 RegisterUser(kTestUser1); |
392 } | 392 } |
393 | 393 |
394 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the | 394 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the |
395 // chosen user image. | 395 // chosen user image. |
396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { | 396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { |
397 const User* user = UserManager::Get()->FindUser(kTestUser1); | 397 const User* user = GetUserManager()->FindUser(kTestUser1); |
398 ASSERT_TRUE(user); | 398 ASSERT_TRUE(user); |
399 | 399 |
400 const gfx::ImageSkia& default_image = | 400 const gfx::ImageSkia& default_image = |
401 GetDefaultImage(kFirstDefaultImageIndex); | 401 GetDefaultImage(kFirstDefaultImageIndex); |
402 | 402 |
403 UserImageManager* user_image_manager = | 403 UserImageManager* user_image_manager = |
404 UserManager::Get()->GetUserImageManager(kTestUser1); | 404 GetUserManager()->GetUserImageManager(kTestUser1); |
405 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 405 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
406 | 406 |
407 EXPECT_TRUE(user->HasDefaultImage()); | 407 EXPECT_TRUE(user->HasDefaultImage()); |
408 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 408 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); |
409 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 409 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
410 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 410 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
411 } | 411 } |
412 | 412 |
413 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { | 413 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { |
414 RegisterUser(kTestUser1); | 414 RegisterUser(kTestUser1); |
415 } | 415 } |
416 | 416 |
417 // Verifies that SaveUserImage() correctly sets and persists the chosen user | 417 // Verifies that SaveUserImage() correctly sets and persists the chosen user |
418 // image. | 418 // image. |
419 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { | 419 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { |
420 const User* user = UserManager::Get()->FindUser(kTestUser1); | 420 const User* user = GetUserManager()->FindUser(kTestUser1); |
421 ASSERT_TRUE(user); | 421 ASSERT_TRUE(user); |
422 | 422 |
423 SkBitmap custom_image_bitmap; | 423 SkBitmap custom_image_bitmap; |
424 custom_image_bitmap.allocN32Pixels(10, 10); | 424 custom_image_bitmap.allocN32Pixels(10, 10); |
425 custom_image_bitmap.setImmutable(); | 425 custom_image_bitmap.setImmutable(); |
426 const gfx::ImageSkia custom_image = | 426 const gfx::ImageSkia custom_image = |
427 gfx::ImageSkia::CreateFrom1xBitmap(custom_image_bitmap); | 427 gfx::ImageSkia::CreateFrom1xBitmap(custom_image_bitmap); |
428 | 428 |
429 run_loop_.reset(new base::RunLoop); | 429 run_loop_.reset(new base::RunLoop); |
430 UserImageManager* user_image_manager = | 430 UserImageManager* user_image_manager = |
431 UserManager::Get()->GetUserImageManager(kTestUser1); | 431 GetUserManager()->GetUserImageManager(kTestUser1); |
432 user_image_manager->SaveUserImage(UserImage::CreateAndEncode(custom_image)); | 432 user_image_manager->SaveUserImage(UserImage::CreateAndEncode(custom_image)); |
433 run_loop_->Run(); | 433 run_loop_->Run(); |
434 | 434 |
435 EXPECT_FALSE(user->HasDefaultImage()); | 435 EXPECT_FALSE(user->HasDefaultImage()); |
436 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); | 436 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); |
437 EXPECT_TRUE(test::AreImagesEqual(custom_image, user->GetImage())); | 437 EXPECT_TRUE(test::AreImagesEqual(custom_image, user->GetImage())); |
438 ExpectNewUserImageInfo(kTestUser1, | 438 ExpectNewUserImageInfo(kTestUser1, |
439 User::kExternalImageIndex, | 439 User::kExternalImageIndex, |
440 GetUserImagePath(kTestUser1, "jpg")); | 440 GetUserImagePath(kTestUser1, "jpg")); |
441 | 441 |
442 const scoped_ptr<gfx::ImageSkia> saved_image = | 442 const scoped_ptr<gfx::ImageSkia> saved_image = |
443 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 443 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
444 ASSERT_TRUE(saved_image); | 444 ASSERT_TRUE(saved_image); |
445 | 445 |
446 // Check image dimensions. Images can't be compared since JPEG is lossy. | 446 // Check image dimensions. Images can't be compared since JPEG is lossy. |
447 EXPECT_EQ(custom_image.width(), saved_image->width()); | 447 EXPECT_EQ(custom_image.width(), saved_image->width()); |
448 EXPECT_EQ(custom_image.height(), saved_image->height()); | 448 EXPECT_EQ(custom_image.height(), saved_image->height()); |
449 } | 449 } |
450 | 450 |
451 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { | 451 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { |
452 RegisterUser(kTestUser1); | 452 RegisterUser(kTestUser1); |
453 } | 453 } |
454 | 454 |
455 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen | 455 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen |
456 // user image. | 456 // user image. |
457 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { | 457 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { |
458 const User* user = UserManager::Get()->FindUser(kTestUser1); | 458 const User* user = GetUserManager()->FindUser(kTestUser1); |
459 ASSERT_TRUE(user); | 459 ASSERT_TRUE(user); |
460 | 460 |
461 const base::FilePath custom_image_path = | 461 const base::FilePath custom_image_path = |
462 test_data_dir_.Append(test::kUserAvatarImage1RelativePath); | 462 test_data_dir_.Append(test::kUserAvatarImage1RelativePath); |
463 const scoped_ptr<gfx::ImageSkia> custom_image = | 463 const scoped_ptr<gfx::ImageSkia> custom_image = |
464 test::ImageLoader(custom_image_path).Load(); | 464 test::ImageLoader(custom_image_path).Load(); |
465 ASSERT_TRUE(custom_image); | 465 ASSERT_TRUE(custom_image); |
466 | 466 |
467 run_loop_.reset(new base::RunLoop); | 467 run_loop_.reset(new base::RunLoop); |
468 UserImageManager* user_image_manager = | 468 UserImageManager* user_image_manager = |
469 UserManager::Get()->GetUserImageManager(kTestUser1); | 469 GetUserManager()->GetUserImageManager(kTestUser1); |
470 user_image_manager->SaveUserImageFromFile(custom_image_path); | 470 user_image_manager->SaveUserImageFromFile(custom_image_path); |
471 run_loop_->Run(); | 471 run_loop_->Run(); |
472 | 472 |
473 EXPECT_FALSE(user->HasDefaultImage()); | 473 EXPECT_FALSE(user->HasDefaultImage()); |
474 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); | 474 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); |
475 EXPECT_TRUE(test::AreImagesEqual(*custom_image, user->GetImage())); | 475 EXPECT_TRUE(test::AreImagesEqual(*custom_image, user->GetImage())); |
476 ExpectNewUserImageInfo(kTestUser1, | 476 ExpectNewUserImageInfo(kTestUser1, |
477 User::kExternalImageIndex, | 477 User::kExternalImageIndex, |
478 GetUserImagePath(kTestUser1, "jpg")); | 478 GetUserImagePath(kTestUser1, "jpg")); |
479 | 479 |
480 const scoped_ptr<gfx::ImageSkia> saved_image = | 480 const scoped_ptr<gfx::ImageSkia> saved_image = |
481 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 481 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
482 ASSERT_TRUE(saved_image); | 482 ASSERT_TRUE(saved_image); |
483 | 483 |
484 // Check image dimensions. Images can't be compared since JPEG is lossy. | 484 // Check image dimensions. Images can't be compared since JPEG is lossy. |
485 EXPECT_EQ(custom_image->width(), saved_image->width()); | 485 EXPECT_EQ(custom_image->width(), saved_image->width()); |
486 EXPECT_EQ(custom_image->height(), saved_image->height()); | 486 EXPECT_EQ(custom_image->height(), saved_image->height()); |
487 } | 487 } |
488 | 488 |
489 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 489 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
490 PRE_SaveUserImageFromProfileImage) { | 490 PRE_SaveUserImageFromProfileImage) { |
491 RegisterUser(kTestUser1); | 491 RegisterUser(kTestUser1); |
492 chromeos::StartupUtils::MarkOobeCompleted(); | 492 chromeos::StartupUtils::MarkOobeCompleted(); |
493 } | 493 } |
494 | 494 |
495 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and | 495 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and |
496 // persists the chosen user image. | 496 // persists the chosen user image. |
497 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { | 497 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { |
498 const User* user = UserManager::Get()->FindUser(kTestUser1); | 498 const User* user = GetUserManager()->FindUser(kTestUser1); |
499 ASSERT_TRUE(user); | 499 ASSERT_TRUE(user); |
500 | 500 |
501 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); | 501 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); |
502 LoginUser(kTestUser1); | 502 LoginUser(kTestUser1); |
503 | 503 |
504 run_loop_.reset(new base::RunLoop); | 504 run_loop_.reset(new base::RunLoop); |
505 UserImageManager* user_image_manager = | 505 UserImageManager* user_image_manager = |
506 UserManager::Get()->GetUserImageManager(kTestUser1); | 506 GetUserManager()->GetUserImageManager(kTestUser1); |
507 user_image_manager->SaveUserImageFromProfileImage(); | 507 user_image_manager->SaveUserImageFromProfileImage(); |
508 run_loop_->Run(); | 508 run_loop_->Run(); |
509 | 509 |
510 net::TestURLFetcherFactory url_fetcher_factory; | 510 net::TestURLFetcherFactory url_fetcher_factory; |
511 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); | 511 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); |
512 CompleteProfileImageDownload(&url_fetcher_factory); | 512 CompleteProfileImageDownload(&url_fetcher_factory); |
513 | 513 |
514 const gfx::ImageSkia& profile_image = | 514 const gfx::ImageSkia& profile_image = |
515 user_image_manager->DownloadedProfileImage(); | 515 user_image_manager->DownloadedProfileImage(); |
516 | 516 |
(...skipping 18 matching lines...) Expand all Loading... |
535 RegisterUser(kTestUser1); | 535 RegisterUser(kTestUser1); |
536 chromeos::StartupUtils::MarkOobeCompleted(); | 536 chromeos::StartupUtils::MarkOobeCompleted(); |
537 } | 537 } |
538 | 538 |
539 // Sets the user image to the profile image, then sets it to one of the default | 539 // Sets the user image to the profile image, then sets it to one of the default |
540 // images while the profile image download is still in progress. Verifies that | 540 // images while the profile image download is still in progress. Verifies that |
541 // when the download completes, the profile image is ignored and does not | 541 // when the download completes, the profile image is ignored and does not |
542 // clobber the default image chosen in the meantime. | 542 // clobber the default image chosen in the meantime. |
543 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 543 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
544 ProfileImageDownloadDoesNotClobber) { | 544 ProfileImageDownloadDoesNotClobber) { |
545 const User* user = UserManager::Get()->FindUser(kTestUser1); | 545 const User* user = GetUserManager()->FindUser(kTestUser1); |
546 ASSERT_TRUE(user); | 546 ASSERT_TRUE(user); |
547 | 547 |
548 const gfx::ImageSkia& default_image = | 548 const gfx::ImageSkia& default_image = |
549 GetDefaultImage(kFirstDefaultImageIndex); | 549 GetDefaultImage(kFirstDefaultImageIndex); |
550 | 550 |
551 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); | 551 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); |
552 LoginUser(kTestUser1); | 552 LoginUser(kTestUser1); |
553 | 553 |
554 run_loop_.reset(new base::RunLoop); | 554 run_loop_.reset(new base::RunLoop); |
555 UserImageManager* user_image_manager = | 555 UserImageManager* user_image_manager = |
556 UserManager::Get()->GetUserImageManager(kTestUser1); | 556 GetUserManager()->GetUserImageManager(kTestUser1); |
557 user_image_manager->SaveUserImageFromProfileImage(); | 557 user_image_manager->SaveUserImageFromProfileImage(); |
558 run_loop_->Run(); | 558 run_loop_->Run(); |
559 | 559 |
560 net::TestURLFetcherFactory url_fetcher_factory; | 560 net::TestURLFetcherFactory url_fetcher_factory; |
561 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); | 561 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); |
562 | 562 |
563 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 563 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
564 | 564 |
565 CompleteProfileImageDownload(&url_fetcher_factory); | 565 CompleteProfileImageDownload(&url_fetcher_factory); |
566 | 566 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 | 652 |
653 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { | 653 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { |
654 RegisterUser(kTestUser1); | 654 RegisterUser(kTestUser1); |
655 chromeos::StartupUtils::MarkOobeCompleted(); | 655 chromeos::StartupUtils::MarkOobeCompleted(); |
656 } | 656 } |
657 | 657 |
658 // Verifies that the user image can be set through policy. Also verifies that | 658 // Verifies that the user image can be set through policy. Also verifies that |
659 // after the policy has been cleared, the user is able to choose a different | 659 // after the policy has been cleared, the user is able to choose a different |
660 // image. | 660 // image. |
661 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, SetAndClear) { | 661 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, SetAndClear) { |
662 const User* user = UserManager::Get()->FindUser(kTestUser1); | 662 const User* user = GetUserManager()->FindUser(kTestUser1); |
663 ASSERT_TRUE(user); | 663 ASSERT_TRUE(user); |
664 | 664 |
665 LoginUser(kTestUser1); | 665 LoginUser(kTestUser1); |
666 base::RunLoop().RunUntilIdle(); | 666 base::RunLoop().RunUntilIdle(); |
667 | 667 |
668 policy::CloudPolicyStore* store = GetStoreForUser(user); | 668 policy::CloudPolicyStore* store = GetStoreForUser(user); |
669 ASSERT_TRUE(store); | 669 ASSERT_TRUE(store); |
670 | 670 |
671 // Set policy. Verify that the policy-provided user image is downloaded, set | 671 // Set policy. Verify that the policy-provided user image is downloaded, set |
672 // and persisted. | 672 // and persisted. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 715 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
716 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath()); | 716 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath()); |
717 | 717 |
718 // Choose a different user image. Verify that the chosen user image is set and | 718 // Choose a different user image. Verify that the chosen user image is set and |
719 // persisted. | 719 // persisted. |
720 const int user_image_index = kFirstDefaultImageIndex + | 720 const int user_image_index = kFirstDefaultImageIndex + |
721 (default_image_index - kFirstDefaultImageIndex + 1) % kDefaultImagesCount; | 721 (default_image_index - kFirstDefaultImageIndex + 1) % kDefaultImagesCount; |
722 const gfx::ImageSkia& user_image = GetDefaultImage(user_image_index); | 722 const gfx::ImageSkia& user_image = GetDefaultImage(user_image_index); |
723 | 723 |
724 UserImageManager* user_image_manager = | 724 UserImageManager* user_image_manager = |
725 UserManager::Get()->GetUserImageManager(kTestUser1); | 725 GetUserManager()->GetUserImageManager(kTestUser1); |
726 user_image_manager->SaveUserDefaultImageIndex(user_image_index); | 726 user_image_manager->SaveUserDefaultImageIndex(user_image_index); |
727 | 727 |
728 EXPECT_TRUE(user->HasDefaultImage()); | 728 EXPECT_TRUE(user->HasDefaultImage()); |
729 EXPECT_EQ(user_image_index, user->image_index()); | 729 EXPECT_EQ(user_image_index, user->image_index()); |
730 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); | 730 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); |
731 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath()); | 731 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath()); |
732 } | 732 } |
733 | 733 |
734 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { | 734 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { |
735 RegisterUser(kTestUser1); | 735 RegisterUser(kTestUser1); |
736 chromeos::StartupUtils::MarkOobeCompleted(); | 736 chromeos::StartupUtils::MarkOobeCompleted(); |
737 } | 737 } |
738 | 738 |
739 // Verifies that when the user chooses a user image and a different image is | 739 // Verifies that when the user chooses a user image and a different image is |
740 // then set through policy, the policy takes precedence, overriding the | 740 // then set through policy, the policy takes precedence, overriding the |
741 // previously chosen image. | 741 // previously chosen image. |
742 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { | 742 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { |
743 const User* user = UserManager::Get()->FindUser(kTestUser1); | 743 const User* user = GetUserManager()->FindUser(kTestUser1); |
744 ASSERT_TRUE(user); | 744 ASSERT_TRUE(user); |
745 | 745 |
746 LoginUser(kTestUser1); | 746 LoginUser(kTestUser1); |
747 base::RunLoop().RunUntilIdle(); | 747 base::RunLoop().RunUntilIdle(); |
748 | 748 |
749 policy::CloudPolicyStore* store = GetStoreForUser(user); | 749 policy::CloudPolicyStore* store = GetStoreForUser(user); |
750 ASSERT_TRUE(store); | 750 ASSERT_TRUE(store); |
751 | 751 |
752 // Choose a user image. Verify that the chosen user image is set and | 752 // Choose a user image. Verify that the chosen user image is set and |
753 // persisted. | 753 // persisted. |
754 const gfx::ImageSkia& default_image = | 754 const gfx::ImageSkia& default_image = |
755 GetDefaultImage(kFirstDefaultImageIndex); | 755 GetDefaultImage(kFirstDefaultImageIndex); |
756 | 756 |
757 UserImageManager* user_image_manager = | 757 UserImageManager* user_image_manager = |
758 UserManager::Get()->GetUserImageManager(kTestUser1); | 758 GetUserManager()->GetUserImageManager(kTestUser1); |
759 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 759 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
760 | 760 |
761 EXPECT_TRUE(user->HasDefaultImage()); | 761 EXPECT_TRUE(user->HasDefaultImage()); |
762 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 762 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); |
763 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 763 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
764 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 764 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
765 | 765 |
766 // Set policy. Verify that the policy-provided user image is downloaded, set | 766 // Set policy. Verify that the policy-provided user image is downloaded, set |
767 // and persisted, overriding the previously set image. | 767 // and persisted, overriding the previously set image. |
768 user_policy_.payload().mutable_useravatarimage()->set_value( | 768 user_policy_.payload().mutable_useravatarimage()->set_value( |
(...skipping 24 matching lines...) Expand all Loading... |
793 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, | 793 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, |
794 PRE_UserDoesNotOverridePolicy) { | 794 PRE_UserDoesNotOverridePolicy) { |
795 RegisterUser(kTestUser1); | 795 RegisterUser(kTestUser1); |
796 chromeos::StartupUtils::MarkOobeCompleted(); | 796 chromeos::StartupUtils::MarkOobeCompleted(); |
797 } | 797 } |
798 | 798 |
799 // Verifies that when the user image has been set through policy and the user | 799 // Verifies that when the user image has been set through policy and the user |
800 // chooses a different image, the policy takes precedence, preventing the user | 800 // chooses a different image, the policy takes precedence, preventing the user |
801 // from overriding the previously chosen image. | 801 // from overriding the previously chosen image. |
802 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { | 802 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { |
803 const User* user = UserManager::Get()->FindUser(kTestUser1); | 803 const User* user = GetUserManager()->FindUser(kTestUser1); |
804 ASSERT_TRUE(user); | 804 ASSERT_TRUE(user); |
805 | 805 |
806 LoginUser(kTestUser1); | 806 LoginUser(kTestUser1); |
807 base::RunLoop().RunUntilIdle(); | 807 base::RunLoop().RunUntilIdle(); |
808 | 808 |
809 policy::CloudPolicyStore* store = GetStoreForUser(user); | 809 policy::CloudPolicyStore* store = GetStoreForUser(user); |
810 ASSERT_TRUE(store); | 810 ASSERT_TRUE(store); |
811 | 811 |
812 // Set policy. Verify that the policy-provided user image is downloaded, set | 812 // Set policy. Verify that the policy-provided user image is downloaded, set |
813 // and persisted. | 813 // and persisted. |
(...skipping 17 matching lines...) Expand all Loading... |
831 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 831 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
832 ASSERT_TRUE(saved_image); | 832 ASSERT_TRUE(saved_image); |
833 | 833 |
834 // Check image dimensions. Images can't be compared since JPEG is lossy. | 834 // Check image dimensions. Images can't be compared since JPEG is lossy. |
835 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 835 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
836 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 836 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
837 | 837 |
838 // Choose a different user image. Verify that the user image does not change | 838 // Choose a different user image. Verify that the user image does not change |
839 // as policy takes precedence. | 839 // as policy takes precedence. |
840 UserImageManager* user_image_manager = | 840 UserImageManager* user_image_manager = |
841 UserManager::Get()->GetUserImageManager(kTestUser1); | 841 GetUserManager()->GetUserImageManager(kTestUser1); |
842 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 842 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
843 | 843 |
844 EXPECT_FALSE(user->HasDefaultImage()); | 844 EXPECT_FALSE(user->HasDefaultImage()); |
845 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); | 845 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); |
846 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); | 846 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); |
847 ExpectNewUserImageInfo(kTestUser1, | 847 ExpectNewUserImageInfo(kTestUser1, |
848 User::kExternalImageIndex, | 848 User::kExternalImageIndex, |
849 GetUserImagePath(kTestUser1, "jpg")); | 849 GetUserImagePath(kTestUser1, "jpg")); |
850 | 850 |
851 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 851 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
852 ASSERT_TRUE(saved_image); | 852 ASSERT_TRUE(saved_image); |
853 | 853 |
854 // Check image dimensions. Images can't be compared since JPEG is lossy. | 854 // Check image dimensions. Images can't be compared since JPEG is lossy. |
855 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 855 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
856 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 856 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
857 } | 857 } |
858 | 858 |
859 } // namespace chromeos | 859 } // namespace chromeos |
OLD | NEW |