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 <cstdlib> | 5 #include <cstdlib> |
6 #include <cstring> | 6 #include <cstring> |
7 | 7 |
8 #include "ash/desktop_background/desktop_background_controller.h" | 8 #include "ash/desktop_background/desktop_background_controller.h" |
9 #include "ash/desktop_background/desktop_background_controller_observer.h" | 9 #include "ash/desktop_background/desktop_background_controller_observer.h" |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 // Login two users. | 88 // Login two users. |
89 fake_user_manager()->LoginUser(test_account_id_1); | 89 fake_user_manager()->LoginUser(test_account_id_1); |
90 fake_user_manager()->LoginUser(test_account_id_2); | 90 fake_user_manager()->LoginUser(test_account_id_2); |
91 | 91 |
92 scoped_ptr<WallpaperManager::TestApi> test_api; | 92 scoped_ptr<WallpaperManager::TestApi> test_api; |
93 test_api.reset(new WallpaperManager::TestApi(WallpaperManager::Get())); | 93 test_api.reset(new WallpaperManager::TestApi(WallpaperManager::Get())); |
94 | 94 |
95 gfx::ImageSkia test_user_1_wallpaper = CreateTestImage(SK_ColorRED); | 95 gfx::ImageSkia test_user_1_wallpaper = CreateTestImage(SK_ColorRED); |
96 gfx::ImageSkia test_user_2_wallpaper = CreateTestImage(SK_ColorGREEN); | 96 gfx::ImageSkia test_user_2_wallpaper = CreateTestImage(SK_ColorGREEN); |
97 gfx::ImageSkia test_user_3_wallpaper = CreateTestImage(SK_ColorWHITE); | 97 gfx::ImageSkia test_user_3_wallpaper = CreateTestImage(SK_ColorWHITE); |
98 test_api->SetWallpaperCache(test_account_id_1.GetUserEmail(), path1, | 98 test_api->SetWallpaperCache(test_account_id_1, path1, test_user_1_wallpaper); |
99 test_user_1_wallpaper); | 99 test_api->SetWallpaperCache(test_account_id_2, path2, test_user_2_wallpaper); |
100 test_api->SetWallpaperCache(test_account_id_2.GetUserEmail(), path2, | 100 test_api->SetWallpaperCache(test_account_id_3, path3, test_user_3_wallpaper); |
101 test_user_2_wallpaper); | |
102 test_api->SetWallpaperCache(test_account_id_3.GetUserEmail(), path3, | |
103 test_user_3_wallpaper); | |
104 | 101 |
105 test_api->ClearDisposableWallpaperCache(); | 102 test_api->ClearDisposableWallpaperCache(); |
106 | 103 |
107 gfx::ImageSkia cached_wallpaper; | 104 gfx::ImageSkia cached_wallpaper; |
108 EXPECT_TRUE(test_api->GetWallpaperFromCache(test_account_id_1.GetUserEmail(), | 105 EXPECT_TRUE( |
109 &cached_wallpaper)); | 106 test_api->GetWallpaperFromCache(test_account_id_1, &cached_wallpaper)); |
110 base::FilePath path; | 107 base::FilePath path; |
111 EXPECT_TRUE( | 108 EXPECT_TRUE(test_api->GetPathFromCache(test_account_id_1, &path)); |
112 test_api->GetPathFromCache(test_account_id_1.GetUserEmail(), &path)); | |
113 // Logged in users' wallpaper cache should be kept. | 109 // Logged in users' wallpaper cache should be kept. |
114 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(test_user_1_wallpaper)); | 110 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(test_user_1_wallpaper)); |
115 EXPECT_EQ(path, path1); | 111 EXPECT_EQ(path, path1); |
116 EXPECT_TRUE(test_api->GetWallpaperFromCache(test_account_id_2.GetUserEmail(), | |
117 &cached_wallpaper)); | |
118 EXPECT_TRUE( | 112 EXPECT_TRUE( |
119 test_api->GetPathFromCache(test_account_id_2.GetUserEmail(), &path)); | 113 test_api->GetWallpaperFromCache(test_account_id_2, &cached_wallpaper)); |
| 114 EXPECT_TRUE(test_api->GetPathFromCache(test_account_id_2, &path)); |
120 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(test_user_2_wallpaper)); | 115 EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(test_user_2_wallpaper)); |
121 EXPECT_EQ(path, path2); | 116 EXPECT_EQ(path, path2); |
122 | 117 |
123 // Not logged in user's wallpaper cache should be cleared. | 118 // Not logged in user's wallpaper cache should be cleared. |
124 EXPECT_FALSE(test_api->GetWallpaperFromCache(test_account_id_3.GetUserEmail(), | |
125 &cached_wallpaper)); | |
126 EXPECT_FALSE( | 119 EXPECT_FALSE( |
127 test_api->GetPathFromCache(test_account_id_3.GetUserEmail(), &path)); | 120 test_api->GetWallpaperFromCache(test_account_id_3, &cached_wallpaper)); |
| 121 EXPECT_FALSE(test_api->GetPathFromCache(test_account_id_3, &path)); |
128 } | 122 } |
129 | 123 |
130 // Test that the user's wallpaper cache is cleared after the user is removed. | 124 // Test that the user's wallpaper cache is cleared after the user is removed. |
131 TEST_F(WallpaperManagerCacheTest, CacheClearedOnUserRemoval) { | 125 TEST_F(WallpaperManagerCacheTest, CacheClearedOnUserRemoval) { |
132 const AccountId test_account_id_1 = | 126 const AccountId test_account_id_1 = |
133 AccountId::FromUserEmail("test1@example.com"); | 127 AccountId::FromUserEmail("test1@example.com"); |
134 const AccountId test_account_id_2 = | 128 const AccountId test_account_id_2 = |
135 AccountId::FromUserEmail("test2@example.com"); | 129 AccountId::FromUserEmail("test2@example.com"); |
136 const base::FilePath path1("user1_custom_path"); | 130 const base::FilePath path1("user1_custom_path"); |
137 const base::FilePath path2("user2_custom_path"); | 131 const base::FilePath path2("user2_custom_path"); |
138 fake_user_manager()->AddUser(test_account_id_1); | 132 fake_user_manager()->AddUser(test_account_id_1); |
139 fake_user_manager()->AddUser(test_account_id_2); | 133 fake_user_manager()->AddUser(test_account_id_2); |
140 | 134 |
141 scoped_ptr<WallpaperManager::TestApi> test_api( | 135 scoped_ptr<WallpaperManager::TestApi> test_api( |
142 new WallpaperManager::TestApi(WallpaperManager::Get())); | 136 new WallpaperManager::TestApi(WallpaperManager::Get())); |
143 | 137 |
144 const gfx::ImageSkia test_user_1_wallpaper = CreateTestImage(SK_ColorRED); | 138 const gfx::ImageSkia test_user_1_wallpaper = CreateTestImage(SK_ColorRED); |
145 const gfx::ImageSkia test_user_2_wallpaper = CreateTestImage(SK_ColorGREEN); | 139 const gfx::ImageSkia test_user_2_wallpaper = CreateTestImage(SK_ColorGREEN); |
146 test_api->SetWallpaperCache(test_account_id_1.GetUserEmail(), path1, | 140 test_api->SetWallpaperCache(test_account_id_1, path1, test_user_1_wallpaper); |
147 test_user_1_wallpaper); | 141 test_api->SetWallpaperCache(test_account_id_2, path2, test_user_2_wallpaper); |
148 test_api->SetWallpaperCache(test_account_id_2.GetUserEmail(), path2, | |
149 test_user_2_wallpaper); | |
150 | 142 |
151 gfx::ImageSkia cached_wallpaper; | 143 gfx::ImageSkia cached_wallpaper; |
152 // Test that both user1 and user2's wallpaper can be found in cache. | 144 // Test that both user1 and user2's wallpaper can be found in cache. |
153 EXPECT_TRUE(test_api->GetWallpaperFromCache(test_account_id_1.GetUserEmail(), | 145 EXPECT_TRUE( |
154 &cached_wallpaper)); | 146 test_api->GetWallpaperFromCache(test_account_id_1, &cached_wallpaper)); |
155 EXPECT_TRUE(test_api->GetWallpaperFromCache(test_account_id_2.GetUserEmail(), | 147 EXPECT_TRUE( |
156 &cached_wallpaper)); | 148 test_api->GetWallpaperFromCache(test_account_id_2, &cached_wallpaper)); |
157 | 149 |
158 // Remove user2. | 150 // Remove user2. |
159 fake_user_manager()->RemoveUserFromList(test_account_id_2); | 151 fake_user_manager()->RemoveUserFromList(test_account_id_2); |
160 | 152 |
161 // Test that only user1's wallpaper can be found in cache. | 153 // Test that only user1's wallpaper can be found in cache. |
162 EXPECT_TRUE(test_api->GetWallpaperFromCache(test_account_id_1.GetUserEmail(), | 154 EXPECT_TRUE( |
163 &cached_wallpaper)); | 155 test_api->GetWallpaperFromCache(test_account_id_1, &cached_wallpaper)); |
164 EXPECT_FALSE(test_api->GetWallpaperFromCache(test_account_id_2.GetUserEmail(), | 156 EXPECT_FALSE( |
165 &cached_wallpaper)); | 157 test_api->GetWallpaperFromCache(test_account_id_2, &cached_wallpaper)); |
166 } | 158 } |
167 | 159 |
168 } // namespace chromeos | 160 } // namespace chromeos |
OLD | NEW |