#ifndef CHROME_BROWSER_WEB_APPLICATIONS_TEST_WEB_APP_INSTALL_TEST_UTILS_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_TEST_WEB_APP_INSTALL_TEST_UTILS_H_
#include <memory>
#include <string>
#include <vector>
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/web_applications/web_app_install_info.h"
#include "chrome/common/buildflags.h"
#include "components/webapps/browser/installable/installable_metrics.h"
#include "components/webapps/browser/uninstall_result_code.h"
#include "components/webapps/common/web_app_id.h"
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
#include "components/services/app_service/public/cpp/url_handler_info.h"
#endif
class GURL;
class Profile;
namespace web_app {
class WebAppProvider;
namespace test {
void AwaitStartWebAppProviderAndSubsystems(Profile* profile);
void WaitUntilReady(WebAppProvider* provider);
void WaitUntilWebAppProviderAndSubsystemsReady(WebAppProvider* provider);
webapps::AppId InstallDummyWebApp(
Profile* profile,
const std::string& app_name,
const GURL& app_url,
const webapps::WebappInstallSource install_source =
webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON);
webapps::AppId InstallWebApp(
Profile* profile,
std::unique_ptr<WebAppInstallInfo> web_app_info,
bool overwrite_existing_manifest_fields = false,
webapps::WebappInstallSource install_source =
webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON);
webapps::AppId InstallWebAppWithoutOsIntegration(
Profile* profile,
std::unique_ptr<WebAppInstallInfo> web_app_info,
bool overwrite_existing_manifest_fields = false,
webapps::WebappInstallSource install_source =
webapps::WebappInstallSource::OMNIBOX_INSTALL_ICON);
webapps::AppId InstallShortcut(Profile* profile,
const std::string& shortcut_name,
const GURL& start_url,
bool create_default_icon = true,
bool is_policy_install = false);
void UninstallWebApp(Profile* profile,
const webapps::AppId& app_id,
webapps::WebappUninstallSource uninstall_source =
webapps::WebappUninstallSource::kAppMenu);
bool UninstallAllWebApps(Profile* profile);
}
}
#endif