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

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

Issue 1412813003: This CL replaces user_manager::UserID with AccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@468875--Chrome-OS-handles-deletion-of-Gmail-account-poorly--Create-AccountID-structure-part2--user_names
Patch Set: Fix Win GN build. Created 5 years, 1 month 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
OLDNEW
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 "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" 5 #include "chrome/browser/chromeos/login/users/wallpaper/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/desktop_background/desktop_background_controller_test_api.h" 9 #include "ash/desktop_background/desktop_background_controller_test_api.h"
10 #include "ash/display/display_manager.h" 10 #include "ash/display/display_manager.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 base::FilePath wallpaper_path = 104 base::FilePath wallpaper_path =
105 WallpaperManager::Get()->GetCustomWallpaperPath(sub_dir, 105 WallpaperManager::Get()->GetCustomWallpaperPath(sub_dir,
106 username_hash, 106 username_hash,
107 id); 107 id);
108 if (!base::DirectoryExists(wallpaper_path.DirName())) 108 if (!base::DirectoryExists(wallpaper_path.DirName()))
109 base::CreateDirectory(wallpaper_path.DirName()); 109 base::CreateDirectory(wallpaper_path.DirName());
110 110
111 return wallpaper_path; 111 return wallpaper_path;
112 } 112 }
113 113
114 // Logs in |username|. 114 // Logs in |account_id|.
115 void LogIn(const std::string& username, const std::string& username_hash) { 115 void LogIn(const AccountId& account_id, const std::string& user_id_hash) {
116 user_manager::UserManager::Get()->UserLoggedIn( 116 user_manager::UserManager::Get()->UserLoggedIn(account_id, user_id_hash,
117 username, username_hash, false); 117 false);
118 WaitAsyncWallpaperLoadStarted(); 118 WaitAsyncWallpaperLoadStarted();
119 } 119 }
120 120
121 // Logs in |username| and sets it as child account. 121 // Logs in |account_id| and sets it as child account.
122 void LogInAsChild( 122 void LogInAsChild(const AccountId& account_id,
123 const std::string& username, const std::string& username_hash) { 123 const std::string& user_id_hash) {
124 user_manager::UserManager::Get()->UserLoggedIn( 124 user_manager::UserManager::Get()->UserLoggedIn(account_id, user_id_hash,
125 username, username_hash, false); 125 false);
126 user_manager::User* user = 126 user_manager::User* user =
127 user_manager::UserManager::Get()->FindUserAndModify(username); 127 user_manager::UserManager::Get()->FindUserAndModify(account_id);
128 user_manager::UserManager::Get()->ChangeUserChildStatus( 128 user_manager::UserManager::Get()->ChangeUserChildStatus(
129 user, true /* is_child */); 129 user, true /* is_child */);
130 } 130 }
131 131
132 int LoadedWallpapers() { 132 int LoadedWallpapers() {
133 return WallpaperManager::Get()->loaded_wallpapers_for_test(); 133 return WallpaperManager::Get()->loaded_wallpapers_for_test();
134 } 134 }
135 135
136 void CacheUserWallpaper(const std::string& user) { 136 void CacheUserWallpaper(const std::string& user) {
137 WallpaperManager::Get()->CacheUserWallpaper(user); 137 WallpaperManager::Get()->CacheUserWallpaper(user);
(...skipping 24 matching lines...) Expand all
162 162
163 private: 163 private:
164 DISALLOW_COPY_AND_ASSIGN(WallpaperManagerBrowserTest); 164 DISALLOW_COPY_AND_ASSIGN(WallpaperManagerBrowserTest);
165 }; 165 };
166 166
167 // Tests that the appropriate custom wallpaper (large vs. small) is loaded 167 // Tests that the appropriate custom wallpaper (large vs. small) is loaded
168 // depending on the desktop resolution. 168 // depending on the desktop resolution.
169 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 169 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
170 LoadCustomLargeWallpaperForLargeExternalScreen) { 170 LoadCustomLargeWallpaperForLargeExternalScreen) {
171 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 171 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
172 LogIn(kTestUser1, kTestUser1Hash); 172 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
173 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue()); 173 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue());
174 base::FilePath small_wallpaper_path = GetCustomWallpaperPath( 174 base::FilePath small_wallpaper_path = GetCustomWallpaperPath(
175 wallpaper::kSmallWallpaperSubDir, kTestUser1Hash, id); 175 wallpaper::kSmallWallpaperSubDir, kTestUser1Hash, id);
176 base::FilePath large_wallpaper_path = GetCustomWallpaperPath( 176 base::FilePath large_wallpaper_path = GetCustomWallpaperPath(
177 wallpaper::kLargeWallpaperSubDir, kTestUser1Hash, id); 177 wallpaper::kLargeWallpaperSubDir, kTestUser1Hash, id);
178 178
179 // Saves the small/large resolution wallpapers to small/large custom 179 // Saves the small/large resolution wallpapers to small/large custom
180 // wallpaper paths. 180 // wallpaper paths.
181 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile( 181 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile(
182 small_wallpaper_path, 182 small_wallpaper_path,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 EXPECT_EQ(kLargeWallpaperHeight, wallpaper.height()); 238 EXPECT_EQ(kLargeWallpaperHeight, wallpaper.height());
239 } 239 }
240 240
241 // If chrome tries to reload the same wallpaper twice, the latter request should 241 // If chrome tries to reload the same wallpaper twice, the latter request should
242 // be prevented. Otherwise, there are some strange animation issues as 242 // be prevented. Otherwise, there are some strange animation issues as
243 // described in crbug.com/158383. 243 // described in crbug.com/158383.
244 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 244 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
245 PreventReloadingSameWallpaper) { 245 PreventReloadingSameWallpaper) {
246 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 246 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
247 // New user log in, a default wallpaper is loaded. 247 // New user log in, a default wallpaper is loaded.
248 LogIn(kTestUser1, kTestUser1Hash); 248 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
249 EXPECT_EQ(1, LoadedWallpapers()); 249 EXPECT_EQ(1, LoadedWallpapers());
250 // Loads the same wallpaper before the initial one finished. It should be 250 // Loads the same wallpaper before the initial one finished. It should be
251 // prevented. 251 // prevented.
252 wallpaper_manager->SetUserWallpaperNow(kTestUser1); 252 wallpaper_manager->SetUserWallpaperNow(kTestUser1);
253 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 253 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
254 EXPECT_EQ(1, LoadedWallpapers()); 254 EXPECT_EQ(1, LoadedWallpapers());
255 // Loads the same wallpaper after the initial one finished. It should be 255 // Loads the same wallpaper after the initial one finished. It should be
256 // prevented. 256 // prevented.
257 wallpaper_manager->SetUserWallpaperNow(kTestUser1); 257 wallpaper_manager->SetUserWallpaperNow(kTestUser1);
258 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 258 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
(...skipping 30 matching lines...) Expand all
289 EXPECT_EQ(2, LoadedWallpapers()); 289 EXPECT_EQ(2, LoadedWallpapers());
290 } 290 }
291 291
292 // Some users have old user profiles which may have legacy wallpapers. And these 292 // Some users have old user profiles which may have legacy wallpapers. And these
293 // lagacy wallpapers should migrate to new wallpaper picker version seamlessly. 293 // lagacy wallpapers should migrate to new wallpaper picker version seamlessly.
294 // This tests make sure we compatible with migrated old wallpapers. 294 // This tests make sure we compatible with migrated old wallpapers.
295 // crosbug.com/38429 295 // crosbug.com/38429
296 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 296 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
297 PRE_UseMigratedWallpaperInfo) { 297 PRE_UseMigratedWallpaperInfo) {
298 // New user log in, a default wallpaper is loaded. 298 // New user log in, a default wallpaper is loaded.
299 LogIn(kTestUser1, kTestUser1Hash); 299 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
300 // Old wallpaper migration code doesn't exist in codebase anymore. Modify user 300 // Old wallpaper migration code doesn't exist in codebase anymore. Modify user
301 // wallpaper info directly to simulate the wallpaper migration. See 301 // wallpaper info directly to simulate the wallpaper migration. See
302 // crosbug.com/38429 for details about why we modify wallpaper info this way. 302 // crosbug.com/38429 for details about why we modify wallpaper info this way.
303 WallpaperInfo info = {"123", WALLPAPER_LAYOUT_CENTER_CROPPED, 303 WallpaperInfo info = {"123", WALLPAPER_LAYOUT_CENTER_CROPPED,
304 user_manager::User::DEFAULT, 304 user_manager::User::DEFAULT,
305 base::Time::Now().LocalMidnight()}; 305 base::Time::Now().LocalMidnight()};
306 base::FilePath user_data_dir; 306 base::FilePath user_data_dir;
307 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); 307 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir));
308 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile( 308 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile(
309 user_data_dir.Append("123"), 309 user_data_dir.Append("123"),
310 wallpaper_manager_test_utils::kWallpaperSize, 310 wallpaper_manager_test_utils::kWallpaperSize,
311 wallpaper_manager_test_utils::kWallpaperSize, 311 wallpaper_manager_test_utils::kWallpaperSize,
312 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor)); 312 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor));
313 WallpaperManager::Get()->SetUserWallpaperInfo(kTestUser1, info, true); 313 WallpaperManager::Get()->SetUserWallpaperInfo(kTestUser1, info, true);
314 } 314 }
315 315
316 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 316 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
317 UseMigratedWallpaperInfo) { 317 UseMigratedWallpaperInfo) {
318 LogIn(kTestUser1, kTestUser1Hash); 318 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
319 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 319 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
320 // This test should finish normally. If timeout, it is probably because 320 // This test should finish normally. If timeout, it is probably because
321 // migrated wallpaper is somehow not loaded. Bad things can happen if 321 // migrated wallpaper is somehow not loaded. Bad things can happen if
322 // wallpaper is not loaded at login screen. One example is: crosbug.com/38429. 322 // wallpaper is not loaded at login screen. One example is: crosbug.com/38429.
323 } 323 }
324 324
325 // Some users have old user profiles which may never get a chance to migrate. 325 // Some users have old user profiles which may never get a chance to migrate.
326 // This tests make sure we compatible with these profiles. 326 // This tests make sure we compatible with these profiles.
327 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 327 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
328 PRE_UsePreMigrationWallpaperInfo) { 328 PRE_UsePreMigrationWallpaperInfo) {
329 // New user log in, a default wallpaper is loaded. 329 // New user log in, a default wallpaper is loaded.
330 LogIn(kTestUser1, kTestUser1Hash); 330 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
331 // Old wallpaper migration code doesn't exist in codebase anymore. So if 331 // Old wallpaper migration code doesn't exist in codebase anymore. So if
332 // user's profile is not migrated, it is the same as no wallpaper info. To 332 // user's profile is not migrated, it is the same as no wallpaper info. To
333 // simulate this, we remove user's wallpaper info here. 333 // simulate this, we remove user's wallpaper info here.
334 WallpaperManager::Get()->RemoveUserWallpaperInfo(kTestUser1); 334 WallpaperManager::Get()->RemoveUserWallpaperInfo(kTestUser1);
335 } 335 }
336 336
337 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 337 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
338 UsePreMigrationWallpaperInfo) { 338 UsePreMigrationWallpaperInfo) {
339 LogIn(kTestUser1, kTestUser1Hash); 339 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
340 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 340 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
341 // This test should finish normally. If timeout, it is probably because chrome 341 // This test should finish normally. If timeout, it is probably because chrome
342 // can not handle pre migrated user profile (M21 profile or older). 342 // can not handle pre migrated user profile (M21 profile or older).
343 } 343 }
344 344
345 // Test for http://crbug.com/265689. When hooked up a large external monitor, 345 // Test for http://crbug.com/265689. When hooked up a large external monitor,
346 // the default large resolution wallpaper should load. 346 // the default large resolution wallpaper should load.
347 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 347 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
348 HotPlugInScreenAtGAIALoginScreen) { 348 HotPlugInScreenAtGAIALoginScreen) {
349 UpdateDisplay("800x600"); 349 UpdateDisplay("800x600");
(...skipping 17 matching lines...) Expand all
367 command_line->AppendSwitch(chromeos::switches::kDisableLoginAnimations); 367 command_line->AppendSwitch(chromeos::switches::kDisableLoginAnimations);
368 command_line->AppendSwitch(chromeos::switches::kDisableBootAnimation); 368 command_line->AppendSwitch(chromeos::switches::kDisableBootAnimation);
369 } 369 }
370 }; 370 };
371 371
372 // Same test as WallpaperManagerBrowserTest.UseMigratedWallpaperInfo. But 372 // Same test as WallpaperManagerBrowserTest.UseMigratedWallpaperInfo. But
373 // disabled boot and login animation. 373 // disabled boot and login animation.
374 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation, 374 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation,
375 PRE_UseMigratedWallpaperInfo) { 375 PRE_UseMigratedWallpaperInfo) {
376 // New user log in, a default wallpaper is loaded. 376 // New user log in, a default wallpaper is loaded.
377 LogIn(kTestUser1, kTestUser1Hash); 377 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
378 // Old wallpaper migration code doesn't exist in codebase anymore. Modify user 378 // Old wallpaper migration code doesn't exist in codebase anymore. Modify user
379 // wallpaper info directly to simulate the wallpaper migration. See 379 // wallpaper info directly to simulate the wallpaper migration. See
380 // crosbug.com/38429 for details about why we modify wallpaper info this way. 380 // crosbug.com/38429 for details about why we modify wallpaper info this way.
381 WallpaperInfo info = {"123", WALLPAPER_LAYOUT_CENTER_CROPPED, 381 WallpaperInfo info = {"123", WALLPAPER_LAYOUT_CENTER_CROPPED,
382 user_manager::User::DEFAULT, 382 user_manager::User::DEFAULT,
383 base::Time::Now().LocalMidnight()}; 383 base::Time::Now().LocalMidnight()};
384 base::FilePath user_data_dir; 384 base::FilePath user_data_dir;
385 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); 385 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir));
386 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile( 386 ASSERT_TRUE(wallpaper_manager_test_utils::WriteJPEGFile(
387 user_data_dir.Append("123"), 387 user_data_dir.Append("123"),
388 wallpaper_manager_test_utils::kWallpaperSize, 388 wallpaper_manager_test_utils::kWallpaperSize,
389 wallpaper_manager_test_utils::kWallpaperSize, 389 wallpaper_manager_test_utils::kWallpaperSize,
390 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor)); 390 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor));
391 WallpaperManager::Get()->SetUserWallpaperInfo(kTestUser1, info, true); 391 WallpaperManager::Get()->SetUserWallpaperInfo(kTestUser1, info, true);
392 } 392 }
393 393
394 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation, 394 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation,
395 UseMigratedWallpaperInfo) { 395 UseMigratedWallpaperInfo) {
396 LogIn(kTestUser1, kTestUser1Hash); 396 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
397 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 397 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
398 // This test should finish normally. If timeout, it is probably because 398 // This test should finish normally. If timeout, it is probably because
399 // migrated wallpaper is somehow not loaded. Bad things can happen if 399 // migrated wallpaper is somehow not loaded. Bad things can happen if
400 // wallpaper is not loaded at login screen. One example is: crosbug.com/38429. 400 // wallpaper is not loaded at login screen. One example is: crosbug.com/38429.
401 } 401 }
402 402
403 // Same test as WallpaperManagerBrowserTest.UsePreMigrationWallpaperInfo. But 403 // Same test as WallpaperManagerBrowserTest.UsePreMigrationWallpaperInfo. But
404 // disabled boot and login animation. 404 // disabled boot and login animation.
405 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation, 405 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation,
406 PRE_UsePreMigrationWallpaperInfo) { 406 PRE_UsePreMigrationWallpaperInfo) {
407 // New user log in, a default wallpaper is loaded. 407 // New user log in, a default wallpaper is loaded.
408 LogIn(kTestUser1, kTestUser1Hash); 408 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
409 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 409 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
410 // Old wallpaper migration code doesn't exist in codebase anymore. So if 410 // Old wallpaper migration code doesn't exist in codebase anymore. So if
411 // user's profile is not migrated, it is the same as no wallpaper info. To 411 // user's profile is not migrated, it is the same as no wallpaper info. To
412 // simulate this, we remove user's wallpaper info here. 412 // simulate this, we remove user's wallpaper info here.
413 WallpaperManager::Get()->RemoveUserWallpaperInfo(kTestUser1); 413 WallpaperManager::Get()->RemoveUserWallpaperInfo(kTestUser1);
414 } 414 }
415 415
416 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation, 416 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestNoAnimation,
417 UsePreMigrationWallpaperInfo) { 417 UsePreMigrationWallpaperInfo) {
418 LogIn(kTestUser1, kTestUser1Hash); 418 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
419 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 419 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
420 // This test should finish normally. If timeout, it is probably because chrome 420 // This test should finish normally. If timeout, it is probably because chrome
421 // can not handle pre migrated user profile (M21 profile or older). 421 // can not handle pre migrated user profile (M21 profile or older).
422 } 422 }
423 423
424 class WallpaperManagerBrowserTestCrashRestore 424 class WallpaperManagerBrowserTestCrashRestore
425 : public WallpaperManagerBrowserTest { 425 : public WallpaperManagerBrowserTest {
426 public: 426 public:
427 void SetUpCommandLine(base::CommandLine* command_line) override { 427 void SetUpCommandLine(base::CommandLine* command_line) override {
428 command_line->AppendSwitch(chromeos::switches::kDisableLoginAnimations); 428 command_line->AppendSwitch(chromeos::switches::kDisableLoginAnimations);
429 command_line->AppendSwitch(chromeos::switches::kDisableBootAnimation); 429 command_line->AppendSwitch(chromeos::switches::kDisableBootAnimation);
430 command_line->AppendSwitchASCII(switches::kLoginUser, kTestUser1); 430 command_line->AppendSwitchASCII(switches::kLoginUser, kTestUser1);
431 command_line->AppendSwitchASCII(switches::kLoginProfile, "user"); 431 command_line->AppendSwitchASCII(switches::kLoginProfile, "user");
432 } 432 }
433 }; 433 };
434 434
435 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestCrashRestore, 435 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestCrashRestore,
436 PRE_RestoreWallpaper) { 436 PRE_RestoreWallpaper) {
437 LogIn(kTestUser1, kTestUser1Hash); 437 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
438 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 438 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
439 } 439 }
440 440
441 // Test for crbug.com/270278. It simulates a browser crash and verifies if user 441 // Test for crbug.com/270278. It simulates a browser crash and verifies if user
442 // wallpaper is loaded. 442 // wallpaper is loaded.
443 // Fails on the MSAN bots. See http://crbug.com/444477 443 // Fails on the MSAN bots. See http://crbug.com/444477
444 #if defined(MEMORY_SANITIZER) 444 #if defined(MEMORY_SANITIZER)
445 #define MAYBE_RestoreWallpaper DISABLED_RestoreWallpaper 445 #define MAYBE_RestoreWallpaper DISABLED_RestoreWallpaper
446 #else 446 #else
447 #define MAYBE_RestoreWallpaper RestoreWallpaper 447 #define MAYBE_RestoreWallpaper RestoreWallpaper
(...skipping 14 matching lines...) Expand all
462 // Creates a test image of size 1x1. 462 // Creates a test image of size 1x1.
463 gfx::ImageSkia CreateTestImage(SkColor color) { 463 gfx::ImageSkia CreateTestImage(SkColor color) {
464 return wallpaper_manager_test_utils::CreateTestImage(1, 1, color); 464 return wallpaper_manager_test_utils::CreateTestImage(1, 1, color);
465 } 465 }
466 }; 466 };
467 467
468 // Sets kTestUser1's wallpaper to a custom wallpaper. 468 // Sets kTestUser1's wallpaper to a custom wallpaper.
469 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestCacheUpdate, 469 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTestCacheUpdate,
470 PRE_VerifyWallpaperCache) { 470 PRE_VerifyWallpaperCache) {
471 // Add kTestUser1 to user list. kTestUser1 is the default login profile. 471 // Add kTestUser1 to user list. kTestUser1 is the default login profile.
472 LogIn(kTestUser1, kTestUser1Hash); 472 LogIn(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
473 473
474 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue()); 474 std::string id = base::Int64ToString(base::Time::Now().ToInternalValue());
475 WallpaperManager* wallpaper_manager = WallpaperManager::Get(); 475 WallpaperManager* wallpaper_manager = WallpaperManager::Get();
476 base::FilePath small_wallpaper_path = GetCustomWallpaperPath( 476 base::FilePath small_wallpaper_path = GetCustomWallpaperPath(
477 wallpaper::kSmallWallpaperSubDir, kTestUser1Hash, id); 477 wallpaper::kSmallWallpaperSubDir, kTestUser1Hash, id);
478 base::FilePath large_wallpaper_path = GetCustomWallpaperPath( 478 base::FilePath large_wallpaper_path = GetCustomWallpaperPath(
479 wallpaper::kLargeWallpaperSubDir, kTestUser1Hash, id); 479 wallpaper::kLargeWallpaperSubDir, kTestUser1Hash, id);
480 480
481 // Saves the small/large resolution wallpapers to small/large custom 481 // Saves the small/large resolution wallpapers to small/large custom
482 // wallpaper paths. 482 // wallpaper paths.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 528 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
529 scoped_ptr<WallpaperManager::TestApi> test_api; 529 scoped_ptr<WallpaperManager::TestApi> test_api;
530 test_api.reset(new WallpaperManager::TestApi(wallpaper_manager)); 530 test_api.reset(new WallpaperManager::TestApi(wallpaper_manager));
531 gfx::ImageSkia cached_wallpaper; 531 gfx::ImageSkia cached_wallpaper;
532 // Previous custom wallpaper should be cached after user login. 532 // Previous custom wallpaper should be cached after user login.
533 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); 533 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
534 base::FilePath original_path; 534 base::FilePath original_path;
535 EXPECT_TRUE(test_api->GetPathFromCache(kTestUser1, &original_path)); 535 EXPECT_TRUE(test_api->GetPathFromCache(kTestUser1, &original_path));
536 EXPECT_FALSE(original_path.empty()); 536 EXPECT_FALSE(original_path.empty());
537 537
538 LogIn(kTestUser2, kTestUser2Hash); 538 LogIn(AccountId::FromUserEmail(kTestUser2), kTestUser2Hash);
539 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 539 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
540 // Login another user should not delete logged in user's wallpaper cache. 540 // Login another user should not delete logged in user's wallpaper cache.
541 // Note active user is still kTestUser1. 541 // Note active user is still kTestUser1.
542 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper)); 542 EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
543 base::FilePath path; 543 base::FilePath path;
544 EXPECT_TRUE(test_api->GetPathFromCache(kTestUser1, &path)); 544 EXPECT_TRUE(test_api->GetPathFromCache(kTestUser1, &path));
545 EXPECT_EQ(original_path, path); 545 EXPECT_EQ(original_path, path);
546 546
547 gfx::ImageSkia red_wallpaper = CreateTestImage(SK_ColorRED); 547 gfx::ImageSkia red_wallpaper = CreateTestImage(SK_ColorRED);
548 wallpaper_manager->SetWallpaperFromImageSkia(kTestUser1, 548 wallpaper_manager->SetWallpaperFromImageSkia(kTestUser1,
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 749 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
750 controller_->GetWallpaper(), 750 controller_->GetWallpaper(),
751 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor)); 751 wallpaper_manager_test_utils::kLargeDefaultWallpaperColor));
752 } 752 }
753 753
754 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, SmallGuestWallpaper) { 754 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, SmallGuestWallpaper) {
755 if (!ash::test::AshTestHelper::SupportsMultipleDisplays()) 755 if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
756 return; 756 return;
757 CreateCmdlineWallpapers(); 757 CreateCmdlineWallpapers();
758 user_manager::UserManager::Get()->UserLoggedIn( 758 user_manager::UserManager::Get()->UserLoggedIn(
759 chromeos::login::kGuestUserName, chromeos::login::kGuestUserName, false); 759 chromeos::login::GuestAccountId(), chromeos::login::kGuestUserName,
760 false);
760 UpdateDisplay("800x600"); 761 UpdateDisplay("800x600");
761 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 762 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
762 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 763 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
763 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 764 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
764 controller_->GetWallpaper(), 765 controller_->GetWallpaper(),
765 wallpaper_manager_test_utils::kSmallGuestWallpaperColor)); 766 wallpaper_manager_test_utils::kSmallGuestWallpaperColor));
766 } 767 }
767 768
768 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, LargeGuestWallpaper) { 769 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, LargeGuestWallpaper) {
769 if (!ash::test::AshTestHelper::SupportsMultipleDisplays()) 770 if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
770 return; 771 return;
771 772
772 CreateCmdlineWallpapers(); 773 CreateCmdlineWallpapers();
773 user_manager::UserManager::Get()->UserLoggedIn( 774 user_manager::UserManager::Get()->UserLoggedIn(
774 chromeos::login::kGuestUserName, chromeos::login::kGuestUserName, false); 775 chromeos::login::GuestAccountId(), chromeos::login::kGuestUserName,
776 false);
775 UpdateDisplay("1600x1200"); 777 UpdateDisplay("1600x1200");
776 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 778 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
777 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 779 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
778 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 780 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
779 controller_->GetWallpaper(), 781 controller_->GetWallpaper(),
780 wallpaper_manager_test_utils::kLargeGuestWallpaperColor)); 782 wallpaper_manager_test_utils::kLargeGuestWallpaperColor));
781 } 783 }
782 784
783 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, SmallChildWallpaper) { 785 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, SmallChildWallpaper) {
784 if (!ash::test::AshTestHelper::SupportsMultipleDisplays()) 786 if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
785 return; 787 return;
786 CreateCmdlineWallpapers(); 788 CreateCmdlineWallpapers();
787 LogInAsChild(kTestUser1, kTestUser1Hash); 789 LogInAsChild(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
788 UpdateDisplay("800x600"); 790 UpdateDisplay("800x600");
789 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 791 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
790 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 792 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
791 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 793 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
792 controller_->GetWallpaper(), 794 controller_->GetWallpaper(),
793 wallpaper_manager_test_utils::kSmallChildWallpaperColor)); 795 wallpaper_manager_test_utils::kSmallChildWallpaperColor));
794 } 796 }
795 797
796 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, LargeChildWallpaper) { 798 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, LargeChildWallpaper) {
797 if (!ash::test::AshTestHelper::SupportsMultipleDisplays()) 799 if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
798 return; 800 return;
799 801
800 CreateCmdlineWallpapers(); 802 CreateCmdlineWallpapers();
801 LogInAsChild(kTestUser1, kTestUser1Hash); 803 LogInAsChild(AccountId::FromUserEmail(kTestUser1), kTestUser1Hash);
802 UpdateDisplay("1600x1200"); 804 UpdateDisplay("1600x1200");
803 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 805 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
804 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 806 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
805 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 807 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
806 controller_->GetWallpaper(), 808 controller_->GetWallpaper(),
807 wallpaper_manager_test_utils::kLargeChildWallpaperColor)); 809 wallpaper_manager_test_utils::kLargeChildWallpaperColor));
808 } 810 }
809 811
810 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, 812 IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest,
811 SwitchBetweenDefaultAndCustom) { 813 SwitchBetweenDefaultAndCustom) {
812 // Start loading the default wallpaper. 814 // Start loading the default wallpaper.
813 UpdateDisplay("640x480"); 815 UpdateDisplay("640x480");
814 CreateCmdlineWallpapers(); 816 CreateCmdlineWallpapers();
815 user_manager::UserManager::Get()->UserLoggedIn( 817 user_manager::UserManager::Get()->UserLoggedIn(
816 chromeos::login::kStubUser, "test_hash", false); 818 chromeos::login::StubAccountId(), "test_hash", false);
817 819
818 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 820 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
819 821
820 // Custom wallpaper should be applied immediately, canceling the default 822 // Custom wallpaper should be applied immediately, canceling the default
821 // wallpaper load task. 823 // wallpaper load task.
822 gfx::ImageSkia image = wallpaper_manager_test_utils::CreateTestImage( 824 gfx::ImageSkia image = wallpaper_manager_test_utils::CreateTestImage(
823 640, 480, wallpaper_manager_test_utils::kCustomWallpaperColor); 825 640, 480, wallpaper_manager_test_utils::kCustomWallpaperColor);
824 WallpaperManager::Get()->SetCustomWallpaper(chromeos::login::kStubUser, 826 WallpaperManager::Get()->SetCustomWallpaper(chromeos::login::kStubUser,
825 "test_hash", 827 "test_hash",
826 "test-nofile.jpeg", 828 "test-nofile.jpeg",
827 WALLPAPER_LAYOUT_STRETCH, 829 WALLPAPER_LAYOUT_STRETCH,
828 user_manager::User::CUSTOMIZED, 830 user_manager::User::CUSTOMIZED,
829 image, 831 image,
830 true); 832 true);
831 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 833 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
832 834
833 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 835 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
834 controller_->GetWallpaper(), 836 controller_->GetWallpaper(),
835 wallpaper_manager_test_utils::kCustomWallpaperColor)); 837 wallpaper_manager_test_utils::kCustomWallpaperColor));
836 838
837 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); 839 WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
838 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished(); 840 wallpaper_manager_test_utils::WaitAsyncWallpaperLoadFinished();
839 841
840 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor( 842 EXPECT_TRUE(wallpaper_manager_test_utils::ImageIsNearColor(
841 controller_->GetWallpaper(), 843 controller_->GetWallpaper(),
842 wallpaper_manager_test_utils::kSmallDefaultWallpaperColor)); 844 wallpaper_manager_test_utils::kSmallDefaultWallpaperColor));
843 } 845 }
844 846
845 } // namespace chromeos 847 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698