chromium/chrome/browser/apps/app_service/mock_crosapi_app_service_proxy.cc

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/apps/app_service/mock_crosapi_app_service_proxy.h"

#include "base/notreached.h"
#include "chrome/browser/apps/app_service/launch_result_type.h"

namespace apps {

MockCrosapiAppServiceProxy::MockCrosapiAppServiceProxy() {
  run_loop_ = std::make_unique<base::RunLoop>();
}

MockCrosapiAppServiceProxy::~MockCrosapiAppServiceProxy() = default;

void MockCrosapiAppServiceProxy::Wait() {
  run_loop_->Run();
  run_loop_ = std::make_unique<base::RunLoop>();
}

void MockCrosapiAppServiceProxy::RegisterAppServiceSubscriber(
    mojo::PendingRemote<crosapi::mojom::AppServiceSubscriber> subscriber) {
  NOTIMPLEMENTED();
}
void MockCrosapiAppServiceProxy::Launch(
    crosapi::mojom::LaunchParamsPtr launch_params) {
  launched_apps_.push_back(std::move(launch_params));
  run_loop_->Quit();
}

void MockCrosapiAppServiceProxy::LaunchWithResult(
    crosapi::mojom::LaunchParamsPtr launch_params,
    LaunchWithResultCallback callback) {
  launched_apps_.push_back(std::move(launch_params));
  std::move(callback).Run(ConvertLaunchResultToMojomLaunchResult(
      LaunchResult(LaunchResult::State::kSuccess)));
  run_loop_->Quit();
}

void MockCrosapiAppServiceProxy::LoadIcon(const std::string& app_id,
                                          IconKeyPtr icon_key,
                                          IconType icon_type,
                                          int32_t size_hint_in_dip,
                                          apps::LoadIconCallback callback) {
  // TODO(crbug.com/40829501): Implement this.
  NOTIMPLEMENTED();
}
void MockCrosapiAppServiceProxy::ShowAppManagementPage(
    const std::string& app_id) {
  // TODO(crbug.com/40829501): Implement this.
  NOTIMPLEMENTED();
}

void MockCrosapiAppServiceProxy::SetSupportedLinksPreference(
    const std::string& app_id) {
  supported_link_apps_.push_back(std::move(app_id));
  run_loop_->Quit();
}

void MockCrosapiAppServiceProxy::UninstallSilently(
    const std::string& app_id,
    UninstallSource uninstall_source) {}

void MockCrosapiAppServiceProxy::InstallAppWithFallback(
    crosapi::mojom::InstallAppParamsPtr params,
    InstallAppWithFallbackCallback callback) {
  // TODO(crbug.com/40829501): Implement this.
  NOTIMPLEMENTED();
}

}  // namespace apps