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 "chrome/browser/chromeos/login/wallpaper_manager.h" | 5 #include "chrome/browser/chromeos/login/wallpaper_manager.h" |
6 | 6 |
7 #include "ash/ash_resources/grit/ash_resources.h" | 7 #include "ash/ash_resources/grit/ash_resources.h" |
8 #include "ash/ash_switches.h" | 8 #include "ash/ash_switches.h" |
9 #include "ash/desktop_background/desktop_background_controller.h" | 9 #include "ash/desktop_background/desktop_background_controller.h" |
10 #include "ash/desktop_background/desktop_background_controller_observer.h" | 10 #include "ash/desktop_background/desktop_background_controller_observer.h" |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 wallpaper_path, | 156 wallpaper_path, |
157 reinterpret_cast<const char*>(image_data->front()), | 157 reinterpret_cast<const char*>(image_data->front()), |
158 image_data->size()); | 158 image_data->size()); |
159 EXPECT_EQ(static_cast<int>(image_data->size()), written); | 159 EXPECT_EQ(static_cast<int>(image_data->size()), written); |
160 } | 160 } |
161 | 161 |
162 int LoadedWallpapers() { | 162 int LoadedWallpapers() { |
163 return WallpaperManager::Get()->loaded_wallpapers(); | 163 return WallpaperManager::Get()->loaded_wallpapers(); |
164 } | 164 } |
165 | 165 |
| 166 void ClearDisposableWallpaperCache() { |
| 167 WallpaperManager::Get()->ClearDisposableWallpaperCache(); |
| 168 } |
| 169 |
166 // Creates a test image of size 1x1. | 170 // Creates a test image of size 1x1. |
167 gfx::ImageSkia CreateTestImage(int width, int height, SkColor color) { | 171 gfx::ImageSkia CreateTestImage(int width, int height, SkColor color) { |
168 SkBitmap bitmap; | 172 SkBitmap bitmap; |
169 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); | 173 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
170 bitmap.allocPixels(); | 174 bitmap.allocPixels(); |
171 bitmap.eraseColor(color); | 175 bitmap.eraseColor(color); |
172 return gfx::ImageSkia::CreateFrom1xBitmap(bitmap); | 176 return gfx::ImageSkia::CreateFrom1xBitmap(bitmap); |
173 } | 177 } |
174 | 178 |
175 // Writes a JPEG image of the specified size and color to |path|. Returns | 179 // Writes a JPEG image of the specified size and color to |path|. Returns |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 // Loads the same wallpaper before the initial one finished. It should be | 401 // Loads the same wallpaper before the initial one finished. It should be |
398 // prevented. | 402 // prevented. |
399 wallpaper_manager->SetUserWallpaperNow(kTestUser1); | 403 wallpaper_manager->SetUserWallpaperNow(kTestUser1); |
400 WaitAsyncWallpaperLoadFinished(); | 404 WaitAsyncWallpaperLoadFinished(); |
401 EXPECT_EQ(1, LoadedWallpapers()); | 405 EXPECT_EQ(1, LoadedWallpapers()); |
402 // Loads the same wallpaper after the initial one finished. It should be | 406 // Loads the same wallpaper after the initial one finished. It should be |
403 // prevented. | 407 // prevented. |
404 wallpaper_manager->SetUserWallpaperNow(kTestUser1); | 408 wallpaper_manager->SetUserWallpaperNow(kTestUser1); |
405 WaitAsyncWallpaperLoadFinished(); | 409 WaitAsyncWallpaperLoadFinished(); |
406 EXPECT_EQ(1, LoadedWallpapers()); | 410 EXPECT_EQ(1, LoadedWallpapers()); |
407 wallpaper_manager->ClearDisposableWallpaperCache(); | 411 ClearDisposableWallpaperCache(); |
408 | 412 |
409 // Change wallpaper to a custom wallpaper. | 413 // Change wallpaper to a custom wallpaper. |
410 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue()); | 414 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue()); |
411 base::FilePath small_wallpaper_path = GetCustomWallpaperPath( | 415 base::FilePath small_wallpaper_path = GetCustomWallpaperPath( |
412 kSmallWallpaperSubDir, | 416 kSmallWallpaperSubDir, |
413 kTestUser1Hash, | 417 kTestUser1Hash, |
414 id); | 418 id); |
415 SaveUserWallpaperData(small_wallpaper_path, | 419 SaveUserWallpaperData(small_wallpaper_path, |
416 kSmallWallpaperResourceId); | 420 kSmallWallpaperResourceId); |
417 | 421 |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 red_wallpaper, | 689 red_wallpaper, |
686 WALLPAPER_LAYOUT_CENTER, | 690 WALLPAPER_LAYOUT_CENTER, |
687 true); | 691 true); |
688 WaitAsyncWallpaperLoadFinished(); | 692 WaitAsyncWallpaperLoadFinished(); |
689 // SetWallpaperFromImageSkia should update wallpaper cache when multi-profile | 693 // SetWallpaperFromImageSkia should update wallpaper cache when multi-profile |
690 // is turned on. | 694 // is turned on. |
691 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); | 695 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); |
692 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(red_wallpaper)); | 696 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(red_wallpaper)); |
693 | 697 |
694 gfx::ImageSkia green_wallpaper = CreateTestImage(SK_ColorGREEN); | 698 gfx::ImageSkia green_wallpaper = CreateTestImage(SK_ColorGREEN); |
695 chromeos::UserImage image(green_wallpaper); | |
696 wallpaper_manager->SetCustomWallpaper(kTestUser1, | 699 wallpaper_manager->SetCustomWallpaper(kTestUser1, |
697 kTestUser1Hash, | 700 kTestUser1Hash, |
698 "dummy", // dummy file name | 701 "dummy", // dummy file name |
699 WALLPAPER_LAYOUT_CENTER, | 702 WALLPAPER_LAYOUT_CENTER, |
700 User::CUSTOMIZED, | 703 User::CUSTOMIZED, |
701 image, | 704 green_wallpaper, |
702 true); | 705 true); |
703 WaitAsyncWallpaperLoadFinished(); | 706 WaitAsyncWallpaperLoadFinished(); |
704 // SetCustomWallpaper should also update wallpaper cache when multi-profile is | 707 // SetCustomWallpaper should also update wallpaper cache when multi-profile is |
705 // turned on. | 708 // turned on. |
706 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); | 709 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); |
707 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(green_wallpaper)); | 710 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(green_wallpaper)); |
708 | 711 |
709 wallpaper_manager->SetDefaultWallpaperNow(kTestUser1); | 712 wallpaper_manager->SetDefaultWallpaperNow(kTestUser1); |
710 WaitAsyncWallpaperLoadFinished(); | 713 WaitAsyncWallpaperLoadFinished(); |
711 // SetDefaultWallpaper should invalidate the user's wallpaper cache. | 714 // SetDefaultWallpaper should invalidate the user's wallpaper cache. |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 // Start loading the default wallpaper. | 918 // Start loading the default wallpaper. |
916 UpdateDisplay("640x480"); | 919 UpdateDisplay("640x480"); |
917 WriteWallpapers(); | 920 WriteWallpapers(); |
918 UserManager::Get()->UserLoggedIn(UserManager::kStubUser, "test_hash", false); | 921 UserManager::Get()->UserLoggedIn(UserManager::kStubUser, "test_hash", false); |
919 | 922 |
920 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); | 923 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); |
921 | 924 |
922 // Custom wallpaper should be applied immediately, canceling the default | 925 // Custom wallpaper should be applied immediately, canceling the default |
923 // wallpaper load task. | 926 // wallpaper load task. |
924 gfx::ImageSkia image = CreateTestImage(640, 480, kCustomWallpaperColor); | 927 gfx::ImageSkia image = CreateTestImage(640, 480, kCustomWallpaperColor); |
925 UserImage wallpaper(image); | |
926 WallpaperManager::Get()->SetCustomWallpaper(UserManager::kStubUser, | 928 WallpaperManager::Get()->SetCustomWallpaper(UserManager::kStubUser, |
927 "test_hash", | 929 "test_hash", |
928 "test-nofile.jpeg", | 930 "test-nofile.jpeg", |
929 WALLPAPER_LAYOUT_STRETCH, | 931 WALLPAPER_LAYOUT_STRETCH, |
930 User::CUSTOMIZED, | 932 User::CUSTOMIZED, |
931 wallpaper, | 933 image, |
932 true); | 934 true); |
933 WaitAsyncWallpaperLoadFinished(); | 935 WaitAsyncWallpaperLoadFinished(); |
934 | 936 |
935 EXPECT_TRUE( | 937 EXPECT_TRUE( |
936 ImageIsNearColor(controller_->GetWallpaper(), kCustomWallpaperColor)); | 938 ImageIsNearColor(controller_->GetWallpaper(), kCustomWallpaperColor)); |
937 | 939 |
938 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); | 940 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); |
939 WaitAsyncWallpaperLoadFinished(); | 941 WaitAsyncWallpaperLoadFinished(); |
940 | 942 |
941 EXPECT_TRUE( | 943 EXPECT_TRUE( |
942 ImageIsNearColor(controller_->GetWallpaper(), kSmallWallpaperColor)); | 944 ImageIsNearColor(controller_->GetWallpaper(), kSmallWallpaperColor)); |
943 } | 945 } |
944 | 946 |
945 } // namespace chromeos | 947 } // namespace chromeos |
OLD | NEW |