Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc

Issue 11299284: Revert 170507 - Add public accounts to UserManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/desktop_background/desktop_background_controller.h" 7 #include "ash/desktop_background/desktop_background_controller.h"
8 #include "ash/desktop_background/desktop_background_controller_observer.h" 8 #include "ash/desktop_background/desktop_background_controller_observer.h"
9 #include "ash/display/display_manager.h" 9 #include "ash/display/display_manager.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
11 #include "ash/test/display_manager_test_api.h" 11 #include "ash/test/display_manager_test_api.h"
12 #include "base/file_util.h" 12 #include "base/file_util.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
15 #include "base/time.h" 15 #include "base/time.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" 17 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h"
18 #include "chrome/browser/chromeos/login/user.h" 18 #include "chrome/browser/chromeos/login/user.h"
19 #include "chrome/browser/chromeos/login/user_manager.h"
20 #include "chrome/browser/prefs/scoped_user_pref_update.h" 19 #include "chrome/browser/prefs/scoped_user_pref_update.h"
21 #include "chrome/test/base/testing_browser_process.h" 20 #include "chrome/test/base/testing_browser_process.h"
22 #include "ui/aura/env.h" 21 #include "ui/aura/env.h"
23 #include "ui/base/resource/resource_bundle.h" 22 #include "ui/base/resource/resource_bundle.h"
24 23
25 using namespace ash; 24 using namespace ash;
26 25
27 namespace chromeos { 26 namespace chromeos {
28 27
29 namespace { 28 namespace {
30 29
30 const char kTestUser1[] = "test-user@example.com";
31
31 #if defined(GOOGLE_CHROME_BUILD) 32 #if defined(GOOGLE_CHROME_BUILD)
32 int kExpectedSmallWallpaperWidth = ash::kSmallWallpaperMaxWidth; 33 int kExpectedSmallWallpaperWidth = ash::kSmallWallpaperMaxWidth;
33 int kExpectedSmallWallpaperHeight = ash::kSmallWallpaperMaxHeight; 34 int kExpectedSmallWallpaperHeight = ash::kSmallWallpaperMaxHeight;
34 int kExpectedLargeWallpaperWidth = ash::kLargeWallpaperMaxWidth; 35 int kExpectedLargeWallpaperWidth = ash::kLargeWallpaperMaxWidth;
35 int kExpectedLargeWallpaperHeight = ash::kLargeWallpaperMaxHeight; 36 int kExpectedLargeWallpaperHeight = ash::kLargeWallpaperMaxHeight;
36 #else 37 #else
37 // The defualt wallpaper for non official build is a gradient wallpaper which 38 // The defualt wallpaper for non official build is a gradient wallpaper which
38 // stretches to fit screen. 39 // stretches to fit screen.
39 int kExpectedSmallWallpaperWidth = 256; 40 int kExpectedSmallWallpaperWidth = 256;
40 int kExpectedSmallWallpaperHeight = ash::kSmallWallpaperMaxHeight; 41 int kExpectedSmallWallpaperHeight = ash::kSmallWallpaperMaxHeight;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 76 }
76 77
77 void WaitAsyncWallpaperLoad() { 78 void WaitAsyncWallpaperLoad() {
78 MessageLoop::current()->Run(); 79 MessageLoop::current()->Run();
79 } 80 }
80 81
81 virtual void OnWallpaperDataChanged() OVERRIDE { 82 virtual void OnWallpaperDataChanged() OVERRIDE {
82 MessageLoop::current()->Quit(); 83 MessageLoop::current()->Quit();
83 } 84 }
84 85
86 // Sets |username| wallpaper.
87 void SetUserWallpaper(const std::string& username) {
88 ListPrefUpdate users_pref(local_state_, "LoggedInUsers");
89 users_pref->AppendIfNotPresent(new base::StringValue(username));
90 WallpaperManager::Get()->SetUserWallpaper(username);
91 }
92
85 protected: 93 protected:
86 // Saves bitmap |resource_id| to disk. 94 // Saves bitmap |resource_id| to disk.
87 void SaveUserWallpaperData(const std::string& username, 95 void SaveUserWallpaperData(const std::string& username,
88 const FilePath& wallpaper_path, 96 const FilePath& wallpaper_path,
89 int resource_id) { 97 int resource_id) {
90 scoped_refptr<base::RefCountedStaticMemory> image_data( 98 scoped_refptr<base::RefCountedStaticMemory> image_data(
91 ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( 99 ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale(
92 resource_id, ui::SCALE_FACTOR_100P)); 100 resource_id, ui::SCALE_FACTOR_100P));
93 int written = file_util::WriteFile( 101 int written = file_util::WriteFile(
94 wallpaper_path, 102 wallpaper_path,
(...skipping 19 matching lines...) Expand all
114 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 122 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
115 LoadLargeWallpaperForLargeExternalScreen) { 123 LoadLargeWallpaperForLargeExternalScreen) {
116 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 124 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
117 125
118 WallpaperInfo info = { 126 WallpaperInfo info = {
119 "", 127 "",
120 WALLPAPER_LAYOUT_CENTER_CROPPED, 128 WALLPAPER_LAYOUT_CENTER_CROPPED,
121 User::DEFAULT, 129 User::DEFAULT,
122 base::Time::Now().LocalMidnight() 130 base::Time::Now().LocalMidnight()
123 }; 131 };
124 wallpaper_manager->SetUserWallpaperInfo(UserManager::kStubUser, info, true); 132 wallpaper_manager->SetUserWallpaperInfo(kTestUser1, info, true);
125 133
126 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 134 SetUserWallpaper(kTestUser1);
127 WaitAsyncWallpaperLoad(); 135 WaitAsyncWallpaperLoad();
128 gfx::ImageSkia wallpaper = controller_->GetWallpaper(); 136 gfx::ImageSkia wallpaper = controller_->GetWallpaper();
129 137
130 // Display is initialized to 800x600. The small resolution default wallpaper 138 // Display is initialized to 800x600. The small resolution default wallpaper
131 // is expected. 139 // is expected.
132 EXPECT_EQ(kExpectedSmallWallpaperWidth, wallpaper.width()); 140 EXPECT_EQ(kExpectedSmallWallpaperWidth, wallpaper.width());
133 EXPECT_EQ(kExpectedSmallWallpaperHeight, wallpaper.height()); 141 EXPECT_EQ(kExpectedSmallWallpaperHeight, wallpaper.height());
134 142
135 // Hook up another 800x600 display. 143 // Hook up another 800x600 display.
136 UpdateDisplay("800x600,800x600"); 144 UpdateDisplay("800x600,800x600");
(...skipping 13 matching lines...) Expand all
150 EXPECT_EQ(kExpectedLargeWallpaperWidth, wallpaper.width()); 158 EXPECT_EQ(kExpectedLargeWallpaperWidth, wallpaper.width());
151 EXPECT_EQ(kExpectedLargeWallpaperHeight, wallpaper.height()); 159 EXPECT_EQ(kExpectedLargeWallpaperHeight, wallpaper.height());
152 } 160 }
153 161
154 // This test is similar to LoadLargeWallpaperForExternalScreen test. Instead of 162 // This test is similar to LoadLargeWallpaperForExternalScreen test. Instead of
155 // testing default wallpaper, it tests custom wallpaper. 163 // testing default wallpaper, it tests custom wallpaper.
156 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 164 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
157 LoadCustomLargeWallpaperForLargeExternalScreen) { 165 LoadCustomLargeWallpaperForLargeExternalScreen) {
158 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 166 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
159 FilePath small_wallpaper_path = 167 FilePath small_wallpaper_path =
160 wallpaper_manager->GetWallpaperPathForUser(UserManager::kStubUser, true); 168 wallpaper_manager->GetWallpaperPathForUser(kTestUser1, true);
161 FilePath large_wallpaper_path = 169 FilePath large_wallpaper_path =
162 wallpaper_manager->GetWallpaperPathForUser(UserManager::kStubUser, false); 170 wallpaper_manager->GetWallpaperPathForUser(kTestUser1, false);
163 171
164 // Saves the small/large resolution wallpapers to small/large custom 172 // Saves the small/large resolution wallpapers to small/large custom
165 // wallpaper paths. 173 // wallpaper paths.
166 SaveUserWallpaperData(UserManager::kStubUser, 174 SaveUserWallpaperData(kTestUser1,
167 small_wallpaper_path, 175 small_wallpaper_path,
168 ash::kDefaultSmallWallpaper.idr); 176 ash::kDefaultSmallWallpaper.idr);
169 SaveUserWallpaperData(UserManager::kStubUser, 177 SaveUserWallpaperData(kTestUser1,
170 large_wallpaper_path, 178 large_wallpaper_path,
171 ash::kDefaultLargeWallpaper.idr); 179 ash::kDefaultLargeWallpaper.idr);
172 180
173 // Saves wallpaper info to local state for user |UserManager::kStubUser|. 181 // Saves wallpaper info to local state for user |kTestUser1|.
174 WallpaperInfo info = { 182 WallpaperInfo info = {
175 "DUMMY", 183 "DUMMY",
176 WALLPAPER_LAYOUT_CENTER_CROPPED, 184 WALLPAPER_LAYOUT_CENTER_CROPPED,
177 User::CUSTOMIZED, 185 User::CUSTOMIZED,
178 base::Time::Now().LocalMidnight() 186 base::Time::Now().LocalMidnight()
179 }; 187 };
180 wallpaper_manager->SetUserWallpaperInfo(UserManager::kStubUser, info, true); 188 wallpaper_manager->SetUserWallpaperInfo(kTestUser1, info, true);
181 189
182 // Set the wallpaper for |UserManager::kStubUser|. 190 // Add user |kTestUser1|.
183 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 191
192 SetUserWallpaper(kTestUser1);
184 WaitAsyncWallpaperLoad(); 193 WaitAsyncWallpaperLoad();
185 gfx::ImageSkia wallpaper = controller_->GetWallpaper(); 194 gfx::ImageSkia wallpaper = controller_->GetWallpaper();
186 195
187 // Display is initialized to 800x600. The small resolution custom wallpaper is 196 // Display is initialized to 800x600. The small resolution custom wallpaper is
188 // expected. 197 // expected.
189 EXPECT_EQ(kExpectedSmallWallpaperWidth, wallpaper.width()); 198 EXPECT_EQ(kExpectedSmallWallpaperWidth, wallpaper.width());
190 EXPECT_EQ(kExpectedSmallWallpaperHeight, wallpaper.height()); 199 EXPECT_EQ(kExpectedSmallWallpaperHeight, wallpaper.height());
191 200
192 // Hook up another 800x600 display. 201 // Hook up another 800x600 display.
193 UpdateDisplay("800x600,800x600"); 202 UpdateDisplay("800x600,800x600");
(...skipping 14 matching lines...) Expand all
208 EXPECT_EQ(kExpectedLargeWallpaperHeight, wallpaper.height()); 217 EXPECT_EQ(kExpectedLargeWallpaperHeight, wallpaper.height());
209 } 218 }
210 219
211 // If chrome tries to reload the same wallpaper twice, the latter request should 220 // If chrome tries to reload the same wallpaper twice, the latter request should
212 // be prevented. Otherwise, there are some strange animation issues as 221 // be prevented. Otherwise, there are some strange animation issues as
213 // described in crbug.com/158383. 222 // described in crbug.com/158383.
214 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 223 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
215 PreventReloadingSameWallpaper) { 224 PreventReloadingSameWallpaper) {
216 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 225 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
217 FilePath small_wallpaper_path = 226 FilePath small_wallpaper_path =
218 wallpaper_manager->GetWallpaperPathForUser(UserManager::kStubUser, true); 227 wallpaper_manager->GetWallpaperPathForUser(kTestUser1, true);
219 228
220 SaveUserWallpaperData(UserManager::kStubUser, 229 SaveUserWallpaperData(kTestUser1,
221 small_wallpaper_path, 230 small_wallpaper_path,
222 ash::kDefaultSmallWallpaper.idr); 231 ash::kDefaultSmallWallpaper.idr);
223 232
224 // Saves wallpaper info to local state for user |UserManager::kStubUser|. 233 // Saves wallpaper info to local state for user |kTestUser1|.
225 WallpaperInfo info = { 234 WallpaperInfo info = {
226 "DUMMY", 235 "DUMMY",
227 WALLPAPER_LAYOUT_CENTER_CROPPED, 236 WALLPAPER_LAYOUT_CENTER_CROPPED,
228 User::CUSTOMIZED, 237 User::CUSTOMIZED,
229 base::Time::Now().LocalMidnight() 238 base::Time::Now().LocalMidnight()
230 }; 239 };
231 wallpaper_manager->SetUserWallpaperInfo(UserManager::kStubUser, info, true); 240 wallpaper_manager->SetUserWallpaperInfo(kTestUser1, info, true);
232 241
233 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 242 SetUserWallpaper(kTestUser1);
234 EXPECT_EQ(1, LoadedWallpapers()); 243 EXPECT_EQ(1, LoadedWallpapers());
235 // Loads the same wallpaper before the initial one finished. It should be 244 // Loads the same wallpaper before the initial one finished. It should be
236 // prevented. 245 // prevented.
237 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 246 SetUserWallpaper(kTestUser1);
238 EXPECT_EQ(1, LoadedWallpapers()); 247 EXPECT_EQ(1, LoadedWallpapers());
239 WaitAsyncWallpaperLoad(); 248 WaitAsyncWallpaperLoad();
240 // Loads the same wallpaper after the initial one finished. It should be 249 // Loads the same wallpaper after the initial one finished. It should be
241 // prevented. 250 // prevented.
242 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 251 SetUserWallpaper(kTestUser1);
243 EXPECT_EQ(1, LoadedWallpapers()); 252 EXPECT_EQ(1, LoadedWallpapers());
244 wallpaper_manager->ClearWallpaperCache(); 253 wallpaper_manager->ClearWallpaperCache();
245 254
246 // Tests default wallpaper for user |UserManager::kStubUser|. 255 // Tests default wallpaper for user |kTestUser1|.
247 info.file = ""; 256 info.file = "";
248 info.type = User::DEFAULT; 257 info.type = User::DEFAULT;
249 wallpaper_manager->SetUserWallpaperInfo(UserManager::kStubUser, info, true); 258 wallpaper_manager->SetUserWallpaperInfo(kTestUser1, info, true);
250 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 259 SetUserWallpaper(kTestUser1);
251 EXPECT_EQ(2, LoadedWallpapers()); 260 EXPECT_EQ(2, LoadedWallpapers());
252 // Loads the same wallpaper before the initial one finished. It should be 261 // Loads the same wallpaper before the initial one finished. It should be
253 // prevented. 262 // prevented.
254 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 263 SetUserWallpaper(kTestUser1);
255 EXPECT_EQ(2, LoadedWallpapers()); 264 EXPECT_EQ(2, LoadedWallpapers());
256 WaitAsyncWallpaperLoad(); 265 WaitAsyncWallpaperLoad();
257 wallpaper_manager->SetUserWallpaper(UserManager::kStubUser); 266 SetUserWallpaper(kTestUser1);
258 EXPECT_EQ(2, LoadedWallpapers()); 267 EXPECT_EQ(2, LoadedWallpapers());
259 } 268 }
260 269
261 } // namepace chromeos 270 } // namepace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/user_manager_unittest.cc ('k') | chrome/browser/chromeos/settings/device_settings_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698