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" |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
13 #include "base/json/json_writer.h" | 13 #include "base/json/json_writer.h" |
14 #include "base/memory/linked_ptr.h" | 14 #include "base/memory/linked_ptr.h" |
15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
16 #include "base/memory/ref_counted_memory.h" | 16 #include "base/memory/ref_counted_memory.h" |
17 #include "base/memory/scoped_ptr.h" | 17 #include "base/memory/scoped_ptr.h" |
18 #include "base/message_loop/message_loop_proxy.h" | 18 #include "base/message_loop/message_loop_proxy.h" |
19 #include "base/path_service.h" | 19 #include "base/path_service.h" |
20 #include "base/prefs/pref_change_registrar.h" | 20 #include "base/prefs/pref_change_registrar.h" |
21 #include "base/prefs/pref_service.h" | 21 #include "base/prefs/pref_service.h" |
22 #include "base/prefs/scoped_user_pref_update.h" | 22 #include "base/prefs/scoped_user_pref_update.h" |
23 #include "base/run_loop.h" | 23 #include "base/run_loop.h" |
24 #include "base/time/time.h" | 24 #include "base/time/time.h" |
25 #include "base/values.h" | 25 #include "base/values.h" |
26 #include "chrome/browser/browser_process.h" | 26 #include "chrome/browser/browser_process.h" |
27 #include "chrome/browser/chrome_notification_types.h" | 27 #include "chrome/browser/chrome_notification_types.h" |
28 #include "chrome/browser/chromeos/login/login_manager_test.h" | 28 #include "chrome/browser/chromeos/login/login_manager_test.h" |
29 #include "chrome/browser/chromeos/login/startup_utils.h" | 29 #include "chrome/browser/chromeos/login/startup_utils.h" |
30 #include "chrome/browser/chromeos/login/users/avatar/default_user_images.h" | |
31 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" | 30 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" |
32 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" | 31 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" |
33 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_uti
l.h" | 32 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_uti
l.h" |
34 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" | 33 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" |
35 #include "chrome/browser/chromeos/login/users/user.h" | 34 #include "chrome/browser/chromeos/login/users/user.h" |
36 #include "chrome/browser/chromeos/login/users/user_manager.h" | 35 #include "chrome/browser/chromeos/login/users/user_manager.h" |
37 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" | 36 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" |
38 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" | 37 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
39 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" | 38 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" |
40 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 39 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
41 #include "chrome/browser/profiles/profile.h" | 40 #include "chrome/browser/profiles/profile.h" |
42 #include "chrome/browser/profiles/profile_downloader.h" | 41 #include "chrome/browser/profiles/profile_downloader.h" |
43 #include "chrome/common/chrome_paths.h" | 42 #include "chrome/common/chrome_paths.h" |
44 #include "chrome/test/base/in_process_browser_test.h" | 43 #include "chrome/test/base/in_process_browser_test.h" |
45 #include "chrome/test/base/testing_browser_process.h" | 44 #include "chrome/test/base/testing_browser_process.h" |
46 #include "chromeos/chromeos_paths.h" | 45 #include "chromeos/chromeos_paths.h" |
47 #include "chromeos/dbus/cryptohome_client.h" | 46 #include "chromeos/dbus/cryptohome_client.h" |
48 #include "chromeos/dbus/dbus_thread_manager.h" | 47 #include "chromeos/dbus/dbus_thread_manager.h" |
49 #include "chromeos/dbus/fake_dbus_thread_manager.h" | 48 #include "chromeos/dbus/fake_dbus_thread_manager.h" |
50 #include "chromeos/dbus/fake_session_manager_client.h" | 49 #include "chromeos/dbus/fake_session_manager_client.h" |
51 #include "chromeos/dbus/session_manager_client.h" | 50 #include "chromeos/dbus/session_manager_client.h" |
52 #include "components/policy/core/common/cloud/cloud_policy_core.h" | 51 #include "components/policy/core/common/cloud/cloud_policy_core.h" |
53 #include "components/policy/core/common/cloud/cloud_policy_store.h" | 52 #include "components/policy/core/common/cloud/cloud_policy_store.h" |
54 #include "components/policy/core/common/cloud/policy_builder.h" | 53 #include "components/policy/core/common/cloud/policy_builder.h" |
| 54 #include "components/user_manager/user_image/default_user_images.h" |
55 #include "components/user_manager/user_image/user_image.h" | 55 #include "components/user_manager/user_image/user_image.h" |
56 #include "content/public/browser/notification_service.h" | 56 #include "content/public/browser/notification_service.h" |
57 #include "content/public/browser/notification_source.h" | 57 #include "content/public/browser/notification_source.h" |
58 #include "content/public/test/test_utils.h" | 58 #include "content/public/test/test_utils.h" |
59 #include "crypto/rsa_private_key.h" | 59 #include "crypto/rsa_private_key.h" |
60 #include "google_apis/gaia/gaia_oauth_client.h" | 60 #include "google_apis/gaia/gaia_oauth_client.h" |
61 #include "google_apis/gaia/oauth2_token_service.h" | 61 #include "google_apis/gaia/oauth2_token_service.h" |
62 #include "net/test/embedded_test_server/embedded_test_server.h" | 62 #include "net/test/embedded_test_server/embedded_test_server.h" |
63 #include "net/url_request/test_url_fetcher_factory.h" | 63 #include "net/url_request/test_url_fetcher_factory.h" |
64 #include "net/url_request/url_fetcher_delegate.h" | 64 #include "net/url_request/url_fetcher_delegate.h" |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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( |
| 304 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
304 } | 305 } |
305 | 306 |
306 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { | 307 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { |
307 UserManager::Get()->GetUsers(); // Load users. | 308 UserManager::Get()->GetUsers(); // Load users. |
308 // Old info preserved. | 309 // Old info preserved. |
309 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 310 ExpectOldUserImageInfo( |
| 311 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
310 LogIn(kTestUser1); | 312 LogIn(kTestUser1); |
311 // Image info is migrated now. | 313 // Image info is migrated now. |
312 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 314 ExpectNewUserImageInfo( |
| 315 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
313 } | 316 } |
314 | 317 |
315 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { | 318 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { |
316 // Setup two users with stock images. | 319 // Setup two users with stock images. |
317 ScopedUserManagerEnabler(new MockUserManager); | 320 ScopedUserManagerEnabler(new MockUserManager); |
318 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 321 SetOldUserImageInfo( |
319 SetOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 322 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
320 base::FilePath()); | 323 SetOldUserImageInfo( |
| 324 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); |
321 } | 325 } |
322 | 326 |
323 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { | 327 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { |
324 UserManager::Get()->GetUsers(); // Load users. | 328 UserManager::Get()->GetUsers(); // Load users. |
325 // Old info preserved. | 329 // Old info preserved. |
326 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 330 ExpectOldUserImageInfo( |
327 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 331 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
328 base::FilePath()); | 332 ExpectOldUserImageInfo( |
| 333 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); |
329 LogIn(kTestUser1); | 334 LogIn(kTestUser1); |
330 // Image info is migrated for the first user and unaffected for the rest. | 335 // Image info is migrated for the first user and unaffected for the rest. |
331 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 336 ExpectNewUserImageInfo( |
332 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, | 337 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
333 base::FilePath()); | 338 ExpectOldUserImageInfo( |
| 339 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); |
334 } | 340 } |
335 | 341 |
336 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { | 342 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { |
337 // Setup a user with non-JPEG image. | 343 // Setup a user with non-JPEG image. |
338 ScopedUserManagerEnabler(new MockUserManager); | 344 ScopedUserManagerEnabler(new MockUserManager); |
339 SaveUserImagePNG( | 345 SaveUserImagePNG(kTestUser1, |
340 kTestUser1, kDefaultImageResourceIDs[kFirstDefaultImageIndex]); | 346 user_manager::kDefaultImageResourceIDs |
| 347 [user_manager::kFirstDefaultImageIndex]); |
341 } | 348 } |
342 | 349 |
343 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { | 350 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { |
344 UserManager::Get()->GetUsers(); // Load users. | 351 UserManager::Get()->GetUsers(); // Load users. |
345 // Old info preserved. | 352 // Old info preserved. |
346 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex, | 353 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex, |
347 GetUserImagePath(kTestUser1, "png")); | 354 GetUserImagePath(kTestUser1, "png")); |
348 const User* user = UserManager::Get()->FindUser(kTestUser1); | 355 const User* user = UserManager::Get()->FindUser(kTestUser1); |
349 EXPECT_TRUE(user->image_is_stub()); | 356 EXPECT_TRUE(user->image_is_stub()); |
350 | 357 |
351 base::RunLoop run_loop; | 358 base::RunLoop run_loop; |
352 PrefChangeRegistrar pref_change_registrar_; | 359 PrefChangeRegistrar pref_change_registrar_; |
353 pref_change_registrar_.Init(local_state_); | 360 pref_change_registrar_.Init(local_state_); |
354 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); | 361 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); |
355 LogIn(kTestUser1); | 362 LogIn(kTestUser1); |
356 | 363 |
357 // Wait for migration. | 364 // Wait for migration. |
358 run_loop.Run(); | 365 run_loop.Run(); |
359 | 366 |
360 // Image info is migrated and the image is converted to JPG. | 367 // Image info is migrated and the image is converted to JPG. |
361 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex, | 368 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex, |
362 GetUserImagePath(kTestUser1, "jpg")); | 369 GetUserImagePath(kTestUser1, "jpg")); |
363 user = UserManager::Get()->GetLoggedInUser(); | 370 user = UserManager::Get()->GetLoggedInUser(); |
364 ASSERT_TRUE(user); | 371 ASSERT_TRUE(user); |
365 EXPECT_FALSE(user->image_is_safe_format()); | 372 EXPECT_FALSE(user->image_is_safe_format()); |
366 // Check image dimensions. | 373 // Check image dimensions. |
367 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); | 374 const gfx::ImageSkia& saved_image = |
| 375 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); |
368 EXPECT_EQ(saved_image.width(), user->GetImage().width()); | 376 EXPECT_EQ(saved_image.width(), user->GetImage().width()); |
369 EXPECT_EQ(saved_image.height(), user->GetImage().height()); | 377 EXPECT_EQ(saved_image.height(), user->GetImage().height()); |
370 } | 378 } |
371 | 379 |
372 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { | 380 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { |
373 UserManager::Get()->GetUsers(); // Load users. | 381 UserManager::Get()->GetUsers(); // Load users. |
374 const User* user = UserManager::Get()->FindUser(kTestUser1); | 382 const User* user = UserManager::Get()->FindUser(kTestUser1); |
375 ASSERT_TRUE(user); | 383 ASSERT_TRUE(user); |
376 // Wait for image load. | 384 // Wait for image load. |
377 if (user->image_index() == User::kInvalidImageIndex) { | 385 if (user->image_index() == User::kInvalidImageIndex) { |
378 content::WindowedNotificationObserver( | 386 content::WindowedNotificationObserver( |
379 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 387 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
380 content::NotificationService::AllSources()).Wait(); | 388 content::NotificationService::AllSources()).Wait(); |
381 } | 389 } |
382 // Now the migrated image is used. | 390 // Now the migrated image is used. |
383 EXPECT_TRUE(user->image_is_safe_format()); | 391 EXPECT_TRUE(user->image_is_safe_format()); |
384 // Check image dimensions. Images can't be compared since JPEG is lossy. | 392 // Check image dimensions. Images can't be compared since JPEG is lossy. |
385 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); | 393 const gfx::ImageSkia& saved_image = |
| 394 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); |
386 EXPECT_EQ(saved_image.width(), user->GetImage().width()); | 395 EXPECT_EQ(saved_image.width(), user->GetImage().width()); |
387 EXPECT_EQ(saved_image.height(), user->GetImage().height()); | 396 EXPECT_EQ(saved_image.height(), user->GetImage().height()); |
388 } | 397 } |
389 | 398 |
390 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { | 399 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { |
391 RegisterUser(kTestUser1); | 400 RegisterUser(kTestUser1); |
392 } | 401 } |
393 | 402 |
394 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the | 403 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the |
395 // chosen user image. | 404 // chosen user image. |
396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { | 405 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { |
397 const User* user = UserManager::Get()->FindUser(kTestUser1); | 406 const User* user = UserManager::Get()->FindUser(kTestUser1); |
398 ASSERT_TRUE(user); | 407 ASSERT_TRUE(user); |
399 | 408 |
400 const gfx::ImageSkia& default_image = | 409 const gfx::ImageSkia& default_image = |
401 GetDefaultImage(kFirstDefaultImageIndex); | 410 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); |
402 | 411 |
403 UserImageManager* user_image_manager = | 412 UserImageManager* user_image_manager = |
404 UserManager::Get()->GetUserImageManager(kTestUser1); | 413 UserManager::Get()->GetUserImageManager(kTestUser1); |
405 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 414 user_image_manager->SaveUserDefaultImageIndex( |
| 415 user_manager::kFirstDefaultImageIndex); |
406 | 416 |
407 EXPECT_TRUE(user->HasDefaultImage()); | 417 EXPECT_TRUE(user->HasDefaultImage()); |
408 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 418 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); |
409 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 419 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
410 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 420 ExpectNewUserImageInfo( |
| 421 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
411 } | 422 } |
412 | 423 |
413 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { | 424 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { |
414 RegisterUser(kTestUser1); | 425 RegisterUser(kTestUser1); |
415 } | 426 } |
416 | 427 |
417 // Verifies that SaveUserImage() correctly sets and persists the chosen user | 428 // Verifies that SaveUserImage() correctly sets and persists the chosen user |
418 // image. | 429 // image. |
419 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { | 430 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { |
420 const User* user = UserManager::Get()->FindUser(kTestUser1); | 431 const User* user = UserManager::Get()->FindUser(kTestUser1); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 // Sets the user image to the profile image, then sets it to one of the default | 551 // Sets the user image to the profile image, then sets it to one of the default |
541 // images while the profile image download is still in progress. Verifies that | 552 // images while the profile image download is still in progress. Verifies that |
542 // when the download completes, the profile image is ignored and does not | 553 // when the download completes, the profile image is ignored and does not |
543 // clobber the default image chosen in the meantime. | 554 // clobber the default image chosen in the meantime. |
544 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 555 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
545 ProfileImageDownloadDoesNotClobber) { | 556 ProfileImageDownloadDoesNotClobber) { |
546 const User* user = UserManager::Get()->FindUser(kTestUser1); | 557 const User* user = UserManager::Get()->FindUser(kTestUser1); |
547 ASSERT_TRUE(user); | 558 ASSERT_TRUE(user); |
548 | 559 |
549 const gfx::ImageSkia& default_image = | 560 const gfx::ImageSkia& default_image = |
550 GetDefaultImage(kFirstDefaultImageIndex); | 561 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); |
551 | 562 |
552 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); | 563 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); |
553 LoginUser(kTestUser1); | 564 LoginUser(kTestUser1); |
554 | 565 |
555 run_loop_.reset(new base::RunLoop); | 566 run_loop_.reset(new base::RunLoop); |
556 UserImageManager* user_image_manager = | 567 UserImageManager* user_image_manager = |
557 UserManager::Get()->GetUserImageManager(kTestUser1); | 568 UserManager::Get()->GetUserImageManager(kTestUser1); |
558 user_image_manager->SaveUserImageFromProfileImage(); | 569 user_image_manager->SaveUserImageFromProfileImage(); |
559 run_loop_->Run(); | 570 run_loop_->Run(); |
560 | 571 |
561 net::TestURLFetcherFactory url_fetcher_factory; | 572 net::TestURLFetcherFactory url_fetcher_factory; |
562 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); | 573 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); |
563 | 574 |
564 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 575 user_image_manager->SaveUserDefaultImageIndex( |
| 576 user_manager::kFirstDefaultImageIndex); |
565 | 577 |
566 CompleteProfileImageDownload(&url_fetcher_factory); | 578 CompleteProfileImageDownload(&url_fetcher_factory); |
567 | 579 |
568 EXPECT_TRUE(user->HasDefaultImage()); | 580 EXPECT_TRUE(user->HasDefaultImage()); |
569 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 581 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); |
570 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 582 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
571 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 583 ExpectNewUserImageInfo( |
| 584 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
572 } | 585 } |
573 | 586 |
574 class UserImageManagerPolicyTest : public UserImageManagerTest, | 587 class UserImageManagerPolicyTest : public UserImageManagerTest, |
575 public policy::CloudPolicyStore::Observer { | 588 public policy::CloudPolicyStore::Observer { |
576 protected: | 589 protected: |
577 UserImageManagerPolicyTest() | 590 UserImageManagerPolicyTest() |
578 : fake_dbus_thread_manager_(new chromeos::FakeDBusThreadManager), | 591 : fake_dbus_thread_manager_(new chromeos::FakeDBusThreadManager), |
579 fake_session_manager_client_(new chromeos::FakeSessionManagerClient) { | 592 fake_session_manager_client_(new chromeos::FakeSessionManagerClient) { |
580 fake_dbus_thread_manager_->SetFakeClients(); | 593 fake_dbus_thread_manager_->SetFakeClients(); |
581 fake_dbus_thread_manager_->SetSessionManagerClient( | 594 fake_dbus_thread_manager_->SetSessionManagerClient( |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 user_policy_.GetBlob()); | 716 user_policy_.GetBlob()); |
704 run_loop_.reset(new base::RunLoop); | 717 run_loop_.reset(new base::RunLoop); |
705 store->AddObserver(this); | 718 store->AddObserver(this); |
706 store->Load(); | 719 store->Load(); |
707 run_loop_->Run(); | 720 run_loop_->Run(); |
708 store->RemoveObserver(this); | 721 store->RemoveObserver(this); |
709 base::RunLoop().RunUntilIdle(); | 722 base::RunLoop().RunUntilIdle(); |
710 | 723 |
711 const int default_image_index = user->image_index(); | 724 const int default_image_index = user->image_index(); |
712 EXPECT_TRUE(user->HasDefaultImage()); | 725 EXPECT_TRUE(user->HasDefaultImage()); |
713 ASSERT_LE(kFirstDefaultImageIndex, default_image_index); | 726 ASSERT_LE(user_manager::kFirstDefaultImageIndex, default_image_index); |
714 ASSERT_GT(kFirstDefaultImageIndex + kDefaultImagesCount, default_image_index); | 727 ASSERT_GT( |
715 const gfx::ImageSkia& default_image = GetDefaultImage(default_image_index); | 728 user_manager::kFirstDefaultImageIndex + user_manager::kDefaultImagesCount, |
| 729 default_image_index); |
| 730 const gfx::ImageSkia& default_image = |
| 731 user_manager::GetDefaultImage(default_image_index); |
716 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 732 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
717 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath()); | 733 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath()); |
718 | 734 |
719 // Choose a different user image. Verify that the chosen user image is set and | 735 // Choose a different user image. Verify that the chosen user image is set and |
720 // persisted. | 736 // persisted. |
721 const int user_image_index = kFirstDefaultImageIndex + | 737 const int user_image_index = |
722 (default_image_index - kFirstDefaultImageIndex + 1) % kDefaultImagesCount; | 738 user_manager::kFirstDefaultImageIndex + |
723 const gfx::ImageSkia& user_image = GetDefaultImage(user_image_index); | 739 (default_image_index - user_manager::kFirstDefaultImageIndex + 1) % |
| 740 user_manager::kDefaultImagesCount; |
| 741 const gfx::ImageSkia& user_image = |
| 742 user_manager::GetDefaultImage(user_image_index); |
724 | 743 |
725 UserImageManager* user_image_manager = | 744 UserImageManager* user_image_manager = |
726 UserManager::Get()->GetUserImageManager(kTestUser1); | 745 UserManager::Get()->GetUserImageManager(kTestUser1); |
727 user_image_manager->SaveUserDefaultImageIndex(user_image_index); | 746 user_image_manager->SaveUserDefaultImageIndex(user_image_index); |
728 | 747 |
729 EXPECT_TRUE(user->HasDefaultImage()); | 748 EXPECT_TRUE(user->HasDefaultImage()); |
730 EXPECT_EQ(user_image_index, user->image_index()); | 749 EXPECT_EQ(user_image_index, user->image_index()); |
731 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); | 750 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); |
732 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath()); | 751 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath()); |
733 } | 752 } |
(...skipping 12 matching lines...) Expand all Loading... |
746 | 765 |
747 LoginUser(kTestUser1); | 766 LoginUser(kTestUser1); |
748 base::RunLoop().RunUntilIdle(); | 767 base::RunLoop().RunUntilIdle(); |
749 | 768 |
750 policy::CloudPolicyStore* store = GetStoreForUser(user); | 769 policy::CloudPolicyStore* store = GetStoreForUser(user); |
751 ASSERT_TRUE(store); | 770 ASSERT_TRUE(store); |
752 | 771 |
753 // Choose a user image. Verify that the chosen user image is set and | 772 // Choose a user image. Verify that the chosen user image is set and |
754 // persisted. | 773 // persisted. |
755 const gfx::ImageSkia& default_image = | 774 const gfx::ImageSkia& default_image = |
756 GetDefaultImage(kFirstDefaultImageIndex); | 775 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); |
757 | 776 |
758 UserImageManager* user_image_manager = | 777 UserImageManager* user_image_manager = |
759 UserManager::Get()->GetUserImageManager(kTestUser1); | 778 UserManager::Get()->GetUserImageManager(kTestUser1); |
760 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 779 user_image_manager->SaveUserDefaultImageIndex( |
| 780 user_manager::kFirstDefaultImageIndex); |
761 | 781 |
762 EXPECT_TRUE(user->HasDefaultImage()); | 782 EXPECT_TRUE(user->HasDefaultImage()); |
763 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 783 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); |
764 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 784 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
765 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 785 ExpectNewUserImageInfo( |
| 786 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); |
766 | 787 |
767 // Set policy. Verify that the policy-provided user image is downloaded, set | 788 // Set policy. Verify that the policy-provided user image is downloaded, set |
768 // and persisted, overriding the previously set image. | 789 // and persisted, overriding the previously set image. |
769 user_policy_.payload().mutable_useravatarimage()->set_value( | 790 user_policy_.payload().mutable_useravatarimage()->set_value( |
770 ConstructPolicy(test::kUserAvatarImage2RelativePath)); | 791 ConstructPolicy(test::kUserAvatarImage2RelativePath)); |
771 user_policy_.Build(); | 792 user_policy_.Build(); |
772 fake_session_manager_client_->set_user_policy(kTestUser1, | 793 fake_session_manager_client_->set_user_policy(kTestUser1, |
773 user_policy_.GetBlob()); | 794 user_policy_.GetBlob()); |
774 run_loop_.reset(new base::RunLoop); | 795 run_loop_.reset(new base::RunLoop); |
775 store->Load(); | 796 store->Load(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 ASSERT_TRUE(saved_image); | 854 ASSERT_TRUE(saved_image); |
834 | 855 |
835 // Check image dimensions. Images can't be compared since JPEG is lossy. | 856 // Check image dimensions. Images can't be compared since JPEG is lossy. |
836 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 857 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
837 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 858 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
838 | 859 |
839 // Choose a different user image. Verify that the user image does not change | 860 // Choose a different user image. Verify that the user image does not change |
840 // as policy takes precedence. | 861 // as policy takes precedence. |
841 UserImageManager* user_image_manager = | 862 UserImageManager* user_image_manager = |
842 UserManager::Get()->GetUserImageManager(kTestUser1); | 863 UserManager::Get()->GetUserImageManager(kTestUser1); |
843 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 864 user_image_manager->SaveUserDefaultImageIndex( |
| 865 user_manager::kFirstDefaultImageIndex); |
844 | 866 |
845 EXPECT_FALSE(user->HasDefaultImage()); | 867 EXPECT_FALSE(user->HasDefaultImage()); |
846 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); | 868 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); |
847 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); | 869 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); |
848 ExpectNewUserImageInfo(kTestUser1, | 870 ExpectNewUserImageInfo(kTestUser1, |
849 User::kExternalImageIndex, | 871 User::kExternalImageIndex, |
850 GetUserImagePath(kTestUser1, "jpg")); | 872 GetUserImagePath(kTestUser1, "jpg")); |
851 | 873 |
852 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 874 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
853 ASSERT_TRUE(saved_image); | 875 ASSERT_TRUE(saved_image); |
854 | 876 |
855 // Check image dimensions. Images can't be compared since JPEG is lossy. | 877 // Check image dimensions. Images can't be compared since JPEG is lossy. |
856 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 878 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
857 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 879 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
858 } | 880 } |
859 | 881 |
860 } // namespace chromeos | 882 } // namespace chromeos |
OLD | NEW |