| Index: chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc
|
| diff --git a/chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc b/chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc
|
| index e0af3e12288b966c54160c030ca9ed0404455236..e215d919fed211ef3428f45c5e07c792a946fa39 100644
|
| --- a/chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc
|
| +++ b/chrome/browser/chromeos/login/wallpaper_manager_browsertest.cc
|
| @@ -5,7 +5,6 @@
|
| #include "chrome/browser/chromeos/login/wallpaper_manager.h"
|
|
|
| #include "ash/ash_resources/grit/ash_resources.h"
|
| -#include "ash/ash_switches.h"
|
| #include "ash/desktop_background/desktop_background_controller.h"
|
| #include "ash/desktop_background/desktop_background_controller_observer.h"
|
| #include "ash/desktop_background/desktop_background_controller_test_api.h"
|
| @@ -28,6 +27,7 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/login/user.h"
|
| #include "chrome/browser/chromeos/login/user_manager.h"
|
| +#include "chrome/browser/chromeos/login/wallpaper_manager_test_utils.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| @@ -36,7 +36,7 @@
|
| #include "content/public/test/test_utils.h"
|
| #include "ui/aura/env.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| -#include "ui/gfx/codec/jpeg_codec.h"
|
| +#include "ui/gfx/image/image_skia.h"
|
| #include "ui/gfx/point.h"
|
| #include "ui/gfx/rect.h"
|
|
|
| @@ -101,30 +101,7 @@ class WallpaperManagerBrowserTest : public InProcessBrowserTest,
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| - void WaitAsyncWallpaperLoadFinished() {
|
| - base::RunLoop().RunUntilIdle();
|
| - while (WallpaperManager::Get()->loading_.size()) {
|
| - base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
|
| - base::RunLoop().RunUntilIdle();
|
| - }
|
| - }
|
| -
|
| protected:
|
| - // Colors used for different default wallpapers by
|
| - // WriteWallpapers().
|
| - static const SkColor kLargeWallpaperColor = SK_ColorRED;
|
| - static const SkColor kSmallWallpaperColor = SK_ColorGREEN;
|
| - static const SkColor kLargeGuestWallpaperColor = SK_ColorBLUE;
|
| - static const SkColor kSmallGuestWallpaperColor = SK_ColorYELLOW;
|
| -
|
| - // A color that can be passed to CreateImage(). Specifically chosen to not
|
| - // conflict with any of the default wallpaper colors.
|
| - static const SkColor kCustomWallpaperColor = SK_ColorMAGENTA;
|
| -
|
| - // Dimension used for width and height of default wallpaper images. A
|
| - // small value is used to minimize the amount of time spent compressing
|
| - // and writing images.
|
| - static const int kWallpaperSize = 2;
|
|
|
| // Return custom wallpaper path. Create directory if not exist.
|
| base::FilePath GetCustomWallpaperPath(const char* sub_dir,
|
| @@ -167,146 +144,22 @@ class WallpaperManagerBrowserTest : public InProcessBrowserTest,
|
| WallpaperManager::Get()->ClearDisposableWallpaperCache();
|
| }
|
|
|
| - // Creates a test image of size 1x1.
|
| - gfx::ImageSkia CreateTestImage(int width, int height, SkColor color) {
|
| - SkBitmap bitmap;
|
| - bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
|
| - bitmap.allocPixels();
|
| - bitmap.eraseColor(color);
|
| - return gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
|
| - }
|
| -
|
| - // Writes a JPEG image of the specified size and color to |path|. Returns
|
| - // true on success.
|
| - bool WriteJPEGFile(const base::FilePath& path,
|
| - int width,
|
| - int height,
|
| - SkColor color) {
|
| - SkBitmap bitmap;
|
| - bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height, 0);
|
| - bitmap.allocPixels();
|
| - bitmap.eraseColor(color);
|
| -
|
| - const int kQuality = 80;
|
| - std::vector<unsigned char> output;
|
| - if (!gfx::JPEGCodec::Encode(
|
| - static_cast<const unsigned char*>(bitmap.getPixels()),
|
| - gfx::JPEGCodec::FORMAT_SkBitmap,
|
| - width,
|
| - height,
|
| - bitmap.rowBytes(),
|
| - kQuality,
|
| - &output)) {
|
| - LOG(ERROR) << "Unable to encode " << width << "x" << height << " bitmap";
|
| - return false;
|
| - }
|
| -
|
| - size_t bytes_written = base::WriteFile(
|
| - path, reinterpret_cast<const char*>(&output[0]), output.size());
|
| - if (bytes_written != output.size()) {
|
| - LOG(ERROR) << "Wrote " << bytes_written << " byte(s) instead of "
|
| - << output.size() << " to " << path.value();
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| - }
|
| -
|
| // Initializes default wallpaper paths "*default_*file" and writes JPEG
|
| // wallpaper images to them.
|
| // Only needs to be called (once) by tests that want to test loading of
|
| // default wallpapers.
|
| - void WriteWallpapers() {
|
| + void CreateCmdlineWallpapers() {
|
| wallpaper_dir_.reset(new base::ScopedTempDir);
|
| ASSERT_TRUE(wallpaper_dir_->CreateUniqueTempDir());
|
| -
|
| - std::vector<std::string> options;
|
| - options.push_back(std::string("WM_Test_cmdline"));
|
| - const base::FilePath small_file =
|
| - wallpaper_dir_->path().Append(FILE_PATH_LITERAL("small.jpg"));
|
| - options.push_back(std::string("--") +
|
| - ash::switches::kAshDefaultWallpaperSmall + "=" +
|
| - small_file.value());
|
| - const base::FilePath large_file =
|
| - wallpaper_dir_->path().Append(FILE_PATH_LITERAL("large.jpg"));
|
| - options.push_back(std::string("--") +
|
| - ash::switches::kAshDefaultWallpaperLarge + "=" +
|
| - large_file.value());
|
| - const base::FilePath guest_small_file =
|
| - wallpaper_dir_->path().Append(FILE_PATH_LITERAL("guest_small.jpg"));
|
| - options.push_back(std::string("--") +
|
| - ash::switches::kAshGuestWallpaperSmall + "=" +
|
| - guest_small_file.value());
|
| - const base::FilePath guest_large_file =
|
| - wallpaper_dir_->path().Append(FILE_PATH_LITERAL("guest_large.jpg"));
|
| - options.push_back(std::string("--") +
|
| - ash::switches::kAshGuestWallpaperLarge + "=" +
|
| - guest_large_file.value());
|
| -
|
| - ASSERT_TRUE(WriteJPEGFile(small_file,
|
| - kWallpaperSize,
|
| - kWallpaperSize,
|
| - kSmallWallpaperColor));
|
| - ASSERT_TRUE(WriteJPEGFile(large_file,
|
| - kWallpaperSize,
|
| - kWallpaperSize,
|
| - kLargeWallpaperColor));
|
| - ASSERT_TRUE(WriteJPEGFile(guest_small_file,
|
| - kWallpaperSize,
|
| - kWallpaperSize,
|
| - kSmallGuestWallpaperColor));
|
| - ASSERT_TRUE(WriteJPEGFile(guest_large_file,
|
| - kWallpaperSize,
|
| - kWallpaperSize,
|
| - kLargeGuestWallpaperColor));
|
| -
|
| - wallpaper_manager_command_line_.reset(new base::CommandLine(options));
|
| - WallpaperManager::Get()->SetCommandLineForTesting(
|
| - wallpaper_manager_command_line_.get());
|
| - }
|
| -
|
| - // Returns true if the color at the center of |image| is close to
|
| - // |expected_color|. (The center is used so small wallpaper images can be
|
| - // used.)
|
| - bool ImageIsNearColor(gfx::ImageSkia image, SkColor expected_color) {
|
| - if (image.size().IsEmpty()) {
|
| - LOG(ERROR) << "Image is empty";
|
| - return false;
|
| - }
|
| -
|
| - const SkBitmap* bitmap = image.bitmap();
|
| - if (!bitmap) {
|
| - LOG(ERROR) << "Unable to get bitmap from image";
|
| - return false;
|
| - }
|
| -
|
| - bitmap->lockPixels();
|
| - gfx::Point center = gfx::Rect(image.size()).CenterPoint();
|
| - SkColor image_color = bitmap->getColor(center.x(), center.y());
|
| - bitmap->unlockPixels();
|
| -
|
| - const int kDiff = 3;
|
| - if (std::abs(static_cast<int>(SkColorGetA(image_color)) -
|
| - static_cast<int>(SkColorGetA(expected_color))) > kDiff ||
|
| - std::abs(static_cast<int>(SkColorGetR(image_color)) -
|
| - static_cast<int>(SkColorGetR(expected_color))) > kDiff ||
|
| - std::abs(static_cast<int>(SkColorGetG(image_color)) -
|
| - static_cast<int>(SkColorGetG(expected_color))) > kDiff ||
|
| - std::abs(static_cast<int>(SkColorGetB(image_color)) -
|
| - static_cast<int>(SkColorGetB(expected_color))) > kDiff) {
|
| - LOG(ERROR) << "Expected color near 0x" << std::hex << expected_color
|
| - << " but got 0x" << image_color;
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| + WallpaperManagerTestUtils::CreateCmdlineWallpapers(
|
| + *wallpaper_dir_, &wallpaper_manager_command_line_);
|
| }
|
|
|
| DesktopBackgroundController* controller_;
|
| PrefService* local_state_;
|
| scoped_ptr<base::CommandLine> wallpaper_manager_command_line_;
|
|
|
| - // Directory created by WriteWallpapersAndSetFlags() to store default
|
| + // Directory created by CreateCmdlineWallpapersAndSetFlags() to store default
|
| // wallpaper images.
|
| scoped_ptr<base::ScopedTempDir> wallpaper_dir_;
|
|
|
| @@ -349,7 +202,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
|
|
| // Set the wallpaper for |kTestUser1|.
|
| wallpaper_manager->SetUserWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| gfx::ImageSkia wallpaper = controller_->GetWallpaper();
|
|
|
| // Display is initialized to 800x600. The small resolution custom wallpaper is
|
| @@ -359,7 +212,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
|
|
| // Hook up another 800x600 display. This shouldn't trigger a reload.
|
| UpdateDisplay("800x600,800x600");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // The small resolution custom wallpaper is expected.
|
| EXPECT_EQ(kSmallWallpaperWidth, wallpaper.width());
|
| EXPECT_EQ(kSmallWallpaperHeight, wallpaper.height());
|
| @@ -369,7 +222,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| // Hook up a 2000x2000 display. The large resolution custom wallpaper should
|
| // be loaded.
|
| UpdateDisplay("800x600,2000x2000");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| wallpaper = controller_->GetWallpaper();
|
|
|
| // The large resolution custom wallpaper is expected.
|
| @@ -381,7 +234,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| // Hook up the 2000x2000 display again. The large resolution default wallpaper
|
| // should persist. Test for crbug/165788.
|
| UpdateDisplay("800x600,2000x2000");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| wallpaper = controller_->GetWallpaper();
|
|
|
| // The large resolution custom wallpaper is expected.
|
| @@ -401,12 +254,12 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| // Loads the same wallpaper before the initial one finished. It should be
|
| // prevented.
|
| wallpaper_manager->SetUserWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(1, LoadedWallpapers());
|
| // Loads the same wallpaper after the initial one finished. It should be
|
| // prevented.
|
| wallpaper_manager->SetUserWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(1, LoadedWallpapers());
|
| ClearDisposableWallpaperCache();
|
|
|
| @@ -438,7 +291,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| WaitAsyncWallpaperLoadStarted();
|
| EXPECT_EQ(2, LoadedWallpapers());
|
| wallpaper_manager->SetUserWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(2, LoadedWallpapers());
|
| }
|
|
|
| @@ -469,7 +322,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| UseMigratedWallpaperInfo) {
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // This test should finish normally. If timeout, it is probably because
|
| // migrated wallpaper is somehow not loaded. Bad things can happen if
|
| // wallpaper is not loaded at login screen. One example is: crosbug.com/38429.
|
| @@ -490,7 +343,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| UsePreMigrationWallpaperInfo) {
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // This test should finish normally. If timeout, it is probably because chrome
|
| // can not handle pre migrated user profile (M21 profile or older).
|
| }
|
| @@ -502,12 +355,12 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| UpdateDisplay("800x600");
|
| // Set initial wallpaper to the default wallpaper.
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(UserManager::kStubUser);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
|
|
| // Hook up a 2000x2000 display. The large resolution custom wallpaper should
|
| // be loaded.
|
| UpdateDisplay("800x600,2000x2000");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| }
|
|
|
| class WallpaperManagerBrowserTestNoAnimation
|
| @@ -546,7 +399,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestNoAnimation,
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestNoAnimation,
|
| UseMigratedWallpaperInfo) {
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // This test should finish normally. If timeout, it is probably because
|
| // migrated wallpaper is somehow not loaded. Bad things can happen if
|
| // wallpaper is not loaded at login screen. One example is: crosbug.com/38429.
|
| @@ -558,7 +411,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestNoAnimation,
|
| PRE_UsePreMigrationWallpaperInfo) {
|
| // New user log in, a default wallpaper is loaded.
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // Old wallpaper migration code doesn't exist in codebase anymore. So if
|
| // user's profile is not migrated, it is the same as no wallpaper info. To
|
| // simulate this, we remove user's wallpaper info here.
|
| @@ -568,7 +421,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestNoAnimation,
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestNoAnimation,
|
| UsePreMigrationWallpaperInfo) {
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // This test should finish normally. If timeout, it is probably because chrome
|
| // can not handle pre migrated user profile (M21 profile or older).
|
| }
|
| @@ -588,7 +441,7 @@ class WallpaperManagerBrowserTestCrashRestore
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCrashRestore,
|
| PRE_RestoreWallpaper) {
|
| LogIn(kTestUser1, kTestUser1Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| }
|
|
|
| // Test for crbug.com/270278. It simulates a browser crash and verifies if user
|
| @@ -609,11 +462,7 @@ class WallpaperManagerBrowserTestCacheUpdate
|
| protected:
|
| // Creates a test image of size 1x1.
|
| gfx::ImageSkia CreateTestImage(SkColor color) {
|
| - SkBitmap bitmap;
|
| - bitmap.setConfig(SkBitmap::kARGB_8888_Config, 1, 1);
|
| - bitmap.allocPixels();
|
| - bitmap.eraseColor(color);
|
| - return gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
|
| + return WallpaperManagerTestUtils::CreateTestImage(1, 1, color);
|
| }
|
| };
|
|
|
| @@ -651,7 +500,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| };
|
| wallpaper_manager->SetUserWallpaperInfo(kTestUser1, info, true);
|
| wallpaper_manager->SetUserWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| scoped_ptr<WallpaperManager::TestApi> test_api;
|
| test_api.reset(new WallpaperManager::TestApi(wallpaper_manager));
|
| // Verify SetUserWallpaperNow updates wallpaper cache.
|
| @@ -670,7 +519,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| // wallpaper cache should not be deleted.
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| VerifyWallpaperCache) {
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| WallpaperManager* wallpaper_manager = WallpaperManager::Get();
|
| scoped_ptr<WallpaperManager::TestApi> test_api;
|
| test_api.reset(new WallpaperManager::TestApi(wallpaper_manager));
|
| @@ -679,7 +528,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
|
|
|
| LogIn(kTestUser2, kTestUser2Hash);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // Login another user should not delete logged in user's wallpaper cache.
|
| // Note active user is still kTestUser1.
|
| EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
|
| @@ -689,7 +538,7 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| red_wallpaper,
|
| WALLPAPER_LAYOUT_CENTER,
|
| true);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // SetWallpaperFromImageSkia should update wallpaper cache when multi-profile
|
| // is turned on.
|
| EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
|
| @@ -703,14 +552,14 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTestCacheUpdate,
|
| User::CUSTOMIZED,
|
| green_wallpaper,
|
| true);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // SetCustomWallpaper should also update wallpaper cache when multi-profile is
|
| // turned on.
|
| EXPECT_TRUE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
|
| EXPECT_TRUE(cached_wallpaper.BackedBySameObjectAs(green_wallpaper));
|
|
|
| wallpaper_manager->SetDefaultWallpaperNow(kTestUser1);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| // SetDefaultWallpaper should invalidate the user's wallpaper cache.
|
| EXPECT_FALSE(test_api->GetWallpaperFromCache(kTestUser1, &cached_wallpaper));
|
| }
|
| @@ -776,70 +625,71 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest, DISABLED_DisplayChange) {
|
|
|
| // Set the wallpaper to ensure that UpdateWallpaper() will be called when the
|
| // display configuration changes.
|
| - gfx::ImageSkia image = CreateTestImage(640, 480, kCustomWallpaperColor);
|
| + gfx::ImageSkia image = WallpaperManagerTestUtils::CreateTestImage(
|
| + 640, 480, WallpaperManagerTestUtils::kCustomWallpaperColor);
|
| controller_->SetWallpaperImage(image, WALLPAPER_LAYOUT_STRETCH);
|
|
|
| // Small wallpaper images should be used for configurations less than or
|
| // equal to kSmallWallpaperMaxWidth by kSmallWallpaperMaxHeight, even if
|
| // multiple displays are connected.
|
| UpdateDisplay("800x600");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_SMALL,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(0, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| UpdateDisplay("800x600,800x600");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_SMALL,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(0, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| UpdateDisplay("1366x800");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_SMALL,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| // At larger sizes, large wallpapers should be used.
|
| UpdateDisplay("1367x800");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_LARGE,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| UpdateDisplay("1367x801");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_LARGE,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| UpdateDisplay("2560x1700");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_LARGE,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| // Rotated smaller screen may use larger image.
|
| UpdateDisplay("800x600/r");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_SMALL,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| UpdateDisplay("800x600/r,800x600");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_SMALL,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
| UpdateDisplay("1366x800/r");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(WallpaperManager::WALLPAPER_RESOLUTION_LARGE,
|
| WallpaperManager::Get()->GetAppropriateResolution());
|
| EXPECT_EQ(1, observer.GetUpdateWallpaperCountAndReset());
|
|
|
| // Max display size didn't chagne.
|
| UpdateDisplay("900x800/r,400x1366");
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| EXPECT_EQ(0, observer.GetUpdateWallpaperCountAndReset());
|
| }
|
|
|
| @@ -851,80 +701,86 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest, SmallDefaultWallpaper) {
|
| if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
|
| return;
|
|
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
|
|
| // At 800x600, the small wallpaper should be loaded.
|
| UpdateDisplay("800x600");
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kSmallWallpaperColor));
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kSmallDefaultWallpaperColor));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest, LargeDefaultWallpaper) {
|
| if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
|
| return;
|
|
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
| UpdateDisplay("1600x1200");
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kLargeWallpaperColor));
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kLargeDefaultWallpaperColor));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| LargeDefaultWallpaperWhenRotated) {
|
| if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
|
| return;
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
|
|
| UpdateDisplay("1200x800/r");
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kLargeWallpaperColor));
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kLargeDefaultWallpaperColor));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest, SmallGuestWallpaper) {
|
| if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
|
| return;
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
| UserManager::Get()->UserLoggedIn(
|
| UserManager::kGuestUserName, UserManager::kGuestUserName, false);
|
| UpdateDisplay("800x600");
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kSmallGuestWallpaperColor));
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kSmallGuestWallpaperColor));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest, LargeGuestWallpaper) {
|
| if (!ash::test::AshTestHelper::SupportsMultipleDisplays())
|
| return;
|
|
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
| UserManager::Get()->UserLoggedIn(
|
| UserManager::kGuestUserName, UserManager::kGuestUserName, false);
|
| UpdateDisplay("1600x1200");
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kLargeGuestWallpaperColor));
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kLargeGuestWallpaperColor));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| SwitchBetweenDefaultAndCustom) {
|
| // Start loading the default wallpaper.
|
| UpdateDisplay("640x480");
|
| - WriteWallpapers();
|
| + CreateCmdlineWallpapers();
|
| UserManager::Get()->UserLoggedIn(UserManager::kStubUser, "test_hash", false);
|
|
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
|
|
| // Custom wallpaper should be applied immediately, canceling the default
|
| // wallpaper load task.
|
| - gfx::ImageSkia image = CreateTestImage(640, 480, kCustomWallpaperColor);
|
| + gfx::ImageSkia image = WallpaperManagerTestUtils::CreateTestImage(
|
| + 640, 480, WallpaperManagerTestUtils::kCustomWallpaperColor);
|
| WallpaperManager::Get()->SetCustomWallpaper(UserManager::kStubUser,
|
| "test_hash",
|
| "test-nofile.jpeg",
|
| @@ -932,16 +788,18 @@ IN_PROC_BROWSER_TEST_P(WallpaperManagerBrowserTest,
|
| User::CUSTOMIZED,
|
| image,
|
| true);
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
|
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kCustomWallpaperColor));
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kCustomWallpaperColor));
|
|
|
| WallpaperManager::Get()->SetDefaultWallpaperNow(std::string());
|
| - WaitAsyncWallpaperLoadFinished();
|
| + WallpaperManagerTestUtils::WaitAsyncWallpaperLoadFinished();
|
|
|
| - EXPECT_TRUE(
|
| - ImageIsNearColor(controller_->GetWallpaper(), kSmallWallpaperColor));
|
| + EXPECT_TRUE(WallpaperManagerTestUtils::ImageIsNearColor(
|
| + controller_->GetWallpaper(),
|
| + WallpaperManagerTestUtils::kSmallDefaultWallpaperColor));
|
| }
|
|
|
| } // namespace chromeos
|
|
|