| // Copyright 2018 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 "chrome/browser/chromeos/file_manager/file_manager_test_util.h" |
| |
| #include "base/files/file_util.h" |
| #include "chrome/browser/chromeos/file_manager/app_id.h" |
| #include "chrome/browser/chromeos/file_manager/path_util.h" |
| #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
| #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| #include "chrome/browser/extensions/component_loader.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "extensions/browser/extension_system.h" |
| |
| namespace file_manager { |
| namespace test { |
| |
| FolderInMyFiles::~FolderInMyFiles() = default; |
| |
| void FolderInMyFiles::Add(const std::vector<base::FilePath>& files) { |
| base::ScopedAllowBlockingForTesting allow_blocking; |
| for (const auto& file : files) { |
| files_.push_back(folder_.Append(file.BaseName())); |
| base::CopyFile(file, files_.back()); |
| } |
| } |
| |
| FolderInMyFiles::FolderInMyFiles(Profile* profile) { |
| const base::FilePath root = util::GetMyFilesFolderForProfile(profile); |
| VolumeManager::Get(profile)->RegisterDownloadsDirectoryForTesting(root); |
| |
| base::ScopedAllowBlockingForTesting allow_blocking; |
| constexpr base::FilePath::CharType kPrefix[] = FILE_PATH_LITERAL("a_folder"); |
| CHECK(CreateTemporaryDirInDir(root, kPrefix, &folder_)); |
| } |
| |
| void AddDefaultComponentExtensionsOnMainThread(Profile* profile) { |
| CHECK(profile); |
| |
| extensions::ComponentLoader::EnableBackgroundExtensionsForTesting(); |
| extensions::ExtensionService* service = |
| extensions::ExtensionSystem::Get(profile)->extension_service(); |
| service->component_loader()->AddDefaultComponentExtensions(false); |
| |
| // The File Manager component extension should have been added for loading |
| // into the user profile, but not into the sign-in profile. |
| CHECK(extensions::ExtensionSystem::Get(profile) |
| ->extension_service() |
| ->component_loader() |
| ->Exists(kFileManagerAppId)); |
| CHECK(!extensions::ExtensionSystem::Get( |
| chromeos::ProfileHelper::GetSigninProfile()) |
| ->extension_service() |
| ->component_loader() |
| ->Exists(kFileManagerAppId)); |
| } |
| |
| } // namespace test |
| } // namespace file_manager |