123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- // Copyright (c) 2021 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/test_wallpaper_controller_client.h"
- #include "ash/webui/personalization_app/mojom/personalization_app.mojom.h"
- #include "ash/webui/personalization_app/proto/backdrop_wallpaper.pb.h"
- #include "base/i18n/time_formatting.h"
- #include "base/logging.h"
- #include "base/time/time.h"
- namespace ash {
- // static
- const std::string TestWallpaperControllerClient::kDummyCollectionId =
- "testCollectionId";
- TestWallpaperControllerClient::TestWallpaperControllerClient() {
- std::vector<backdrop::Image>& images = variations_[kDummyCollectionId];
- backdrop::Image image1;
- image1.set_asset_id(1);
- image1.set_image_url("https://best_wallpaper/1");
- image1.add_attribution()->set_text("test");
- image1.set_unit_id(1);
- image1.set_image_type(backdrop::Image::IMAGE_TYPE_DARK_MODE);
- images.push_back(image1);
- backdrop::Image image2;
- image2.set_asset_id(2);
- image2.set_image_url("https://best_wallpaper/2");
- image2.add_attribution()->set_text("test");
- image2.set_unit_id(1);
- image2.set_image_type(backdrop::Image::IMAGE_TYPE_LIGHT_MODE);
- images.push_back(image2);
- }
- TestWallpaperControllerClient::~TestWallpaperControllerClient() = default;
- void TestWallpaperControllerClient::AddCollection(
- const std::string& collection_id,
- const std::vector<backdrop::Image>& images) {
- variations_[collection_id] = images;
- }
- void TestWallpaperControllerClient::ResetCounts() {
- open_count_ = 0;
- set_default_wallpaper_count_ = 0;
- migrate_collection_id_from_chrome_app_count_ = 0;
- fetch_daily_refresh_wallpaper_param_ = std::string();
- fetch_daily_refresh_info_fails_ = false;
- get_wallpaper_path_from_drive_fs_account_id_.clear();
- save_wallpaper_to_drive_fs_account_id_.clear();
- fake_files_ids_.clear();
- wallpaper_sync_enabled_ = true;
- }
- // WallpaperControllerClient:
- void TestWallpaperControllerClient::OpenWallpaperPicker() {
- open_count_++;
- }
- void TestWallpaperControllerClient::SetDefaultWallpaper(
- const AccountId& account_id,
- bool show_wallpaper,
- base::OnceCallback<void(bool success)> callback) {
- set_default_wallpaper_count_++;
- std::move(callback).Run(/*success=*/true);
- }
- void TestWallpaperControllerClient::MigrateCollectionIdFromChromeApp(
- const AccountId& account_id,
- base::OnceCallback<void(const std::string&)>) {
- migrate_collection_id_from_chrome_app_count_++;
- }
- void TestWallpaperControllerClient::FetchDailyRefreshWallpaper(
- const std::string& collection_id,
- DailyWallpaperUrlFetchedCallback callback) {
- auto iter = variations_.find(collection_id);
- fetch_daily_refresh_wallpaper_param_ = collection_id;
- if (fetch_daily_refresh_info_fails_ || iter == variations_.end()) {
- std::move(callback).Run(/*success=*/false, std::move(backdrop::Image()));
- return;
- }
- image_index_ = ++image_index_ % iter->second.size();
- backdrop::Image image(iter->second.at(image_index_));
- std::move(callback).Run(/*success=*/true, std::move(image));
- }
- void TestWallpaperControllerClient::FetchImagesForCollection(
- const std::string& collection_id,
- FetchImagesForCollectionCallback callback) {
- fetch_images_for_collection_count_++;
- auto iter = variations_.find(collection_id);
- if (fetch_images_for_collection_fails_ || iter == variations_.end()) {
- std::move(callback).Run(/*success=*/false, std::vector<backdrop::Image>());
- return;
- }
- std::vector<backdrop::Image> images = iter->second;
- std::move(callback).Run(/*success=*/true, std::move(images));
- }
- void TestWallpaperControllerClient::FetchGooglePhotosPhoto(
- const AccountId& account_id,
- const std::string& id,
- FetchGooglePhotosPhotoCallback callback) {
- base::Time time;
- base::Time::Exploded exploded_time{2011, 6, 3, 15, 12, 0, 0, 0};
- if (!base::Time::FromUTCExploded(exploded_time, &time))
- NOTREACHED();
- if (fetch_google_photos_photo_fails_ || google_photo_has_been_deleted_) {
- std::move(callback).Run(nullptr,
- /*success=*/google_photo_has_been_deleted_);
- } else {
- std::move(callback).Run(
- personalization_app::mojom::GooglePhotosPhoto::New(
- id, "dedup_key", "test_name", base::TimeFormatFriendlyDate(time),
- GURL("https://google.com/picture.png"), "home"),
- /*success=*/true);
- }
- }
- void TestWallpaperControllerClient::FetchDailyGooglePhotosPhoto(
- const AccountId& account_id,
- const std::string& album_id,
- FetchGooglePhotosPhotoCallback callback) {
- std::string photo_id = album_id;
- std::reverse(photo_id.begin(), photo_id.end());
- FetchGooglePhotosPhoto(account_id, photo_id, std::move(callback));
- }
- void TestWallpaperControllerClient::FetchGooglePhotosAccessToken(
- const AccountId& account_id,
- FetchGooglePhotosAccessTokenCallback callback) {
- std::move(callback).Run(absl::nullopt);
- }
- void TestWallpaperControllerClient::SaveWallpaperToDriveFs(
- const AccountId& account_id,
- const base::FilePath& origin,
- base::OnceCallback<void(bool)> wallpaper_saved_callback) {
- save_wallpaper_to_drive_fs_account_id_ = account_id;
- std::move(wallpaper_saved_callback).Run(true);
- }
- base::FilePath TestWallpaperControllerClient::GetWallpaperPathFromDriveFs(
- const AccountId& account_id) {
- get_wallpaper_path_from_drive_fs_account_id_ = account_id;
- return base::FilePath();
- }
- void TestWallpaperControllerClient::GetFilesId(
- const AccountId& account_id,
- base::OnceCallback<void(const std::string&)> files_id_callback) const {
- auto iter = fake_files_ids_.find(account_id);
- if (iter == fake_files_ids_.end()) {
- LOG(ERROR) << "No fake files id for account id: " << account_id;
- return;
- }
- std::move(files_id_callback).Run(iter->second);
- }
- bool TestWallpaperControllerClient::IsWallpaperSyncEnabled(
- const AccountId& account_id) const {
- return wallpaper_sync_enabled_;
- }
- } // namespace ash
|