123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ash/wallpaper/wallpaper_controller_test_api.h"
- #include "ash/wallpaper/wallpaper_controller_impl.h"
- #include "base/bind.h"
- #include "ui/gfx/canvas.h"
- #include "ui/gfx/color_utils.h"
- #include "ui/gfx/geometry/size.h"
- #include "ui/gfx/image/image_skia.h"
- namespace ash {
- namespace {
- const WallpaperInfo kTestWallpaperInfo = {"", WALLPAPER_LAYOUT_CENTER,
- WallpaperType::kDefault,
- base::Time::Now().LocalMidnight()};
- gfx::ImageSkia CreateImageWithColor(const SkColor color) {
- gfx::Canvas canvas(gfx::Size(5, 5), 1.0f, true);
- canvas.DrawColor(color);
- return gfx::ImageSkia::CreateFrom1xBitmap(canvas.GetBitmap());
- }
- } // namespace
- WallpaperControllerTestApi::WallpaperControllerTestApi(
- WallpaperControllerImpl* controller)
- : controller_(controller) {}
- WallpaperControllerTestApi::~WallpaperControllerTestApi() = default;
- SkColor WallpaperControllerTestApi::ApplyColorProducingWallpaper() {
- // TODO(manucornet): Figure out where all those "magic numbers" come from
- // and document/compute them instead of just hard-coding them.
- controller_->ShowWallpaperImage(
- CreateImageWithColor(SkColorSetRGB(60, 40, 40)), kTestWallpaperInfo,
- /*preview_mode=*/false, /*always_on_top=*/false);
- return SkColorSetRGB(40, 35, 37);
- }
- void WallpaperControllerTestApi::StartWallpaperPreview() {
- // Preview mode is considered active when the two callbacks have non-empty
- // values. Their specific values don't matter for testing purpose.
- controller_->confirm_preview_wallpaper_callback_ =
- base::BindOnce(&WallpaperControllerImpl::SetWallpaperFromInfo,
- controller_->weak_factory_.GetWeakPtr(),
- AccountId::FromUserEmail("user@test.com"),
- kTestWallpaperInfo, /*show_wallpaper=*/true);
- controller_->reload_preview_wallpaper_callback_ = base::BindRepeating(
- &WallpaperControllerImpl::ShowWallpaperImage,
- controller_->weak_factory_.GetWeakPtr(),
- CreateImageWithColor(SK_ColorBLUE), kTestWallpaperInfo,
- /*preview_mode=*/true, /*always_on_top=*/false);
- // Show the preview wallpaper.
- controller_->reload_preview_wallpaper_callback_.Run();
- }
- void WallpaperControllerTestApi::EndWallpaperPreview(
- bool confirm_preview_wallpaper) {
- if (confirm_preview_wallpaper)
- controller_->ConfirmPreviewWallpaper();
- else
- controller_->CancelPreviewWallpaper();
- }
- } // namespace ash
|